#!/bin/sh
#
# Copyright 2009 - 2013 Sundtek Ltd. <kontakt@sundtek.de>
#
# For use with Sundtek Devices only
#

export _LANG="EN DE"
_SIZE=48633
tmp=tmp
dialogbin=`which dialog >/dev/null 2>&1`
sttybin=`which stty >/dev/null 2>&1`
usedialog=0
NETINSTALL=1
KEEPALIVE=0
# using blacklist for opensource driver is recommended since the opensource
# driver is not stable and failed even our basic tests with a full system
# lockup
useblacklist=0

if [ -x $dialogbin ] && [ -x $sttybin ] && [ "$sttybin" != "" ] && [ "$dialogbin" != "" ]; then
  usedialog=1
  BACKTITLE="Welcome to the Sundtek Driver Installer"
  WIDTH=`stty -a | grep columns | awk 'BEGIN{FS=";"}{print $3}' | awk '{print $2}'`
  HEIGHT=`stty -a | grep rows | awk 'BEGIN{FS=";"}{print $2}' | awk '{print $2}'`
fi

busyboxfound=`ls -l /bin/ls 2>&1 | grep busybox -c`

if [ "$NETINSTALL" = "1" ]; then
	wget > /dev/null 2>&1
	rv=$?
	if [ "$rv" = "0" ] || [ "$rv" = "1" ]; then
		WGET="wget"
	else
		curl > /dev/null 2>&1
		rv=$?
		if [ "$rv" = "0" ] || [ "$rv" = "1" ] || [ "$rv" = "2" ]; then
		    WGET="curl -s -O"	
		else
	            echo "This installer requires 'curl' or 'wget' please install one of both"
		    exit 1
		fi
	fi
fi

if [ "$busyboxfound" = "1" ] && [ "$usedialog" = "0" ]; then
	echo "Busybox installation"
fi

showdialog() {
	dialog --backtitle "$BACKTITLE" --title "Information" --msgbox "This installer will set up the latest Linux driver for Sundtek based Products\n * Sundtek MediaTV Pro (DVB-T, DVB-C, AnalogTV, FM Radio, Composite, S-Video)\n * Sundtek MediaTV Digital Home (DVB-C, DVB-T)\n * Sundtek SkyTV Ultimate (DVB-S/S2)\n * Sundtek FM Transmitter/Receiver\n * Sundtek Virtual Analog TV driver (for testing purpose)" $((HEIGHT-6)) $((WIDTH-4))
}


#if [ "$usedialog" = "1" ]; then
#  showdialog
#fi

checkperm() {
	fail=0
	idstr=$(id -u 2> /dev/null)
	if [ "$?" != "0" ]; then
	   if [ "$USER" != "root" ]; then
		   fail=1
	   fi 
	elif [ "$idstr" != "0" ]; then
	   fail=1
	fi
	if [ "$fail" = "1" ]; then
		echo "In order to install this driver please run it as root"
		echo "eg. $ sudo $0"
		exit 0;
	fi
}

print_help() {
echo ""
echo "Sundtek linux driver setup"
echo "(C)opyright 2008-2013 Sundtek <kontakt@sundtek.de>"
echo ""
echo "Please note it's only allowed to use this driver package with devices from"
echo "authorized distributors or from Sundtek Germany"
echo "The Virtual analogTV Grabber (vivi) might be used freely for testing purpose"
echo ""
echo "-h ... print help"
echo "-u ... uninstall driver"
echo "-e ... extract driver"
echo "-easyvdr ... install without asking"
echo "-service ... only install driver, without preload modification"
echo "-nolirc ... do not install lirc scripts"
echo "-netinst ... download driver packages from sundtek.de"
echo "-system ... override system parameter"
echo "     possible system parameters"
echo "      armsysv        ... ARM SYSV4"
echo "      armoabi        ... ARM OABI"
echo "      32bit          ... x86 32bit (newer libc)"
echo "      32bit23        ... x86 32bit (older libc)"
echo "      64bit          ... x86 64bit"
echo "      android        ... android linux"
echo "      mips           ... MIPS MIPS-I (big endian)"
echo "      openwrtmipsr2  ... MIPS MIPS32 (big endian)"
echo "      mipsel         ... MIPS MIPS32 (little endian)"
echo "      dreambox       ... MIPS MIPS32 (little endian, includes startscripts)"
echo "      mipsel2        ... MIPS MIPS-I (little endian)"
echo "      ppc32          ... PowerPC 32bit (big endian)"
echo "      ppc64          ... PowerPC 64bit (big endian)"
echo ""
echo "default operation is to install the driver"
echo "if no argument is given"
echo ""
}

remove_driver() {
	echo -n "removing driver"
	rm -rf /$tmp/.sundtek
	rm -rf /$tmp/.sundtek_install
	for i in libmediaclient.so  libmedia.so  medialib.a; do
           rm -rf /opt/lib/$i;
        done
	echo -n "."
	rm -rf /etc/udev/rules.d/80-mediasrv.rules
	rm -rf /etc/udev/rules.d/80-mediasrv-eeti.rules
	rm -rf /etc/udev/rules.d/80-remote-eeti.rules
	rm -rf /lib/udev/rules.d/80-mediasrv.rules
	rm -rf /lib/udev/rules.d/80-mediasrv-eeti.rules
	rm -rf /lib/udev/rules.d/80-remote-eeti.rules
	# this file is not deployed anymore
	if [ -f /etc/init.d/mediasrv ]; then
	  rm -rf /etc/init.d/mediasrv
	  rm -rf /etc/rc2.d/S25mediasrv
	  rm -rf /etc/rc2.d/S45mediasrv
	  rm -rf /etc/rcS.d/S45mediasrv
	  if [ -f /etc/rc.local ]; then
	    sed -i '/.*mediasrv start*$/d' /etc/rc.local
	  fi
	fi
	echo -n "."
	for i in dmx.h frontend.h mediaclient.h mediacmds.h videodev2.h; do
           rm -rf /opt/include/$i;
        done
	echo -n "."
	rm -rf /etc/ld.so.conf.d/optlib.conf
	ldconfig > /dev/null 2>&1
	echo -n "."
        for i in dvb mediaclient mediasrv sundtekremote; do
	   rm -rf /opt/bin/$i;
        done
	echo "."
	rm -rf /opt/doc/README /opt/doc/mediaclient.c /opt/doc/override.c
	rm -rf /lib/udev/rules.d/80-mediasrv-eeti.rules
	rm -rf /opt/bin/audio/libalsa.so
	rm -rf /opt/bin/audio/liboss.so
	rm -rf /opt/bin/audio/libpulse.so
	rm -rf /opt/bin/extension/librtkfm.so
	rm -rf /opt/bin/extension/librtkfmc.so
	rm -rf /opt/bin/extension/sundtek32decoder
	rm -rf /opt/bin/plugins/libencoder_plugin.so
	rm -rf /opt/doc/libmedia.pc
	rm -rf /opt/doc/sundtek_vcr_remote.conf
	rm -rf /opt/include/mcsimple.h
	rm -rf /opt/lib/libmcsimple.so
	echo "driver removed..."
	echo ""
	echo "ENGLISH:"
	echo "You might contact Sundtek about your distribution, to receive a custom driver version"
	echo "In case you do not have sufficient space in /$tmp for the driver installation please"
	echo "use our netinstaller, the netinstaller only requires around 5mb temporary space"
	echo "while the full installer which contains drivers for all architectures requires around"
	echo "50mb free temporary space"
	echo "http://sundtek.de/media/sundtek_netinst.sh"
	echo ""
	echo "DEUTSCH:"
	echo "Um einen angepassten Treiber zu erhalten kontaktieren Sie bitte Sundtek"
	echo "Sollten Sie nicht ausreichend Speicher in /$tmp zur Verfügung haben, verwenden Sie"
	echo "bitte unseren Netinstaller, dieser laedt lediglich benoetigte Dateien nach"
	echo "Der sundtek_installer_development beinhaltet Treiber fuer alle Architekturen und"
	echo "benoetigt ca. 50 MB freien Speicher in /$tmp"
	echo "http://sundtek.de/media/sundtek_netinst.sh"
	echo ""
	echo "                                         Sundtek Team"
	echo "                                         kontakt@sundtek.de"
}

uninstall_driver() {
	echo ""
	echo "Sundtek linux driver setup"
	echo ""

	if [ "$busyboxfound" = "1" ]; then
	   pid=`ps | grep mediasrv | grep grep -v | while read a b; do echo $a; done`
	else
	   pid=`ps fax | grep mediasrv | grep grep -v | while read a b; do echo $a; done`
	fi

	if [ "$pid" != "" ]; then
		echo "stopping sundtek driver stack..."
		kill $pid > /dev/null 2>&1;
		killall -q -9 sundtekremote >/dev/null 2>&1
	fi
	echo "removing driver "
	sed -i 's#/opt/lib/libmediaclient.so ##' /etc/ld.so.preload
	echo -n "."
	if [ -f /etc/redhat-release ]; then
	   if [ -f /usr/sbin/semanage ]; then
	      if [ "`/usr/sbin/semanage fcontext  -l 2>/dev/null | grep libmediaclient -c`" = "1" ]; then
                 /usr/sbin/semanage fcontext -d -t lib_t /opt/lib/libmediaclient.so >/dev/null 2>&1
	      fi
           fi
        fi
	for i in libmediaclient.so  libmedia.so  medialib.a; do
           rm -rf /opt/lib/$i;
        done
	echo -n "."
	rm -rf /etc/udev/rules.d/80-mediasrv.rules
	rm -rf /etc/udev/rules.d/80-mediasrv-eeti.rules
	rm -rf /etc/udev/rules.d/80-remote-eeti.rules
	if [ -f /etc/init.d/mediasrv ]; then
	  rm -rf /etc/init.d/mediasrv
	  rm -rf /etc/rc2.d/S25mediasrv
	  rm -rf /etc/rc2.d/S45mediasrv
	  rm -rf /etc/rcS.d/S45mediasrv
	  if [ -f /etc/rc.local ]; then
	    sed -i '/.*mediasrv start*$/d' /etc/rc.local
	  fi
        fi
	echo -n "."
	for i in dmx.h frontend.h mediaclient.h mediacmds.h videodev2.h; do
           rm -rf /opt/include/$i;
        done
	echo -n "."
	rm -rf /etc/ld.so.conf.d/optlib.conf
	ldconfig > /dev/null 2>&1
	echo -n "."
        for i in dvb mediaclient mediasrv; do
	   rm -rf /opt/bin/$i;
        done
	echo -n "."
	rm -rf /opt/doc/README /opt/doc/mediaclient.c /opt/doc/override.c
	rm -rf /opt/doc/hardware.conf /opt/doc/lirc_install.sh /opt/doc/lircd.conf /opt/doc/sundtek.conf /opt/doc/sundtek_vdr.conf /opt/bin/getinput.sh /opt/bin/lirc.sh /opt/bin/mediarecord /opt/lib/pm/10mediasrv /etc/hal/fdi/preprobe/sundtek.fdi /usr/lib/pm-utils/sleep.d/10mediasrv
	rm -rf /lib/udev/rules.d/80-mediasrv-eeti.rules
	rm -rf /opt/bin/audio/libalsa.so
	rm -rf /opt/bin/audio/liboss.so
	rm -rf /opt/bin/audio/libpulse.so
	rm -rf /opt/bin/extension/librtkfm.so
	rm -rf /opt/bin/extension/librtkfmc.so
	rm -rf /opt/bin/extension/sundtek32decoder
	rm -rf /opt/bin/plugins/libencoder_plugin.so
	rm -rf /opt/doc/libmedia.pc
	rm -rf /opt/doc/sundtek_vcr_remote.conf
	rm -rf /opt/include/mcsimple.h
	rm -rf /opt/lib/libmcsimple.so
	rm -rf /usr/lib/systemd/system/sundtek.service
	echo -n "."
	echo ""
	echo "driver successfully removed from system"
	echo ""
}

extract_driver() {
	echo "Extracting driver ..."
	app=$0
        dd if=${app} of=installer.tar.gz skip=1 bs=${_SIZE} 2> /dev/null

        if [ ! -f installer.tar.gz ]; then
           sed '1,1346d' ${app} > /$tmp/.sundtek/installer.tar.gz
        fi

	if [ "$busyboxfound" = "1" ]; then
		tar xzf installer.tar.gz 2>/dev/null 1>/dev/null
		if [ "$?" = "1" ]; then
			gzip -d installer.tar.gz
			if [ "$?" != "0" ]; then
				echo "Extracting driver failed..."
				exit 1
			fi
			tar xf installer.tar
			if [ "$?" != "0" ]; then
				echo "Extracting driver failed..."
				exit 1
			fi
		fi
	else
		tar xzmf installer.tar.gz 2>/dev/null 1>/dev/null
		if [ "$?" != "0" ]; then
			echo "Extracting driver failed..."
			exit 1
		fi
	fi
	echo "done."
}

install_driver() {
	echo ""
	echo "Welcome to the Sundtek linux driver setup"
	echo "(C)opyright 2008-2013 Sundtek <kontakt@sundtek.de>"
	echo ""
	for lang in $_LANG; do
	  if [ "$lang" = "EN" ]; then
	    echo "Legal notice:"
	    echo "This software comes without any warranty, use it at your own risk"
	    echo ""
	    echo "Please note it's only allowed to use this driver package with devices from"
	    echo "authorized distributors or from Sundtek Germany"
	    echo "The Virtual analogTV Grabber (vivi) might be used freely for testing purpose"
	    echo ""
	    echo "Do you want to continue [Y/N]:"
  	  elif [ "$lang" = "DE" ]; then
	    echo "Nutzungsbedingungen:"
	    echo "Sundtek übernimmt keinerlei Haftung für Schäden welche eventuell durch"
	    echo "das System oder die angebotenen Dateien entstehen können."
	    echo ""
	    echo "Dieses Softwarepaket darf ausschließlich mit Geraeten von authorisierten"
	    echo "Distributoren oder Sundtek Deutschland verwendet werden"
	    echo "Der Virtuelle AnalogTV Treiber (vivi) kann für Testzwecke ohne jegliche"
	    echo "Restriktionen verwendet werden"
	    echo ""
  	    echo "Wollen Sie fortfahren [J/N]:"
	  fi
	done
        if [ "$AUTO_INST" = "1" ]; then
		echo "AUTO_INST is set"
		key="Y";
	else   
		read key
	fi
	if [ "$key" != "Y" ] && [ "$key" != "J" ] && [ "$key" != "j" ] && [ "$key" != "y" ]; then
	  for lang in $_LANG; do
	    if [ "$lang" = "EN" ]; then
		echo "Installation aborted..."
  	    elif [ "$lang" = "DE" ]; then
		echo "Installation abgebrochen..."
	    fi
  	    exit
	  done
	fi

	if [ -f /etc/environment ]; then
	  if [ "`grep -c /opt/bin /etc/environment`" = "0" ]; then
		echo "adding /opt/bin to environment paths"
		sed -i 's#\(PATH.*\)\"$#\1:/opt/bin\"#g' /etc/environment > /dev/null 2>&1
	  fi
	fi
	
	if [ -f /etc/ld.so.preload ]; then
	  sed -i 's#/opt/lib/libmediaclient.so ##g' /etc/ld.so.preload
	  sed -i 's#/opt/lib/libmediaclient.so##g' /etc/ld.so.preload
	  rm -rf /opt/lib/libmediaclient.so
        fi

	if [ -f /etc/group ]; then
	  if [ "`grep -c ^audio:x /etc/group`" = "1" ]; then
             if [ "`grep  ^audio:x /etc/group | grep root -c`" = "0" ]; then
		echo "adding administrator to audio group for playback..."
		sed -i 's#\(^audio:x\:[0-9]*\:\)#\1root,#g' /etc/group
	     fi; 
	  fi;
        fi;

	app=$0
	if [ "$KEEPALIVE" = "0" ]; then
	  if [ "$busyboxfound" = "1" ]; then
	     pid=`ps | grep mediasrv | grep grep -v | while read a b; do echo $a; done`
          else
	     pid=`ps fax | grep mediasrv | grep grep -v | while read a b; do echo $a; done`
          fi
 
	  if [ "$pid" != "" ]; then
		echo "stopping old driver instance..."
		kill $pid > /dev/null 2>&1;
		killall -q -9 sundtekremote >/dev/null  2>&1
	  fi
        else
          echo "not stopping driver"
        fi
	echo "unpacking..."

	# in order to satisfy linux magazine writers who need a few more lessions in secure bash
	# scripting, by far there have been other more important parts than an already existing
        # /$tmp/chk64/etc binary.
  

	if [ -d /$tmp/.sundtek ]; then
		rm -rf /$tmp/.sundtek
		if [ -e /$tmp/.sundtek ]; then
			echo "please remove /$tmp/.sundtek manually and retry the installation"
			exit 1;
		fi
	fi
 
	mkdir -p /$tmp/.sundtek

	dd if=${app} of=/$tmp/.sundtek/installer.tar.gz skip=1 bs=${_SIZE} 2> /dev/null
        if [ ! -f /$tmp/.sundtek/installer.tar.gz ]; then
           echo "extracting..."
           sed '1,1346d' ${app} > /$tmp/.sundtek/installer.tar.gz
        fi

	cd /$tmp/.sundtek
	if [ "$busyboxfound" = "1" ]; then
		tar xzf installer.tar.gz 2>/dev/null 1>/dev/null
		if [ "$?" = "1" ]; then
			gzip -d installer.tar.gz
			tar xf installer.tar
		fi
	else
		tar xzmf installer.tar.gz 2>/dev/null 1>/dev/null
	fi
	
	echo -n "checking system... "
	unamer=`uname -r`
        dm500hd=`echo $unamer | grep -c 'dm500hd$'`
        dm800=`echo $unamer | grep -c 'dm800$'`
        dm800se=`echo $unamer | grep -c 'dm800se$'`
	dm7020=`echo $unamer | grep -c 'dm7020hd$'`
        dm8000=`echo $unamer | grep -c 'dm8000$'`
	vusolo1=`uname -a | grep "vusolo 2.6.18-7.3 " -c`
	vusolo2=`grep Brcm4380 /proc/cpuinfo -c`
	azbox=0
	if [ -e /proc/stb/info/azmodel ]; then
		azbox=1
	fi
	tardereference=`tar --help 2>&1 | grep dereference -c`
	tvh64=0
	if [ "$tardereference" != "0" ]; then
		tarflag=" -h"
	else
		tarflag=""
	fi
	if [ "$vusolo1" = "1" ] && [ "$vusolo2" = "1" ]; then
	   vusolo=1
        else
           vusolo=0
        fi
	if [ -e /proc/stb/info/vumodel ]; then
           vusolo3=`cat /proc/stb/info/vumodel`;
	   if [ "$vusolo3" = "solo" ]; then
              vusolo=1
           fi
        fi
	if [ -e /proc/stb/info ]; then
	   gigablue=`grep -c gigablue /proc/stb/info/boxtype`;
	else
	   gigablue=0
	fi


        ctversion=0
	if [ -e /proc/stb/info/version ]; then
		ctversion=`cat /proc/stb/info/version`;
        fi

        ctet9000=0

	if [ -e /proc/stb/lcd/scroll_delay ] && [ "$ctversion" = "2" ] && [ "`grep -c BCM97xxx /proc/cpuinfo`" = "1" ]; then
		ctet9000=1
	fi

	if [ -e /proc/stb/info/boxtype ] && [ "`grep -c et9000 /proc/stb/info/boxtype`" = "1" ]; then
		ctet9000=1
	fi
	ctet5000=0

	if [ -e /proc/stb/info/boxtype ] && [ "`grep -c et5000 /proc/stb/info/boxtype`" = "1" ]; then
        	ctet5000=1;
        fi
	
	ctet6000=0

	if [ -e /proc/stb/info/boxtype ] && [ "`grep -c et6000 /proc/stb/info/boxtype`" = "1" ]; then
        	ctet6000=1;
        fi

	ctet4x00=0
	if [ -e /proc/stb/info/boxtype ] && [ "`grep -c et4000 /proc/stb/info/boxtype`" = "1" ]; then
        	ctet4x00=1;
        fi
	         
        # should more be like openwrt installer on wndr3700
	wndr3700=`grep -c 'NETGEAR WNDR3700$' /proc/cpuinfo`
	tplink=`grep -c 'Atheros AR9132 rev 2' /proc/cpuinfo`
        ddwrt=`grep -c dd-wrt /proc/version`
        atheros=`grep -c "Atheros AR7161 rev 2" /proc/cpuinfo`
        dockstar=`grep -c "ARM926EJ-S" /proc/cpuinfo`
	synology=`grep -c "Synology" /proc/cpuinfo`
	if [ "$synology" = "0" ]; then
 	  synology=`uname -a | grep -i synology -c`
        fi
	if [ -e /etc/synoinfo.conf ]; then
	  synology=1
	fi
	sedver=`sed --version | grep "GNU sed version" -c 2>/dev/null >/dev/null`
	driverinstalled=`grep -c mediaclient /etc/rc.local 2>/dev/null >/dev/null`
	if [ "`grep -c 'VIA Samuel 2' /proc/cpuinfo`" = "1" ] && [ "`grep -c 'CentaurHauls' /proc/cpuinfo`" = "1" ]; then
		c3="1"
	else
		c3="0"
	fi
	   
        if [ "$dockstar" != "0" ]; then
	    if [ -e /usr/local/cloudengines/hbplug.conf ]; then
               touch /dev/.testfile >/dev/null 2>&1
               if [ ! -e /dev/.testfile ]; then
                    dockstar=1; # remains 1
               else
                    dockstar=0;
               fi
            else
               dockstar=0;
            fi
        fi
	if [ "$ddwrt" = "1" ] && [ "$atheros" = "1" ]; then
		ddwrtwndr3700=1;
        else
                ddwrtwndr3700=0;
        fi
	arm=`file /bin/ls 2>/dev/null | grep -c 'ARM'`

	# Dreambox dm800(0)
        # http://www.i-have-a-dreambox.com/wbb2/thread.php?threadid=135273
        #
	if [ "$SYSTEM" != "" ]; then
	        echo "overriding SYSTEM parameter with $SYSTEM"
	elif [ "$gigablue" = "1" ]; then
		echo "Gigablue detected"
		SYSTEM="mipsel2"
	elif [ "$azbox" = "1" ]; then
		echo "Azbox detected"
		SYSTEM="mipsel2"
	elif [ "$vusolo" = "1" ]; then
		echo "VU+ Solo detected"
		SYSTEM="mipsel2"
        elif [ "$ctet9000" = "1" ]; then
                echo "Clarke Tech ET9000 detected"
		SYSTEM="mipsel2"
	elif [ "$ctet4x00" = "1" ]; then
		echo "Clarke Tech ET4000 detected"
		SYSTEM="mipsel2"
	elif [ "$ctet5000" = "1" ]; then
		SYSTEM="mipsel2"
		echo "Clarke Tech ET5000 detected"
	elif [ "$ctet6000" = "1" ]; then
		SYSTEM="mipsel2"
		echo "Clarke Tech ET6000 detected"
        elif [ "$dm7020" = "1" ]; then
                echo "Dreambox 7020HD detected"
		SYSTEM="dreambox"
	elif [ "$dm8000" = "1" ]; then
		echo "Dreambox 8000 detected"
		kver=`uname -r`
		if [ "`echo $kver | grep -c 'dm'`" = "1" ]; then
		    echo "Kernel is supported"
                    SYSTEM="dreambox"
		else
		    echo "This is an unsupported dreambox version, please send an email to kontakt@sundtek.de"
		    echo "pointing out that your system kernel uses $kver"
		    remove_driver
		    exit 1;
		fi
        elif [ "$dockstar" = "1" ]; then
                echo "Dockstar like system detected"
		SYSTEM="armsysv"
	elif [ "$dm800" = "1" ] || [ "$dm800se" = "1" ] || [ "$dm7020" = "1" ]; then
		echo "Dreambox 800/800se detected"
		kver=`uname -r`
		if [ -e /usr/sundtek/usbkhelper-dm800.ko ]; then
			rm -rf /usr/sundtek/usbkhelper*;
		fi
		if [ -e /etc/image-version ] && [ "`grep -c 'version=1openpli' /etc/image-version`" = "1" ]; then
                    SYSTEM="mipsel2"
		elif [ "`echo $kver | grep -c 'dm'`" = "1" ]; then
		    echo "Kernel is supported"
                    SYSTEM="dreambox"
		else
		    echo "This is an unsupported dreambox version, please send an email to kontakt@sundtek.de"
		    echo "pointing out that your system kernel uses $kver"
		    remove_driver
		    exit 1;
		fi
        elif [ "$dm500hd" = "1" ]; then
                echo "Dreambox 500hd detected"
		#delete old modules
		if [ -e /usr/sundtek/usbkhelper-dm800.ko ]; then
			rm -rf /usr/sundtek/usbkhelper*;
		fi
                SYSTEM="dreambox"
        elif [ "$wndr3700" = "1" ]; then
		echo "Netgear WNDR3700 detected"
		SYSTEM="openwrtmipsr2"
		if [ -e /bin/opkg ] && [ "`opkg list libpthread | wc -l`" = "0" ]; then
			echo "running opkg update"
			opkg update
			echo "installing libpthread"
			opkg install libpthread
			opkg install librt
		fi	
        elif [ "$ddwrtwndr3700" = "1" ]; then
                echo "Netgear WNDR3700 (DD-WRT) detected"
                SYSTEM="openwrtmipsr2"
	elif [ "$c3" = "1" ]; then
		echo "Via C3 detected"
		SYSTEM="c3"
	else
           CHK64=-1
	   if [ "$arm" = "0" ]; then
	     /$tmp/.sundtek/chk64bit 1>/dev/null 2>&1
             CHK64=$?
#	     echo "CHECKED 64bit: $CHK64"
             if [ "$CHK64" = "0" ]; then
		if [ "$synology" = "1" ] && [ -e /usr/local/tvheadend/bin/tvheadend ]; then
			/$tmp/.sundtek/chk32bit23 -a
			if [ "$?" = "0" ]; then
				/$tmp/.sundtek/chk32bit23 -elfhdr /bin/ls
				basesys=$?
				/$tmp/.sundtek/chk32bit23 -elfhdr /usr/local/tvheadend/bin/tvheadend
				if [ "$?" = "1" ] && [ "$basesys" = "0" ]; then
					echo ""
					echo "Your base system is 32bit (busybox), but you installed 64bit tvheadend"
					echo ""
					tvh64=1
				fi
			fi
		fi
		/$tmp/.sundtek/chk64bit -b 1>/dev/null 2>&1
                if [ "$?" = "1" ] && [ "$tvh64" = "0" ]; then
                    CHK64=-1
                else
                    CHK64=0
                fi
             fi
	   fi
	   if [ "$CHK64" = "0" ] && [ "$arm" = "0" ]; then
		   if [ "$tvh64" = "0" ]; then
	           	/$tmp/.sundtek/chk64bit -a
  	  	   	if [ "$?" != "0" ]; then
				remove_driver
				exit 1;
		   	fi
	   	   fi
	 	   echo "64Bit System detected"
		   SYSTEM="64bit"
	   else
             if [ "$arm" = "0" ]; then
	       /$tmp/.sundtek/chk32bit 1>/dev/null 2>&1
	     fi
	     if [ "$?" = "0" ] && [ "$arm" = "0" ]; then
	        /$tmp/.sundtek/chk32bit -a
		if [ "$?" != "0" ]; then
			/$tmp/.sundtek/chk32bit23 1>/dev/null 
			if [ "$?" = "0" ]; then
                           echo -n "checking older libc version... "
                           /$tmp/.sundtek/chk32bit23 -a
                           if [ "$?" != "0" ]; then
			       remove_driver
			       exit 1;
			   else
			       echo "32Bit System detected (libc2.3)"
                               SYSTEM="32bit23"
                           fi
                        else
			   remove_driver
			   exit 1;
                        fi
	        else
	 	        echo "32Bit System detected"
		        SYSTEM="32bit"
		fi
	     else
		if [ "$arm" = "0" ]; then
		    /$tmp/.sundtek/chkppc32 1>/dev/null 2>&1
		fi
		if [ "$?" = "0" ] && [ "$arm" = "0" ]; then
		    /$tmp/.sundtek/chkppc32 -a
		    if [ "$?" != "0" ]; then
			remove_driver
			exit 1;
		    fi
		    echo "PPC32 System detected"
                    SYSTEM="ppc32"
                else
                  if [ -e /lib/ld-linux-armhf.so.3 ]; then
	            if [ ! -e /lib/ld-linux.so.3 ]; then
		        ln -s /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3
	            fi
                    /$tmp/.sundtek/chkarmsysvhf 1>/dev/null 2>&1
                    if [ "$?" = "0" ]; then
                        remove_driver
                        exit 1;
                    fi
                    echo "ARM SYSV HF System detected"
                    SYSTEM="armsysvhf"
		  else
                    /$tmp/.sundtek/chkarmsysv 1>/dev/null 2>&1
                    if [ "$?" = "0" ]; then
		       if [ ! -e /etc/WiAutoConfig.conf ]; then
                         
                          /$tmp/.sundtek/chkarmsysv -a
		       fi
		       if [ "$?" != "0" ]; then
			  remove_driver
			  exit 1;
		       fi
		       if [ "$synology" = "1" ]; then
		          echo "Synology NAS Detected"
		       else
                          echo "ARM SYSV System detected"
		       fi
                       SYSTEM="armsysv"
                    else
		       /$tmp/.sundtek/chkarmoabi 1>/dev/null 2>&1
		       if [ "$?" = "0" ]; then
		          /$tmp/.sundtek/chkarmoabi -a
		          if [ "$?" != "0" ]; then
			     remove_driver
			     exit 1;
		          fi
                          echo "ARM OABI System detected"
                          SYSTEM="armoabi"
                       else
		          /$tmp/.sundtek/chkmips 1>/dev/null 2>&1
			  if [ "$?" = "0" ]; then
		              /$tmp/.sundtek/chkmips -a
		              if [ "$?" != "0" ]; then
			        remove_driver
			        exit 1;
		              fi
			      echo "MIPS System detected"
                              SYSTEM="mips"
                          else
			     /$tmp/.sundtek/chkmipsel 1>/dev/null 2>&1
			     if [ "$?" = "0" ]; then
                                /$tmp/.sundtek/chkmipsel -a
                                if [ "$?" != "0" ]; then
                                    remove_driver
                                    exit 1;
                                fi
                                echo "MIPSel (little endian) detected"
                                SYSTEM="mipsel"
				if [ `grep -c Brcm /proc/cpuinfo` -gt 0 ]; then
					SYSTEM="mipsel2"
				fi
                             else
		                /$tmp/.sundtek/chkppc64 1>/dev/null 2>&1
 			        if [ "$?" = "0" ]; then
		                   /$tmp/.sundtek/chkppc64 -a
		                   if [ "$?" != "0" ]; then
	 	 	               remove_driver
			               exit 1;
		                   fi
		                   echo "PPC64 System detected"
                                   SYSTEM="ppc64"
                                else
                                   /$tmp/.sundtek/chkmipsel2 1>/dev/null 2>&1
                                   if [ "$?" = "0" ]; then
                                      /$tmp/.sundtek/chkmipsel2 -a
                                      if [ "$?" != "0" ]; then
                                         remove_driver
                                         exit 1;
                                      fi
                                      echo "MIPSel (old libc) System detected"
				      SYSTEM="mipsel2"
                                   else
                                      /$tmp/.sundtek/chkopenwrtmipsr2 0.9.33 1>/dev/null 2>&1
                                      if [ "$?" = "0" ]; then
                                         /$tmp/.sundtek/chkopenwrtmipsr2 -a
                                         if [ "$?" != "0" ]; then
					     remove_driver
					     exit 1;
					 fi
					 if [ -e /var/flash/ar7.cfg ]; then
                                             echo "Fritzbox detected"
                                         else
					     echo "OpenWRT MipsR3 (0.9.33) detected"
                                         fi
					 SYSTEM="openwrtmipsr3"
					 if [ -e /bin/opkg ]; then
		                           if [ "`opkg list librt | wc -l`" = "0" ] || [ "`opkg list libpthread | wc -l`" = "0" ]; then
					     echo "running opkg update"
					     opkg update
				           fi
		                           if [ "`opkg list libpthread | wc -l`" = "0" ]; then
					     echo "installing libpthread"
					     opkg install libpthread
					   fi	
		                           if [ "`opkg list librt | wc -l`" = "0" ]; then
					     echo "installing librt"
					     opkg install librt
					   fi	
				         fi
				      else
					 /$tmp/.sundtek/chkopenwrtmipsr2 1>/dev/null 2>&1
                                         if [ "$?" = "0" ]; then
                                           /$tmp/.sundtek/chkopenwrtmipsr2 -a
                                           if [ "$?" != "0" ]; then
					     remove_driver
					     exit 1;
				  	   fi
					   if [ -e /var/flash/ar7.cfg ]; then
                                             echo "Fritzbox detected"
                                           else
					     echo "OpenWRT MipsR2 detected"
                                           fi
					   SYSTEM="openwrtmipsr3"
					   if [ -e /bin/opkg ]; then
		                             if [ "`opkg list librt | wc -l`" = "0" ] || [ "`opkg list libpthread | wc -l`" = "0" ]; then
					       echo "running opkg update"
					       opkg update
				             fi
		                             if [ "`opkg list libpthread | wc -l`" = "0" ]; then
					       echo "installing libpthread"
					       opkg install libpthread
					     fi	
		                             if [ "`opkg list librt | wc -l`" = "0" ]; then
					       echo "installing librt"
					       opkg install librt
					     fi	
				           fi
					 else
					   /$tmp/.sundtek/chkmipselbcm 1>/dev/null 2>&1
					   if [ "$?" = "0" ]; then
                                              /$tmp/.sundtek/chkmipselbcm -a
                                              if [ "$?" != "0" ]; then
                                                remove_driver
                                                exit 1;
                                              fi
                                              echo  "MIPS BCM detected"
                                              SYSTEM="mipselbcm"
                                           else
				            /$tmp/.sundtek/chksh4 1>/dev/null 2>&1
					    if [ "$?" = "0" ]; then
						/$tmp/.sundtek/chksh4 -a
						if [ "$?" != "0" ]; then
						    remove_driver
						    exit 1;
						fi
						echo "SH4 detected"
						SYSTEM="sh4"
					    else
						/$tmp/.sundtek/chkopenwrtarm4 1>/dev/null 2>&1
						if [ "$?" = "0" ]; then
						   /$tmp/.sundtek/chkopenwrtarm4 -a
						   if [ "$?" != "0" ]; then
						        remove_driver
							exit 1;
						   fi
						   echo "ARM4 SYSV uClibc detected"
						   SYSTEM="openwrtarm4"
						else
		                                   echo "Your system is currently unsupported"
						   echo ""
						   echo "also check that this installer is not corrupted due a bad download"
						   echo "/$tmp must not be mounted with noexec flag, otherwise the installer"
						   echo "won't work"
						   echo ""
						   echo "In case you do not have enough free space on your system you might"
						   echo "use the network installer"
						   echo "http://sundtek.de/media/sundtek_netinst.sh"
						   echo ""
		                                   echo "in case your system is really unsupported please contact"
						   echo "our support via mail <kontakt@sundtek.de>"
		                                   echo ""
			                           remove_driver
		                                   exit 0
					        fi
				              fi
					    fi
                                         fi
                                      fi
                                   fi
                                fi
                             fi
                          fi
                       fi
                     fi
		  fi
                fi
             fi
	  fi
	fi
	if [ "$NETINSTALL" = "1" ]; then
	   echo "installing (netinstall mode) ..."
	   if [ "$SYSTEM" = "" ]; then
		   echo "unable to detect architecture.."
		   echo "please contact us via email kontakt@sundtek.de"
		   # report a failed installation.. this should never happen 
		   # if it happens report it back. 
		   $WGET http://sundtek.de/support/failed.phtml
		   exit 1
	   fi
		   
	   mkdir /$tmp/.sundtek/$SYSTEM
	   cd /$tmp/.sundtek/$SYSTEM
	   echo "Downloading architecture specific driver ... $SYSTEM"
	   $WGET http://www.sundtek.de/media/netinst/$SYSTEM/installer.tar.gz > /dev/null 2>&1
	   echo "Download finished, installing now ..."
	   if [ "$?" != "0" ]; then
		echo "unable to download $SYSTEM drivers"
		exit 1
	   fi
	else
	   echo "installing (local mode) ..."
	fi
	mkdir -p /opt/bin >/dev/null 2>&1
	if [ -d /opt/bin ]; then
		USE_TMP=0
		mkdir -p /opt/include > /dev/null 2>&1
		if [ -d /opt/include ]; then
			USE_TMP=0
		else
			echo "Trying to use /$tmp/opt/bin for driver installation"
			echo "please note this installation will only be temporary"
			echo "since we don't have write access to /opt/bin"
			USE_TMP=1
		fi
	else
		echo "Trying to use /$tmp/opt/bin for driver installation"
		echo "please note this installation will only be temporary"
		echo "since we don't have write access to /opt/bin"
		USE_TMP=1
	fi
	if [ "$vusolo" = "1" ] || [ "$ctet9000" = "1" ] || [ "$ctet5000" = "1" ] || [ "$ctet6000" = "1" ] || [ "$ctet4x00" = "1" ]; then
          cd /
          tar xzf /$tmp/.sundtek/mipsel2/installer.tar.gz
        elif [ "$dm8000" = "1" ] || [ "$dm800" = "1" ] || [ "$dm500hd" = "1" ] || [ "$dm800se" = "1" ] || [ "$dm7020" = "1" ] || [ `grep -c Brcm /proc/cpuinfo` -gt 0 ]; then
	  echo "Using /dev/misc/vtuner0 interface"
	  if [ ! -e /usr/sundtek/mediasrv ] && [ `df -P | grep root | awk '{print $4}'` -lt 5000 ]; then
	     if [ `df -P | grep '/usr$' -c` -eq 1 ] && [ `df -P | grep '/usr$' | awk '{print $4}'` -gt 5000 ]; then
	       echo "root / doesn't seem to have enough space,"
	       echo "although /usr has .. OK"
             else
	       echo "Not enough free space"
	       if [ `df -P | grep /media/hdd -c` -gt 0 ] && [ `df -P | grep /media/hdd | awk '{print $4}'` -gt 5000 ]; then
	 	 echo "using /media/hdd for driver installation"
		 if [ ! -e /usr/sundtek ]; then
		     mkdir /usr/sundtek
	         fi
		 if [ "`mount | grep sundtek -c`" = "0" ]; then
		   echo "mounting driver loopback"
		   mkdir -p /media/hdd/sundtek
		   mount -obind /media/hdd/sundtek /usr/sundtek
		 fi
	       else
		 echo "not enough space available for driver installation, you might contact kontakt@sundtek.de"
	       fi
	     fi
	  else
	      echo "Default installation"
	  fi
	  cd /
	  tar ${tarflag}xzf /$tmp/.sundtek/$SYSTEM/installer.tar.gz
	elif [ $USE_TMP -eq 1 ]; then
          cd /$tmp
	  tar xzf /$tmp/.sundtek/$SYSTEM/installer.tar.gz >/dev/null 2>&1
	  if [ "$?" = "1" ]; then
	     cd /$tmp/.sundtek/$SYSTEM/
	     gzip -d installer.tar.gz
	     cd /$tmp
	     tar ${tarflag}xf /$tmp/.sundtek/$SYSTEM/installer.tar
	  fi
        else
	  cd /
	  if [ "$busyboxfound" = "1" ]; then
		# can fail on some systems 
		tar ${tarflag}xzf /$tmp/.sundtek/$SYSTEM/installer.tar.gz >/dev/null 2>&1
		if [ "$?" = "1" ]; then
			cd /$tmp/.sundtek/$SYSTEM/
			gzip -d installer.tar.gz
			cd /
			tar ${tarflag}xf /$tmp/.sundtek/$SYSTEM/installer.tar
		fi
	  else
		tar ${tarflag}xzmf /$tmp/.sundtek/$SYSTEM/installer.tar.gz
	  fi 
	  if [ -f /sbin/udevadm ]; then
	     if [ `/sbin/udevadm version` -lt 086 ]; then
		rm -rf /etc/udev/rules.d/80-mediasrv-eeti.rules
	     else
		rm -rf /etc/udev/rules.d/80-mediasrv.rules
  	     fi
	  else
	    if [ -f /usr/bin/udevinfo ]; then
#        since --v is not supported with older versions...
	      if [ `/usr/bin/udevinfo -V | sed 's#[^0-9]##g'` -lt 086 ]; then
 		 rm -rf /etc/udev/rules.d/80-mediasrv-eeti.rules
	      else
		 rm -rf /etc/udev/rules.d/80-mediasrv.rules
  	      fi
	    else
#       stick with the newer rules which disable UAC audio
	     rm -rf /etc/udev/rules.d/80-mediasrv.rules
	    fi
          fi
	  if [ -d /usr/lib/pkgconfig ]; then
                # can fail on read only filesystems
                cp /opt/doc/libmedia.pc /usr/lib/pkgconfig > /dev/null 2>&1
          fi
	  if [ -d /lib/udev/rules.d ]; then
		if [ -f /etc/udev/rules.d/80-mediasrv-eeti.rules ]; then
		   cp /etc/udev/rules.d/80-mediasrv-eeti.rules /lib/udev/rules.d;
		fi
		if [ -f /etc/udev/rules.d/80-mediasrv.rules ]; then
		   cp /etc/udev/rules.d/80-mediasrv.rules /lib/udev/rules.d;
		fi
		if [ -f /etc/udev/rules.d/80-remote-eeti.rules ] && [ "$NOLIRC" = "0" ]; then
		   echo "installing remote control support"
		   cp /etc/udev/rules.d/80-remote-eeti.rules /lib/udev/rules.d;
                else
                   rm -rf /etc/udev/rules.d/80-remote-eeti.rules 
		   rm -rf /lib/udev/rules.d/80-remote-eeti.rules
		fi
	  fi
	  if [ ! -e /opt/bin/mediasrv ]; then
		  rm -rf /$tmp/.sundtek
		  echo "Seems like there's a problem installing the driver to /opt/bin"
		  echo "doing some tests..."
		  echo "mkdir -p /opt/bin"
		  mkdir -p /opt/bin >/dev/null 2>&1 
		  if [ -d /opt/bin ]; then
			  echo "succeeded"
	          else
			  echo "failed!"
		  fi
		  echo "mkdir -p /$tmp/opt/bin"
		  mkdir -p /$tmp/opt/bin > /dev/null 2>&1
		  if [ -d /$tmp/opt/bin ]; then
			  echo "succeeded"
		  else
			  echo "failed!"
		  fi
		  echo "Some more information"
		  echo "uname -a"
		  uname -a
		  echo "vendor_id"
		  cat /proc/cpuinfo | grep "vendor_id"
		  echo "Model Name"
		  cat /proc/cpuinfo  | grep "model name"
		  echo "disk space"
		  df
		  echo "memory"
		  free
		  echo ""
		  echo "please send these information to kontakt at sundtek de"
		  exit 1
          fi
	  chmod gou=sx /opt/bin/mediasrv
	  rm -rf /$tmp/.sundtek
	  echo -n "finalizing configuration... (can take a few seconds)  "
	  if [ -d /usr/lib/pm-utils/sleep.d ]; then
	     cp /opt/lib/pm/10mediasrv /usr/lib/pm-utils/sleep.d/
	  fi
	  if [ -f /etc/redhat-release ]; then
            /usr/bin/chcon -t lib_t /opt/lib/libmediaclient.so >/dev/null 2>&1
	    if [ -f /usr/sbin/semanage ]; then
	       if [ "`/usr/sbin/semanage fcontext  -l 2>/dev/null| grep libmediaclient -c`" = "0" ]; then
                 echo -n "."
                 /usr/sbin/semanage fcontext -a -t lib_t /opt/lib/libmediaclient.so >/dev/null 2>&1
               fi
	    fi
          fi
	  echo ""
	# dreambox doesn't need preloading, the driver is directly using /dev/misc/vtuner0
	  if [ "$synology" = "1" ]; then
             echo ""
	     echo ""
	     echo "IMPORTANT: in order to use the device on your Synology NAS"
	     echo "           run \"export LD_PRELOAD=/opt/lib/libmediaclient.so\""
	     echo "           and afterwards start your TV Application"
	     echo ""
	     echo "           you can also place this in the start script of eg."
	     echo "           tvheadend in order to initialize it automatically"
	     echo ""
	     echo ""
	     if [ -e /var/packages/tvheadend/scripts/start-stop-status ]; then
		     echo "adding libmediaclient to tvheadend start script"
		     sed -i 's#^    ${TVHEADEND}#    LD_PRELOAD=/opt/lib/libmediaclient.so ${TVHEADEND}#g' /var/packages/tvheadend/scripts/start-stop-status
		     sed -i 's#su - ${RUNAS} -c "${TVHEADEND}#su - ${RUNAS} -c "LD_PRELOAD=/opt/lib/libmediaclient.so ${TVHEADEND}#g' /var/packages/tvheadend/scripts/start-stop-status
	     fi
	     if [ -e /var/packages/tvheadend ]; then
		     echo "setting up tvheadend autorestart in /etc/sundtek.conf"
		     echo "device_attach=/var/packages/tvheadend/scripts/start-stop-status restart" > /etc/sundtek.conf
             fi
	     initdpath=""
	     if [ -e /opt/etc/init.d ] && [ ! -e /opt/etc/init.d/S01sundtek ]; then
		     initdpath="/opt/etc/init.d";
	     elif [ -e /usr/syno/etc/rc.d ] && [ ! -e /usr/syno/etc/rc.d/S01sundtek ]; then
		     initdpath="/usr/syno/etc/rc.d"
	     fi

	     if [ "$initdpath" != "" ]; then
		     echo '#!/bin/sh
# Autostart Shell for sundtek mediasrv
case $1 in
     start)
         /opt/bin/mediaclient --start
         ;;
     stop)
         /opt/bin/mediaclient --shutdown
         ;;
     *)
         echo "Usage: $0 [start|stop]"
         ;;
esac' > ${initdpath}/S01sundtek
                     chmod 755 ${initdpath}/S01sundtek
             fi


	  elif [ `grep -c Brcm /proc/cpuinfo` -gt 0 ]; then
	     echo "Broadcom STB design detected"
	  elif [ ! -e /etc/WiAutoConfig.conf ] && [ "$NOPREL" != "1" ]; then
	    if [ -f "/etc/ld.so.preload" ] && [ `grep -c Brcm /proc/cpuinfo` -eq 0 ]; then
	      if [ "`grep -c libmediaclient.so /etc/ld.so.preload`" = "0" ]; then
	        echo "installing libmediaclient interception library"
	        sed -i "s#^#/opt/lib/libmediaclient.so #" /etc/ld.so.preload
	        if [ `grep -c libmediaclient.so /etc/ld.so.preload` -eq 0 ]; then
	           echo "/opt/lib/libmediaclient.so " >> /etc/ld.so.preload
                fi
	      fi
	    else
	      echo "/opt/lib/libmediaclient.so " >> /etc/ld.so.preload
	    fi 
	    chmod 644 /etc/ld.so.preload
	    if [ -f /sbin/ldconfig ]; then
	    /sbin/ldconfig >/dev/null 2>&1
	    fi
	    if [ -f /etc/sidux-version ]; then
	       if [ -f /etc/init.d/lirc ] && 
                  [ "`grep -c '#udevsettle' /etc/init.d/lirc`" = "0" ]; then
                  echo "  uncommenting udevsettle in /etc/init.d/lirc in order to avoid"
                  echo "  a deadlock when registering the lirc remote control"
	          /bin/sed -i 's#udevsettle ||#:\n\#udevsettle ||#g' /etc/init.d/lirc
               fi
	    fi
          fi
        fi
	rm -rf /$tmp/.sundtek_install
	rm -rf /$tmp/.sundtek
	if [ "$KEEPALIVE" = "0" ]; then
   	  echo "Starting driver..."
        fi
        if [ "$ctet5000" = "1" ] || [ "$ctet9000" = "1" ] || [ "$ctet6000" = "1" ] || [ "$vusolo" = "1" ]; then
           if [ "$KEEPALIVE" = "0" ]; then
              /opt/bin/mediasrv -d --no-nodes
              /opt/bin/mediaclient --loglevel=off
           fi
	   if [ ! -e /usr/bin/mediaclient ]; then
               ln -s /opt/bin/mediaclient /usr/bin/mediaclient
           fi
	   if [ -e /usr/lib/enigma2/python/Screens/ScanSetup.py ] && [ "`grep -c Sundtek /usr/lib/enigma2/python/Screens/ScanSetup.py`" = "0" ]; then
	       sed -i 's/^                if tunername == "CXD1981"\:/                if tunername\[0:7\] == "Sundtek":\
                        cmd = "mediaclient --blindscan %d" % \(nim_idx\)\
                elif tunername == "CXD1981"\:/' /usr/lib/enigma2/python/Screens/ScanSetup.py
           fi
	elif [ "$dm800" = "1" ] && [ "$SYSTEM" = "dreambox" ]; then
           cd /usr/sundtek
	   KVER=`uname -r`;
           VERMAGIC=`/opt/bin/mediaclient --strings /lib/modules/${KVER}/extra/lcd.ko | grep vermagic=`
           if [ "$dm800" = "1" ]; then
              VERMAGICOLD=`/opt/bin/mediaclient --strings usbkhelper-dm800.ko | grep vermagic=`
           fi
	   if [ "$VERMAGICOLD" != "$VERMAGIC" ]; then
               /usr/sundtek/kpatch usbkhelper-dm800.ko /usr/sundtek/usbkhelper-dm-local.ko "$VERMAGICOLD" "$VERMAGIC"
           else
              cp usbkhelper-dm800.ko /usr/sundtek/usbkhelper-dm-local.ko
	   fi
	   if [ "$KEEPALIVE" = "0" ]; then
             /opt/bin/mediasrv -d --no-nodes
             /opt/bin/mediaclient --loglevel=off
	   fi
	   mkdir -p /opt/bin/ > /dev/null 2>&1
	   mkdir -p /opt/lib > /dev/null 2>&1
	   if [ ! -e /opt/bin/mediaclient ]; then
	       ln -s /usr/sundtek/mediaclient /opt/bin/mediaclient -s > /dev/null 2>&1 
	   fi
	   if [ ! -e /usr/bin/mediaclient ]; then # this symlink is needed for the automatic search
               ln -s /opt/bin/mediaclient /usr/bin/mediaclient
           fi
	   if [ ! -e /opt/bin/mediasrv ]; then
	       ln -s /usr/sundtek/mediasrv /opt/bin/mediasrv > /dev/null 2>&1
	   fi
	   if [ ! -e /opt/lib/libmediaclient.so ]; then
	       ln -s /usr/sundtek/libmediaclient.so /opt/lib/libmediaclient.so > /dev/null 2>&1
           fi
	   if [ -e /usr/lib/enigma2/python/Screens/ScanSetup.py ] && [ "`grep -c Sundtek /usr/lib/enigma2/python/Screens/ScanSetup.py`" = "0" ]; then
	       sed -i 's/^                if tunername == "CXD1981"\:/                if tunername\[0:7\] == "Sundtek":\
                        cmd = "mediaclient --blindscan %d" % \(nim_idx\)\
                elif tunername == "CXD1981"\:/' /usr/lib/enigma2/python/Screens/ScanSetup.py
           fi
	elif [ "$SYSTEM" = "dreambox" ]; then
	   cd /usr/sundtek
	   if [ "$KEEPALIVE" = "0" ]; then
             /usr/sundtek/mediasrv -d --no-nodes
             /usr/sundtek/mediaclient --loglevel=off
           fi
	   mkdir -p /opt/bin/ > /dev/null 2>&1
	   mkdir -p /opt/lib > /dev/null 2>&1
	   if [ ! -e /opt/bin/mediaclient ]; then
	       ln -s /usr/sundtek/mediaclient /opt/bin/mediaclient -s > /dev/null 2>&1 
	   fi
	   if [ ! -e /usr/bin/mediaclient ]; then # this symlink is needed for the automatic search
               ln -s /opt/bin/mediaclient /usr/bin/mediaclient
           fi
	   if [ ! -e /opt/bin/mediasrv ]; then
	       ln -s /usr/sundtek/mediasrv /opt/bin/mediasrv -s > /dev/null 2>&1
	   fi
	   if [ ! -e /opt/lib/libmediaclient.so ]; then
	       ln -s /usr/sundtek/libmediaclient.so /opt/lib/libmediaclient.so > /dev/null 2>&1
           fi
	   if [ -e /usr/lib/enigma2/python/Screens/ScanSetup.py ] && [ "`grep -c Sundtek /usr/lib/enigma2/python/Screens/ScanSetup.py`" = "0" ]; then
	       sed -i 's/^                if tunername == "CXD1981"\:/                if tunername\[0:7\] == "Sundtek":\
                        cmd = "mediaclient --blindscan %d" % \(nim_idx\)\
                elif tunername == "CXD1981"\:/' /usr/lib/enigma2/python/Screens/ScanSetup.py
           fi
        elif [ "$dockstar" = "1" ]; then
           cd /$tmp/opt/bin
	   if [ "$KEEPALIVE" = "0" ]; then
              ./mediasrv -d
              ./mediaclient --loglevel=off
              ./mediaclient --enablenetwork=on
           fi
        elif [ "$ddwrtwndr3700" = "1" ]; then
           cd /$tmp/opt/bin
	   if [ "`grep usbkhelper /proc/modules -c`" = "0" ]; then
             KVER=`uname -r`;
             VERMAGIC=`strings /lib/modules/${KVER}/kernel/fs/ext2/ext2.ko | grep vermagic=`
	     VERMAGICOLD=`strings ../kmod/usbkhelper-ddwrt2.ko | grep vermagic=`
	     # doesn't really matter if it fails or not the router is fast enough to work without
             # acceleration module
	     if [ "$VERMAGIC" != "$VERMAGICOLD" ]; then
               ./kpatch ../kmod/usbkhelper-ddwrt2.ko ../kmod/usbkhelper-ddwrt-local.ko "$VERMAGICOLD" "$VERMAGIC"
             else
               cp ../kmod/usbkhelper-ddwrt2.ko ../kmod/usbkhelper-ddwrt-local.ko
             fi
	     insmod ../kmod/usbkhelper-ddwrt-local.ko
	     if [ "$?" != "0" ]; then
               echo "not using acceleration module"
	     fi
           fi
	   if [ "$KEEPALIVE" = "0" ]; then
             ./mediasrv -d
             ./mediaclient --loglevel=off
             ./mediaclient --enablenetwork=on
           fi
        elif [ "$wndr3700" = "1" ]; then
         if [ $USE_TMP -eq 1 ]; then
            cd /$tmp/opt/bin
         else
            cd /opt/bin
         fi
	 #if [ "`grep usbkhelper /proc/modules -c`" = "0" ]; then
         #  KVER=`uname -r`;
         #  VERMAGIC=`strings /lib/modules/${KVER}/ehci-hcd.ko | grep vermagic=`
	 #  VERMAGICOLD=`strings ../kmod/usbkhelper-openwrtmipsr2.ko | grep vermagic=`
	   # doesn't really matter if it fails or not the router is fast enough to work without
           # acceleration module
	 #  if [ "$VERMAGIC" != "$VERMAGICOLD" ]; then
         #     ./kpatch ../kmod/usbkhelper-openwrtmipsr2.ko ../kmod/usbkhelper-openwrt-local.ko "$VERMAGICOLD" "$VERMAGIC"
         #  else
         #     cp ../kmod/usbkhelper-openwrtmipsr2.ko ../kmod/usbkhelper-openwrt-local.ko
         #  fi
	 #  insmod ../kmod/usbkhelper-openwrt-local.ko
	 #  if [ "$?" != "0" ]; then
         #      echo "not using acceleration module"
	 #  fi
         #fi
          ./mediasrv -d
          ./mediaclient --loglevel=off
          ./mediaclient --enablenetwork=on
        elif [ $USE_TMP -eq 1 ]; then
          cd /$tmp/opt/bin
          ./mediasrv -d
          ./mediaclient --loglevel=off
          ./mediaclient --enablenetwork=on
        else
	  if [ "$synology" != "0" ]; then
	     if [ "`grep -c mediaclient /etc/rc`" = "0" ]; then
		     echo "Setting up autostart (/etc/rc)"
		     sed -i 's#exit 0#/opt/bin/mediaclient --start\nexit 0#g'  /etc/rc
             else
		     echo "Driver is already installed in /etc/rc"
	     fi
	  fi
	  if [ "$synology" != "0" ] && [ "$sedver" != "0" ] && [ "$driverinstalled" = "0" ]; then
	     echo "Setting up autostart (/etc/rc.local)"
	     cp /etc/rc.local /etc/rc.local.`date +%s`
	     sed -i '2 s/\(.*\)/\/opt\/bin\/mediaclient --start\n\1/' /etc/rc.local 2>/dev/null 1>/dev/null
	  else
	     if [ "$synology" != "0" ]; then
	       echo "Driver is already installed in /etc/rc.local"
	     fi
	  fi
	  /opt/bin/mediaclient --start
        fi
	if [ -f /usr/bin/enigma2.sh ]; then
	    sed -i 's/LIBS=\/usr\/lib\/libopen.so.0.0.0/LIBS="\/opt\/lib\/libmediaclient.so \/usr\/lib\/libopen.so.0.0.0"/g' /usr/bin/enigma2.sh
	    sed -i 's/LIBS="$LIBS \/usr\/lib\/libopen.so/LIBS="$LIBS \/opt\/lib\/libmediaclient.so \/usr\/lib\/libopen.so/g' /usr/bin/enigma2.sh
	fi
	sleep 3
	rm -rf /$tmp/.sundtek_install
	if [ -e /usr/bin/systemctl ] && [ -e /opt/doc/sundtek.service ] && [ "$USE_TMP" = "0" ]; then
		mkdir -p /usr/lib/systemd/system/
		cp /opt/doc/sundtek.service /usr/lib/systemd/system/
	fi
	echo "done."
}

export NOLIRC=0
if [ $# -eq 0 ]; then
	CHECKPERM=1; INSTALLDRIVER=1;
fi

while [ $# -gt 0 ]; do
	case $1 in
	   -u) checkperm; uninstall_driver; exit 0;;
	   -h) print_help; exit 0;;
	   -e) extract_driver; exit 0;;
	   -nolirc) NOLIRC=1; INSTALLDRIVER=1;;
	   -easyvdr) AUTO_INST=1; CHECKPERM=1; INSTALLDRIVER=1;;
	   -service) NOPREL=1; INSTALLDRIVER=1;;
	   -system) SYSTEM=$2; INSTALLDRIVER=1;;
	   -keepalive) KEEPALIVE=1; INSTALLDRIVER=1;;
           -netinst) NETINSTALL=1; INSTALLDRIVER=1;;
	   -tmp) shift; if [ -d $1 ]; then echo "using $1 as temp directory"; tmp=$1; INSTALLDRIVER=1; else echo "invalid directory $1"; exit 0; fi;;
	   *) CHECKPERM=1; INSTALLDRIVER=1;;
	esac
	shift;
done

if [ "$CHECKPERM" = "1" ]; then
  checkperm
fi

if [ "$useblacklist" = "1" ]; then
	em28xxblk=`grep -c em28xx /etc/modprobe.d/blacklist.conf`
	if [ "$em28xxblk" = "0" ]; then
		echo "blacklist em28xx" >> /etc/modprobe.d/blacklist.conf
		if [ -x /sbin/rmmod ]; then
			/sbin/rmmod em28xx >/dev/null 2>&1 
		fi
	fi
fi
   
if [ "$INSTALLDRIVER" = "1" ]; then
  install_driver
fi

exit 0
 RQ ;pŕI8$.|1X؎8ۉ\`38lKm-251&L;w0pmo.3u:qJB:]H{S`j:=ʸ{o>)6W۷?%}OoO4
wzgj _v}uf}ښZR@}1j>+䔌':bAbHrtV4}ŷY4'PCqb!E:i')$UdY%uCs~c.lEk:S\
^/@2B3':17|~No0{hPE\dwP#?T}6Lu}r	p\*<TF{!HLWB[\&r/BN|6E 7:`.g|%/:]3E\m+f6`˄!rq儶o%=T'o)ϛeڪ"\ȼGX?s6%PгQW	?F!SʦzJ2}ӥ0lr<Ӝ.ȧs
_%	.i_SG~Xc0Y# am~r?gx}'drR6gp_`ПP'A{ ~?rގ>X'{b!|NWopG<H4Gb 	#'b($-1,0Po}[&u-۶!}mĿwF͛wlkCض`Gb??,X/sr;>jSU:yH%9vJ㴣4iJjv6^8~Xb6=r	A ,Z1kCܐ|oLFs&CcpH'?8|?zd7:3l!s:ms?봾iq<ْCPG8lOmP|;-18H+9(kaWV!]1ߠC rQ^:?k4:tat}aP}2>>qH#+GhYkE!R\xhV\Њ*,|;1TɦKgY	<FlEll\UGx_bM"^0خVL!P*WO~)d!'0Uz#*Q%J2>Tm[ۉ*q6>zr[2lRW!ÐX}~j|u'jvU1ǇЎ.B6}{Z\1[es`\.%׷c/:9ϣS:3s-p[A;s -W7)pyro\9_8nsWI}^r<8'sE!9cyVW߂~j3+e!Y[ԡwz۠-\N%=V^K0>\+ۤ  ve-hߟǨ73mʷm5K.f/x-
^w|HK+J^x/Pr.SR0Q?{ʇ{¹>'Tf::w=qopYΧHkQE͟?e JYSR;<P gV%D³w<,xNrZ<dKSFՖm3ָ׸,zwퟀrH% jb.iFU~91Z.s&n_ߛIz%n<'@n
3+1[[vdgг;͎uHDbPdHb AsWD :]Ξ5u3gY`)I%,t,F$""jFMs:KqøZH18AFb0HQ11yEabNj;nῑITځ6FG3K's-k+eq?U^@A`w(Eˬ{D7
teY8[ gyRt[Ƣ-cNmyCNXS<.avڣ>c!nTWKu/+юrn2C3tJ_֓츟sTl>#Ωp^3	0Li1afl밝FcV*`벝FZg0p	ǿvcڄX{L6fn,}ڄ];_!0J
D+xBƩxfj9M442utj^vɋz|~}!(@}^W{K>X(;}?'W[PmwTiXZvk6;Jc6\Yc%u55ެYc^kDܦ]5&|f4kLnI9ӏIQ3}NfYfi[YckQ%fLJZok"oZ!ڬwm֘n	,eKZ6zNNbZ7ܫ۳0~[};v 5[ƭ-M-[ZQWzؼEáD(讫@XtvtH%λCnM}=a`~e[sV jb;!`jFA:b@w(p6KD_x U1~'qW0ww!~KWⲀ镆n!,'Ck8M6~=6(
8c%9_Fv!yߞL6\GZ8BZD6跽_=.m<`烻C<2ERep`
bhQgqnr58[q(-f7UqzQsÆ3}%W)Kâ%{fj{75lRsz6q$a'kpO_roކuB<waӶlE?vɧDҡI4
H6^$˽_A=r7o˃G[eyoσ:=~g<|~z#}+[a&qIz{.n/PO7bHj˛ 3:n?Z75uno%WO'K.뙇Tsx8.XY1%'$3r`Zƌ̛Y|vJx<Kx=S/}w}<0?"s< %jBY&0҆0n4?0l*M!{cLP˦)US7ܩ(0fFLQES)]ϾM;t֓iC'_G:yi]Ի;a#c<{uʌ{hw|7sܛZ(2V.nAY~{ՂZƽ_.bPlbP<f kƇNC#lJ;Y֦Z.HM\|Ƿ7ɡKH1H :/auCڛj.{s,^< xd{SޯvyS'U\2*;MhV1f|": fC-h<3Zh`ƖXxc@N_{l O#/xN}RiZ"ؘ؋S{Sɑ-b`a[Z1HC,|
xE@	/Ʉ/p(#,c*7#Q{^fx3*xu~9|8p'&je7;)2ؗ&ZK
5@Bm_DDF%-n;S<5+Lɖ(tD\ʬAPbiy=CQ9Ԭg?\:mw
&d6Nk`˹[xp5̧[N={~p]g:z+;>2';3<;SwјCcjZ#1?
3p.>/tMxUZOR	״/kƛmL}Қ'ԛ|w׉//as귍Ew{;]0.7tUL|jѬgkݎ2.睰ڽ34͓qh]P"Hƚ:8mh'БMYEd_Gg8d$"F`yu<'zܤTn_ki6b{=1I|ceƹ$Su0dqoF'4ʧ0~W%69qϨvյ%EN<3(t7TozvEq`u!_:Y_ǡ.>`O(&{G
ECNfal.>O?S|Hb.b:qxK,;mgsb|bo,nN=~XurC|{xq+$~=7Oa:D~Lsx3K%POy/Ky|*^yy/㥚ؓ@,'"p-Fwח=pfOmgZ|S3'}Dݸ:ѕ	`*X	w !'SrHSާ0e
aC?S߬d J
zoYr6`Cw(p-ɾ]"^U
dߴ` G4p<dߺ`G/ bIms37P
{mJqK )e~s~N߫I ;b$^XDR?q1Ο/~WS`ni@/ *nοЫ2^W?wsnS#4a2֖"/x#uίϑ^Y(g/_/_?Q~!
,کs}=sWהr,bWye89`/HwQWMEpyrmwΊ/+a~{cۯx[܊/6i+~Z%j_aV|Zefeŗg#~XÊ_so|4ĜV|9pY6ay该fgfޖq'>.1ox/ǋu.ga;{$\fCץSyor[:_;jqKeijm\or7K  ǫ<rh7?pTUϽ}!C6nGQA@|52<5ф82뫑X2:;SQX݌Y33`JOUtRnhǽOf2[ܪ?{|}/q	ߡcmZ㌸/M4Q_xz|Pd.tV8}[oJ`3vN7K:_(9f!g:c	]	zi&8yrOy`aBUuTV2wvP$4^mB^쪪$[g'qmlfB5M-cfc#sV|<'H4Y1k^	nKUKSFߓDcJXkՈ#2r@	-(DbCiIMV{Ȝ4&JR][VB?wo*?8wv|1_O$kvKO0Xk;A\t27\wʇ|CC.{ \Cp9E_bGgŮ/E:Muu&wX$u2~Ś=bz)[FEG݆xKJE^y")91\+1pĲ(8M2ǰpuuؚ:.!]י2p	?:@S=:E.cp+Q
p)h?b1{;|
p0Fx9gp?`r;':s(gSƂ1s"rsGOΞa	|dϰ$|bgX"V.gϰd>13,ԇݐgXbNS,:Kÿ~V:K~{_EVܻ*ܾw=|#x}/R|(*0~5Kxi	Evxpc)AG?b/ua6_J	Ç~>Q'fɇFEzIR	sۆɶhǡcPz+")j6ٍ\;jfP(Т͸7E.eǔ;K=V,jkTbe#18~ʲ:j_J_scAgۀl_S߀`@/]T9x^ᯨ'-SZ7*W2ٳe@~gs?6h7=z;o0F`_2fi(ڋvNϢ^Ǳ,R\\ AjvXӾb4.@vIs!VQͭTstxC.Z11jӨ詹	CHw=sh/؇a3Ij搜GТ3IjVP͓]N
Kÿ<Mxoh-AbpbH70tcC(ԷbNKOeL3i:O4oۈX<z\k^zG4_Mk|5oaǑq_2v.{;睨3*"uT^#~_{Z$bߚ&S)0,26Fp5bqʇeSxoڅva;[531aWÎgh<cp~4k`y-qj8G|a9oźȠԃ?,Vu8-V(=#v{?{O
ܧNҋY=ƿ>2VX*6(!\LU&ޛ{kbG˞8]vkm}qMS-Y5=-[퇶sh񆖺`?)M5ŵjaJ_4^&PC^G3=f\t55e_`UuQӹKL$iwLg/|8c4CXA$EEM7mmh*\e4"}@5EbKޓysq3tNcOU$W-	0$eUet;!&y(X841(Omiɲ ]YDWn޲I|2aCcV!Aߨ<N`wZb YKQ{TcIN5_c,	PSIٵG͟Bcq;2HH,96SyflZ%zIql'EB,arOn}=tJz>	xC{IϯXVciI <TgŖw!Rv%+:iɣ3sy=:dEǱ-ImF2H;awDswvwu#3o<	ľFW%Y}腝N	ۿQU8\ѻg&oP/?z9q9cSY!л"=s]}=EV6Or=5	S23˔Y
Z)&^'eL!Sfq?5BfeI?In!ASfD1Lfe25M.SfTG)+Ű)	SfOx>01SPيWƴsDʓʏXT~d/j^vCt]߉\$}5}gI|h\/oq]ĮݖC=d y8#+ʰ?P?$V{i%dT;I+gkVkdfo.[p-Ȍ\C
a*()ۤȏhSߑzV	"b~8'%e\LRr&)U'C{ZdܨoWJ;QqJӭ,:UcUU,NW%JUmj=4GrߗIGʭL{ޫdjBJ%*6~Vt,"`AWh 5U>xZ.ڰkua柗6	.-s뿹e/۔l2_|r5DO{"J[a~C/s)FQB/\6?K?~g§|P-]*'o0L?H|~˩ȏ͜_!_|sN[nVкC*˗ry;ls˝\nѬoVE[%P,~j5R\,pť8e`CL,>şf\lnE\#<~~<x㹆B:bV	"!o5bh[c!o}&|>%j}<T"!BeNs sZɜL0299-̱iaeNK`qZ1!|7sN`Oy5(Xp]nnڗ:!h86^r}E;o9u,5_$Q6SY=}LgI1Yߏa>0YL1LV`6$dFR%&<dp&3(`;Vd!xaLzTXǂ-m+O]?gWoOuZ--^D-^\q 	Zaݟs{u1z3vf+
x&`"xy|ͬ0ǰO
G}m?180T73&43D5#LopByfǋ+p~ǭbLױսf>;DAPJSx?dFzCo;I0]Ļ85Ȁ~lVbZZ4iBBnO],OwWE/6f޹n\oώ#E;(].!]{`W;cMsΫ/n^u㈠ظv]F]73Zؼ#CۀCn'0΅^k+kx6)l2>.2|˄C腃{JKĶ}R3elK3g[rץǶۂ2ٖlm=#dl3Yp n5m1'7}|ܗܓ$oJȜS]B~&ƫ|d;~g $Wxa.*+DbsMM!~!?0㜵؜\9GǱI9ENX!瑴cSR-S_HJѨT$KH$AX)Ytg%d;-<Q|;Ҹƍr(+x6fj<O-UdkdJq`iZUKװI4xkٵN͟*'	qK`is3KfNiwFbfE9dfml(Uvx,#i[j2KgYYE`i{铳47@Ofio&ciH,:ǞT#vx,Mg<q8CeiP1INt~1K&0#<OҼ0q22K2Sed*/cl~߇&bdF$K12Y
#02
#WadF&Gad(L4+QSfNa=iDadL&12l45eZ(1L]2cdL=a`?g2cd|X9GchŊHG7Uy>jʙl,YL+8	cn~{>~)9!)=ĠK)y~kV@F(gĤ}>d㊌+Aw|JB28?H&y5aL
2+~![/\p-/bN9:yT{~	y'zͿp1g\s6X_AWky1N,沘Yn?l"}IsDO*r}1 %1; _2a|fPWHo+o*IE5\$QE k& ϧ<yl$asF)%Tإ?WMxX\)Kri )@CCM9&JK\l#3tfI7ߚ&_ @Foo(䎰te9#	4 k-^ >ˊF<1"\4KtAu=r+rrG-Y	'%C?$uYTt"v;8e6X.9y;c _	- ${d·,R[N	d<v> þX~3Nq2GA `ùĂD,4(N9Avr/2?YYC/ECMNvqm*}1tq&c=ޛj/wjUIDˬ$isAn^ܕ$umkH0\}){+3*tCz2;_n!~;q`<'AWeNldqC	+^ ˆZk)3m ?s+ۍ<9Iȳ؁4 =e41mLuП[
~)py餺ӝN!Ł<$/yghOQֺlN⩛JWjӿzms >8n{Y폓Vöe@yM;GV>9v!kɴ:ĉ>P&<La<$qfQMH;mSѱ{vf#K7a:'||iowȃ}ꊖ1cHB}w,#]r7ۊpu=&柁iT\KN揗Ja)^e-O~zx;AKpA4@MZ{X'qq$[	qHqn~뷢܆'l"pq=л-&:[RE]lN``unVJ/۬cIlzE?l]7Ǉ_~Oᴏ~]tUՕ>G^6ub	<HPMk e-Y(T(2Ӹ&.^~	LTЁ:L5U8c;H82"quEG;{{hY{sg}~9&r~4]$]=$IV<9]y.xt..u@񑺈˾ܔƶ0-ҋJ\,t'K
ﰸ#[((%e'HĽ^Hmg\33;b1|A-,(w֩M~mit)je62sx&[L04]1۽p}MSD<?4L墴u~VBOgXa	r#zk67,8EMMac<@s4{Gn!D>1zbkۉN[]'Z{Nt[OYϟ̵m>:v.v^nkuy=m=Ȑup;nm}ux]ֱ{C֩\cucu.vkcu:刼^^\G@# u:r!nAnr5\ Wж\- Wr\- W
r\ W+
r\ WʅuerQuv"dD('kj3c4@](>,Wa00HQ[{=65G&m3Ynp>{X1C1Zϔ?8/{@5om"h |m0sd68 <2Las^ =y&z4Kuk8vzkL?OYXU6Ἂ9BpE]%ol|s;21֯)ǓsiVEgQU%Rglpdo*/DyO]c3RH{(S~'Pl̘iah*.߬v,`f9hUc*:)a~(rlD0ǡKhm9[˱T:%<K[an\ųdSѫ_xnKW3L1ca)	|0F0
>&(x	ftm3LCHZƏfIiHԕw:Kٟ_q,wn!Ǥ&VM>F*@wM
6t^fH:7ay:Ó	)Z?:бc1/H^;rk)_9|?d:T>6H;-¯GQ)~I:/!4:%8pL~F.4)nC>}s^Q%?yjeԃ_O{P%I\%_}bAwއ!IG(y&IP\y_8*q}_m̍?<)Ɵr<Ub%%+u0)޶O8_ԅ.|=;?iw}R4_G<ӅgpXz`nK<υM.Orayt*C|Q>|9ްQ_in!.Q``r)oܔ]>|Fӵ|=MNyqBG{NKN_yqWK,9#..jf<sTq	OߟC<ʻ\CS5`Ga`S⿃݀k$~	0>׊%vNJ.`˓`BbGs_
xE?BK;8aOxo[Y"񭪾\u*IoJ¯+ďa^y:?E{pֿMO0/wϐS]*'y*+K@|!X._؀CeQa ~=ZNH [8UKu}a cQa.`i,Z?$%i67j}oilvڻOko #F]R=6Vƿxn_ Lpyɉ$'VGN1
q\bOyu9Hz j@k|L3gK𣀏yurM+Es~	x5߯rۈC?.Pij/Az6C|N?krB>V't/&<>FiO!~?Q?~:
۴CS$?_C=8_xi}}E_7p.t:J? '!	?x..Yn0׼4k^_.~p=SD?G@ S_kM\bלY괧tӱԷ"P~6ϩS}oyEvx>GU|VRW\V7VL_2i~6Ϯ[.8٧#ClϘo6xgN߭߰te#aG BQT4q<@B;(!4MYvix	kb.%2.[rM.,ZTEpFR[*DS5[Sp wLY7؊-%w8L|y鈴sT2]Zxeu-R+<Iܱc狤SJգRTgR[(ʈXWz6yTlHXB4IY%9厊"IʁJZƮQvѕeq;tfPAT	*wIO\WlVPxҲrՌ&ZF(;rR(
G0ݝQ}lcnDǨ*H&R
ZqCAt]F˩j%5\/8.E;j-Z{;y"p7G'7Ty9U'>u1~6sz_ J렾6XVq;إC YCcUTA)x@_ GK|
?EzY	F6C2D?=-43/2`ڿ4.mzua7Qh8*q`^=kI<h I	[	W%8v	F〃GzUwzz&/{'<7=djn[2~Zh=0і7I\ilZ  6F~%]x<]g("<C*Nϓp&s{Yp
w`
{?лLknpoxgGA_>>+ >@z'A6rD:5zy@gsCCss0|ݲ^V? }!Ht̎wQ'+T/LhY׃-0> /""HHn4tzJoW%|76EC]}/z{ix^xfɮd`Ar5}eq4yc17]OK8B =pO>cO{bO:h@?-HrʜppzgY_:YW_~vSS3?E"="c\*ϕqI
c@?	衟M3!,|}0	I6e45;ρbfqVC!àIE~K^òDY{mvqЕjw%*L˫ܭPW:8K:oyK/q>\V:{|r&$Ml! ~mKd;5Pt@ϓ3pZXƿC<M]g
Oќ4Xw gi~40ÿkYSxC+HZ/J"߾1/hvI;{܏ˋ 8GA^,x Ȝ1	,`GBC!s5ǁ>Ev^1ڣ@[;)8Nq O1n>_=鮮w9X}qz}{o}F$*]@Zah!|o _?j۲>|/qYepiUǏѿGI](֦Q>}F6C{,K|8'ùML+{EAms/4e>ЀL*wyVeEiStK-l9v:([^l&M|usxgeeMo96}\ҭkwΩhb)wgA[Sw۝_w]#WV$];vpB\n4.g"滈{<-Gop,fl)n̝;SбK!XP</5ٌ#aE' _Ԕ}&f< )/0/P,ff[.Zucj fL3.Ǎˌ}5 5k\H \]{a(Z݃b54l?݈?Qݬ1oveS=Yy7;>[{|rT>ov|6I|x|}񹄎fϛ sx,V|ov@ගL~̈́*ٱ6):雽"Q
[ŗ:h;n,cnݛu0EBwP˿G	t,t/3]#p}*27ov|Wޜs9߹#^y7o]t50Ȭ'=E4-wU@&XwuR1L9kKaG3na+ݎ;/Hys6%Ӣuj,|7Xzic6ޣm
6X
FWؾWX^D<Bz7m,,c6Oed*,fFU6ޗzsA9/Dcow	x!^my8{۝mzL5_GҟjǀAUV`|cV}ƙ,VU.\wL/-#{{vn..k1~Kc~И[4vnB[5vnUW^|pCj/oo~6JlC7{.'E0W2t}Dl8׋a8׋W"&|㳥ǎcM}d8כ_3Dۆs7D~}-i}#Zƣo+}rBX;l[_sw\FT|]v\/~/_gwۈfĊ׶&VY죵7a}.o9ɐt#Vg\0RWY=ϧ=0V~ԳڱoS^NtmA#>'&nUD+WfPr"m@r1:ݖrKx90Sb6#Ϧ2R{ya߿|jϷJRh7su
+@`K}k1}8}_<~$qa8*a;[cfq$h}c@^Ka?ysas_1M=9±}948:O`Dqnf1u9wltLs:&C0Cc6E5tzn-`>xnaim`J<i8Y0] ;
:<@/͟^MWqiYCGᨆq8 <FlppqزvѦ/:ɩwQ\w;3m'0MuؔMmHΥ^iq!&
8"uN*q/)NTYHNvp	i8rMNBdrMw{y^%'?X}}7>7pc'LQ+[ʷ	S$<YỐ3b5pPg畳(l1vl!K@-b_H|y9P1S9(015Ꮾ&O]pv/Z|5|_xeі`q(0N|L/	[q@VzW`aބor0fwaXOf./3fE;_bg(g:00<gi8~E3"p禈3<;	)	pSp''|8&`8 g	p;>"0	aGa3$p
ΐGb܄#P{?/pM$ 9X,Ru&o?ӵ4 ?b^,	2D_]<0uF:v~?=S2~we2
/7>8C|ڴFiS8HA诋ߡ@nۺ:@3 a ?9zDUd28OkY`
:UkH?[`zT"~1?1G/ޏ!&<ރ0~{5&w=Po:6z74=QO=̡^o?[^z{G*8HƢqt*~/cyrWʇc5aS{4&q<%>üY'ģl
j)3GB~I7.>˳5>
#ۚ2=yHkYE].58>Eȳ0_./nqyCu\ʾ'é^sס<.oBG TyN<]y+pyr-qy.暴pyI-w^pyc%LKkpx|Fpxe˓j䤆t	7%|i-qx?H 7MΜH(n	e3ny̆ h?{kQpo-t)zTsPȟ5%|$ wH7b
?wAwL7K)e.~ߤb?:n~هpG?wTkG򿣤WF/*YLTT?#a)4IO=*S?h8SN1߮C=*쥇 wJ5m/ҏbs>;;\Дޥ- w8~l=!;e7:w; jϙ=/h8S%΃J8)89VI?tNǁX?ipcZtjNk/{n3\cpr׆u_']:9"1u+PºͽۑjmRǹ^\nFpj90Ų'Nt6à82s"ԣz8d	:rc*Ft 'kqV~j`$lMߺosnJ&-yoZөig*7B=Ul^ @Mq'"*؆<"3#wlQ+GxDr9C`QG^C(G`KCAFA{]o!6/mMiXtZ)>ix|Iip-μ^=^^=P9r.jsQm0͜xcك?Gy9~O}cϛON/ҥSq
e^Id<WLW%?Sn&<n
B
-v!feagq>Kq2#-tJ7"(tҶBF[7	w}_(?Q%kH	G:!nprI/?q,/CW0`)x`Ɂ`=	)  ON*VCWUh{sʏ}$ Py0$!i|y37H>}ҳM`6{;h.ASalGm/-g|쬆޼oF>ymO9(4ZBO"	/EyA5cS\H~ߟP8 vih(C#߭yN=A#$kB@þuY{ׂn1Xi/g؝nHRU8yuPw/tطG1]Ҙg"tzz{$1c%?gɜr[pkdX,]x9/$E=#8@y-q8uV84yɄ[&"C<i(oK;]21OWŞްLcI[̵"TM^bQЖJs	ci'llle) M`GQ8>P[>MiW	UuX?|dgy}&5mF2Vi,7;NHۇboD굧]P<=nQeaoh{&&kM6i6)
(#CЅ[.hx$ti>h}-$s~2[dqm\Pv+KaaM*Sl-owmfe;AgPfF|3`HbyO<3z{+wEOJ~טbyMQYAZ_%8Өظubc2:?;'/QJˋd奣ʛ$OJ'	3x7{}q=]edW1߯5HESXV;Ik=,%nQVe(+%K/$H6sZqߒk~v{:%H@KE}0a5|$`p0y"QZo7ᚯI1;=|>g|bT9$|7{R	^J2pViuQuk.Mb):ky:ƍzp_K%&
TNttAm9=[Z5]Uޮkѩٓ);ta:L0tӡXIFä}KګIړ}H{Fc}EKCg_ju
z|/I*zKy°B^9"O/B8
捒L0:WS0oT)'b6.n
]#YsoogNQtٌqW^M*XkEjXKx(-lnƅq<xUxGdz:TZ˫.C&F	 l"{tK
7_˟)OqˆC&Gx绾Sed,[]w7s£qH+.c˾~aYwK#Öe2Ȯ92W	%C1D&Ǣh*YS7eLѻ &E^GPnE0a_6ɰ\^D}*pW&\1MJmr#iq}ȇwR=D/p_dA?!ﱀ쾺&q(Z1Յrb :u*|b>;(F{4s@tQu} ~Y᳁mcF{lC>أ#S
_e2N_NCECɁړץI[^P?y|Fmoa>tg8(H+hwAC~OW.6:^^ْ1L}Pֽ4'o|^tMA?#hKCuUcTsǮX%d3}J|ǈcxOaIif'zGͱl`4ǂK39,A-A;'h|A:\iOD_khtFߠѲK{/IoȾ-a`gi~bi?oTUD3AkM׊}
^wQ]}޾Oj?SiNZ"G̏ Lr|&çϕ'HL04τ0FwNaot54/x05㥞cqB#l
ch0oY8Y+09yrM/"瘠Q
cM/6Wl^W271fcmԏ]̃>c_15y	cwp0f0)to\[߸+Ms_[q&Y;w\]I綰tBtdM6MmF]I {%OGw$m#lc[ .na 611TkZ}iKoA_Zb}Ѝ76t_~p HoŐ/&׋bh?
GpuF/0tX#A>4p(8AAco{QWrރg"}#t=m<3s<&oeyL)f3$qѓKaճ$s6>sBo9Z'G`1Ձjn4ʥz1o(G~`.\e_oؼ^쁏F6+E[~@kmM#}g5ݭ~^j[1-}FcN_zPgkD(&oPx;O'8֑GcwN[{uO)Z|	3^|3f"=Aע77Fg:k,w&tb_Kslӣ{ps+0Tp;|Ks{c{b@M1o,eq50j90LtN{yH>ji?6f?>V	t;)NA*Aw	KkF݂ZAt{+^۱>=h1b3\g<<V4\S̆Tg~&]؆xÅb7{}4qPhÅ54¡BĳmP[̲W/Y4Es@=a06 {w={ls+<6R{5}l'er|,r|,W۫c;vnP8߶\U)psKX!{0}}NH$>X/I8='8cUa']s;4Md&kWvrcEӍ6{Fif*ibĹcTlY$I$n8Q0RnXfGԭ51ޠnM_z-:RFib>@V+m^˭)'{F{٭]T>j]ҕeо' ܧ"۠|66k6]6h*HEZJ;;*xLdm<K/قvriQrFי^["!Ohךr(#{X}pkYƮ|Tyg"ORcɝ_\W)|ϖOۿ_etfΈ2zO$7Qre|)~hrrRh|7~A:)ds(_i*gԟu.3i|u}yI6u7$#2\Qd~R8}~2/k`|	zqabk	yH{mȧ]F\g4w~M3h&y31e*+i-'!E=YlHJZT+#z0ANRZcRSHi\BST
qʰ"Ǥn@QY&q[a{Xw>7z+;gΝ73oޝ˜Ř.j-O?#oBЦ_zﶯM:DoWF,s,~>=]Sx=35]pjY,ޗZf0̵ZZ"uXt]ӥ	ģ=fםǯS,#43^6of*Q~,RywUXZ'sW-g@UH !n$:4+gY.E(M0yH#t2[lѧy-Lefh@tf:~i訛
f(AaR?fB{1.#*;	Spv{11_Py%![0aR
_( sq6ˣ;~'|g7LPWp5
=·vg-m.6K=~ȼ@wJ)eڏT538s-)r`;0g,G|k&a!^ϲ,ǗHx6ܔsm7yK]Z"S.-fw-f;U6ˇ\ZjκXwYr\b&,hM|rml\Z|;.-`5QKx¥&VۥHs˳Yrial|~6腤hRa]GoAQrZʷAoqrCG{Juȫ4cx&Gz>hcy#/9>_2䡿\׍xWpWn	mǤ.>(cR7eYuot&~-.1aI<-6:
Z@_174ڤ{97~c[RxmߋF;F.6qo-w3hYM/O⇌{"b<1]r=_:Ndj?8ֻee'Zwn[S hO̕Csox :w=8$j.aD}q(:lV;]1]̿wrq`EH3(Efۧ[DXy=%D2_0\'2[UKN÷(DDp5_<Հ_:e@_ SKf7(=^~C&aq</ѵ:ۥp'{}C҈y	BXEo/3F'Q w?	2Z9jBa-QЯm$?v/>j%p(nJ5Yց&: HN2("uc,SݥzCJpAUsjha ?<CG.3aY0 bxAUgXxFd008x[?9w'}A۟?;|%3;n{Cu}\%ק(>Aar=DAr\%=z'^bcOFOPGVq3tU&g3ǧ:݌bǿ-}k!!
BB$@XaIVS	rY#(p<?~=+
e͠?z5pi8i`n˯4QHWPv*n$RrZAfcXΰ-o㡑;_D9N@&,dJrY5}`Rvm&n?G: @$9y&Nw3(?Id+o0ΰu$y3xv#G&6:DYA&
zl%esd=C=⷏;wK>^F@?ah!Bp/ϰ+k,?aYL<^x'i{5pϒ`hAy5?8,b&3o7	mv
2%eY]˚yyw縬M%3Ke]eρktQ3Y-qKOb$}	AqkĽ8܋sY
4(*^|86`8/>|?2"߂<3"zl(yRI_z}Gi
;ct;0%lXb_L cl;xZ;=;r|#2-ߖ˾b4a @8at=3=$.!tҺ:)]VFKNX]oܸnz8Jg?	s;.{Z)Fwqkj\CZrLCpjXnQwm?hnŪ+r$zE}.AMSz%yVIZ`-D2-u5x}ލ:aqc]WGMDʱ
:kNmm]LGv'v{z\EGw3Zڰu>pW*;UuƇm^\ J00Kjj k*Զ~KGU7wZۆMZƗ0[+f-Cr*ѧy6WѴ-#pU]mtbrKuwc\Vpv@X$IwEDF,r`⛐cy6sCk.	>G] p4u*>֙Aq6\/üή`G»>pqP
5w/^wy;m!VOx>xxS1.g=A1cZ-}(#ό}L<'>-is93}a]Sj?7&=aa|{v0>4T$=ېO{`ZG%l=!|V0|5Zs?~LI[qUX'xV;PկK*:2̫;\=||g;#(\AW3<G]|&#pm<r5cyQ2(Ad80q,8Zvi!Au
2r֥1KѢ5QlpicQzLcI5±464rޥ\h)^Tq,.5}A/4A_yN
wGZ;cє=K|My!д(?y:X=o)T*!q2e~)|>b>(7B!4	vJG<""D~f	mw)aGx!G'	^݄ߣiyaz^Rg[<_<ƗeK?_.f%oo<.мt<$@<)k-w7r_kyQ:.&w_6{x-u|(o=O@oFY}}}BۻO }!}lo$V[q<!Iۻ{w_qKj>)[w%0?=
t)<5?u/.$4,BF}7H(✪HSe=I|0/N_,KYlma^	?Zj'36||to7ArE,afAO)#lm6mjۺq][gw#lsiebGܩ7fwMn/OugPˮ#})݇u:&cP=~.w&RjOn,z`bSܭDޚ )Dgҋr6|1daSgU4y	ܙq1OMބ5ˮ>lm/p	K0vsr2 C @hP$>ڭe19;E jtʋ\ւlt*i'4R5vCM}LglY2a,Y%n1^d >R-T~=F%T
K)Wۥxzɗ462`QJ@et%,ڌmK&̍I'Y2z(hdeL!,5LgmJ`V]E>Uc1~*<L*P+S<2 ǻN)	Pd.BҾ6$=ijG?Oz?$0)=eȏ] tďOtRQQ"Cm]*~G,Kp,/,5PKIFp5ǤPiOɯ~;⚏&X&?4a<3gyx>#0|<߄g<ϧq	a޹0~L!	ߪO%\ߪ]W(aǾϚpu<TS5ȣϜCK9鏠WI?>ZD/4B|;CxCJ:t@}z'>A7~У@z1B4' YzIB>b>_o΂/1,b"Ϧ1~;bBEY`C}{ܗXdkt`P[Q&٢Fv'VHﺐc/o,fM=K ƊK4?f΍S_$YN,,,?tliȧbJ/QCy'@F+ȅr( Y'b_*'QxGDRۋ
"HKgɑx%Xen.D?з9kP6I0th0K it<	wJ|;u0
m0`&mo==GB~P%G~űì`75Yr|RR(U*o>?}/r{EH ațEH
7wBIn
IFԳdkֈ	үx	p{o5_l5{ ]ʽF>"':.tB'"@LAN7,66n	9WsAL!y4@8b9l)P>W^I˾A9c2MT@99Ƚzr,|\f9"-C[U~1^-Nܗ iDf%Y)7D&c+Fe~x'oOK^Me9V8jqF#uw]wQ)bN{Է=_X3=%}ڗû"Rs!,w_d·(plDɼert7`%rǫU~Ű\XjyA\+g}3㉹dO6$t}Qj9W?ݣKufF}%suePaIic-\wo%o-ׁ	\oU>ʀ3Epm||֠g1A3IG|_a.e0s}22kF(9xߧ'!XۤRS-ޯyߦ%͇s><o|GJ]xc''pmcN4|N7f^}ܪ՝@z'Y+/}*ჺroC0f>|K_fsz'ZehA<|>;E}a8݄OŽV|{\C*ʼ{O=8X	tzG5Zihz8`WXmIf+ZEęuL
i+L
sӾr/2+L	0[վN
ci_a|,2+9}Ŵ0G>\dWK_a3+LѾx_f&|%+}}{Zo/Q_KcURNn7#D˿h$'aH7nR1-<f߆*4Ȉ)<)ӿ1-<^9?Zq\ٽ#y$cYNXT,G$*VOj&Vv[kϦ*J>Tn&8	m8Z@ZT@]@RABE[\ߛy;;{[A˹y3͛7;l'K˧o+c?֙XPx,yIq+[/ެƩb?p^iY؅Cǖ؅~1wEx]̓.6Yom߬:1x@% <poQQផ^xȘ3=~>zW?rVϪ_o#ܝJ~gflhEc?v@@!L	o:򇩮4I'4/'v>EoF3n`o<>Pؾ}GUVz{VkFݕKIH;-rn"߀eX`ƌ\57\8'T+-vǡm4nw)*TnrsN?S|WJg(_!WڕsVwX/&/G/&#'`?Q 'e|z"߉HeOL4=C?\I>x/h+g1?C_IÆ\!\W}s#jK-B \+֭B%cO
Ul:F]k3"ˤ㷷:KtA|X}vlpNt0cĳwxbv=ezû;d&f!LPX*vz(l
KCXeq;Aa'7{*̻`H|6a(%<O2_|w
C ab1[oX`hSq7.9Qnf{eKULCm9;q%ҐVee/waPӺ&F9:yP=>(RL@}PGQ~	;8'dP7A+7yӀ{5ЃwZQvW/9@o/C76|SD8Xxk։Dx8w{q`"<KO8+3O_CbWEmpilGعs)̥0_LpaY!tѮƽx6_="R653^d/h nEOE y9 u0^/O🜆mJ],cQd}!0y1;DD"]K.6!Y/:u'uÑ$VY,)ybǼ-O.=:[k#xuV_+̠HIF6GZ2r/7[`_d9'tA{t rR|/7늌W/͔4Fx_04䞲}وWb2Pق.>Nlx
t<:pqms*H{-9ƔٮE62)Sƣ6۰{:Q<fa{cX}YN6JölOtq;޸W.alCR 'Bɍyxem8O%x*ڂ;|3i|N5BuJ3/Zlzd#wxW{fZlCbhL,:8N{s2F'L{<}t:	2'LYt֙rk%G~y
G8V>}5?<i	iW0SfǬ˳S.CO]ї|C?~}ؑ{_mՃƅ;6l@Ǜ[?pfFk<^6YT_M7dc,>wngM$5~	Zp\'O7n=~}S5q2wg̛BT;6
|<*U2!:BGI]s;Ԙ#i-pj?1BZw0txx#EMC"ԁ6cMg-h	gȯ䐟̮DEiU֞U/hztu0L}*_Co8MMC?I'iNN*eE(\ɥUc^ Cn!wrǕ;m\U1kp5WT̅جd~Q9GcO%o[oG;v>s{}t
/܆oyOWښqc{hrV? 箮@(>E~]+ANlf{o0rC{C4˱sރ<}]}s$^΢EjCML"\KPk/$G?
ފOVff$QPW5w=WNo.ټ>rJWءg9ቾW9{='A%*4ywTƛ*Ɲ49qߏliEo#~ݿӮ1rDTį~Q5fۈܵP]wn43O_l͟'~r=>frs7??d%>_Y%#^Ж6*BpӯDnEL_kSGU^ɯQm3k3U|O65?+o?Vd?#0N
9'[nׁŏ~/Lf3b[ڍT/8io3)oL;y
0l~ozg7Wx-TH1EU&>HAXYqaS"ϻ7k4'Ytts$lէ?5EoTt4i~<g4]#>}>/Xtk}gsz@NE]M"T/PV0'ܮ5}O`~S=;1t~z& ;4gƼm1t\ۤkhhW\>ךG1r~DNtY?F|pu}[6+l46CFѹ׉O1z|ǔh2SZ>bC#2@LdjtoôU?olO03byr+fBgtTn}+մ?H;$@g"89ҝ&72[J|(_L}ЏKAy+Vɘ?FcFO6FOC_f׷3Ox`S7yQ?u;nݶkuEtw˙hN6\rw`^	Ws$zJhUբʘEUBtÎcT9/>b=9:uG[ǥwgzu|}^!7VmuQzQꡃ*kx*5,'~;uLwO	~{}{^NbWƍw/;*T]^ѳwu/Y*NkOW:.-uS.dv֯ƾ	~l0maokR,)Ce@8x5B39xQ\z^|x߶:A_QWVBs^eN%hD^v*v3 /i,aA NgJWERZT@; 
7*B+*~epkv֮{Q:U?P)gk>KB&&zQB3ӣ>-U.2R*Orя·}	4ǣZT6&f~\')#<WN#ԹF':{Dp^?lL@xqÀWbh5`m<Lp1׬EmI,B7f
_rH7P>n^<gHG|8&-z*{zWGG,K-kU
WY+ZHگ2t;Xf" ݙ`z_Wj{`	!=AlToӻv] O7M1X2<)>A4Oo_{'dHL_X&w:-?+aDݧr|IєԼ__OyO0/fI;*MDF`+'@3嵒RR<drO<y+x%ƩӭmӃN\i)*,,vZPO3Wg; בPx2/8F|J[,L{H^A{[YJH΋me?UKgK Ey57*qҤk-K㹤ȴD[azQQ.?=800p˦\SV륜i$}˺)$'^*e;Pks=|Ri4:L֋|<ċ}֪귛L~|*Kwp(\V凫LJ`@%n:TvrZ4 ;Kxlyy$l$C6j6j|6j/ ok((Q:I@CC|U.Mt@HGLniiKrϡl[ޗ1!ٰǤ	rdK`R^AUFPF@m2j22!^3	_,a[v;/l&-,@M2ȣ{>#x>x`({btedLiJSb;*u.r,FxtXDZ_K7Q۪O{#;~7_Ez9+AJܹ@}eecat$_@D^^Lzxz{E>3vKSO[pz#{{C}{2}ݮgBүom%y97#{%(MhK&vӄٖ~=Ж.{SgwN~YsFWA)Od'&.ٓ~d{SL?*=図"!u	7ٞaigCfHCo_B*{T;u}@l\R7|(/^xx}|wh˙6˿_o[,Ϸ,寷3i{w#8ԟk_w_ךޯ5f`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0n1OyBѭ{9'OOjc^5	Q<6/
;ap߶qG2K3]]ז"JЩw./hdc~4Rk]>drkﮃÿ{dߞ{}@ѽl޶gS~hڶ}l=Ɛ	Vf]] g4HK^h4tm"uSC&5<8׮u])돒#ٲ-[djm%rĔ%ْ#[^FGIM4Iy2Je64sY.^WfiZVb,&R{filD;~E91++]w?s~+z2OgDK"H&,*"e~
i8',͘DXT	oC@ږԷ笥N]pZlJf*>	S~#<!6-cǽ8wҗOdN
3aϘOLx9В&'#Oē)MJĤl =sHNyșl<4J''Oށ1(|*%k(!rȱxF'Kee D48)A'R *DRrҢrxj"(e䄜UH 
3Q(axp͟89	۳ DB*t|?7A,&5íYU^՚pH?pT -^+|Up s\% p8;o@J#u}г6;EJ"?8> J).~2/鿯p>Xb0	={FýɃ;Cy0İ:RK:\: QgQt<͸p{Cav;P}Ks/O;J hH$X)2IEy#
Ν~,*{Za忛pg3opSpw	pG^`lG
=~^g?Q甊kS2G0S.,xA$C:./~Ih~jRiVrJ4+ 3FX2?1트1*7.emT2/Vh
m*v|\O\ߌRlg4%*PvRڭ.&_)RJ_V&zDAz^gכ:Do4&mJ~d3|n[L66a:	mG'x
0A`M/P.[ZLS7*h:)/(7)wwh`ob\pŽ;Dv}D#>QvhgV'7پ[
?"j%'gyy8!>o/ d:(4ѯsX>CtwDv.rШփcS_`:#E[X{FX]\^¢glߴ
9r8 hEs[h~hAc3'g4).pOM_hzQ|ViV$V>Wwf@:2RGuxǛ=U<fsR&X"G<~c}~U刔H'&A1uB-qF0سh4880?@wv=&Q rNz$vDSD*,%T
JS$>(Gr[{W0:59yT)o_VB
V޵"j	W"19rz>1@o#Zdp"Ƴizk$	v	=>}t_ށ}ۭ& 6:6`gAgfj+2	VĤ![$F9l*фvCqz*5*YO+O8UA!N9&kaq.0RKI@Sb̍@#HGr2Jpxt&̍дթl!=8{08kX}0Q!xƓ]=G{R6+gh$dd)jVaogec2|mJLGi}Z;:ض}.S8nIrw}4L,y}8agl;>I3h@kNcƫP^~8O z7@c-*P>K	b#c7xwŸhv*0v&FBɏ_ pՓM1@ּۤ?^InIFlǺ~[|߭z}P_:vOԽҙΞ{p\3tmHFf h@
m`yIu45N>:St4j@G?K'xb_vУ)8nw'Ms]!ȯ(t6	Spi:9McO W`㜮&rNnwn[mwown;7J;7u;3.|F sݪߙ){8Tt:g^Z˻EJaO/n>D=?0ub,&`]^CX|P;D+~KI#xgx؇+OVaVaw1_cQhYb
<ӯ<Eya|we+f˻K	@@mkMY5^?7.69eO<\iIa^H+	r=gRZoyphbB8
qދ֓f]NG3{|vw%<Oi9Fn-쁹}oi{-7o.U8S+ZO@m̯7y6n>suӛa{j﷜>{]PӫUH9"pVgi/ޛ!7[QmbqXlw{lgvJtM@6|mY2&zHWIM8Zuk?YfAwbjZ^af+:)gI'P[C%yG}- ASB}EC ¶YKMYv1^c!L~գ؟U$)}-0;DhC:T(EN7oaG-^J3]FK =5Bǡm@M@{UӚ!vyd0Z4	0k2	Hq	}stTQ].2_beEeGՌv/֧-ᒻRC}HK([&--R7rnW>ڱW[+}_7ͧ\-Hk ]֏E&,uַa=xVl/=2@/|nbR~eSޚg^F;s^[!3Y5[J67PIc+'/>{&bBUOIZZ-߿g/(~q.ܙ~2tOacs׽SLn>`% Np<MdI#99n9ww:G4^G2TR
'dw.Rxi !ʉqT=$'gsy7ZܻzT<Et~t? ˻=)>U/,u~j=z	QIu5\^mpvu!W+
(vx w7ggr|DM:`}~fc98eoADfC=dRr3J#Y jQRVF/6Omom2z>ݻ[RFNHt"gtP$%aSEt!_K-r\}.Do-h=fO̖*5h=c"[r$ٛ"!uEQ(bxS? ,l@yQh87] @XW?7>Q
$4Yph:[hry)BLGr?%lG':7)}\GDav"׿k:-q_Pwi^y[OdP+:ys0:?+?#OWK<<;lzukbAA\6/U-Y3ż zPb\p/~1&&\fh7Tf.4&ohΩ~3`ShfTif hfԩViӬllQi3/#f;R_LJ+7մGC=hwt4\z==l3;M^]_mu~Gy'ByO;Z'DӸ4NWm˦q:W3黎\(-w80		b5Z/D7̏^|hY	xZ3g=mWy{nX9hH`=m]}_"G/ߌޞ%{|	&"@,Q[/ghO4ڷE}hWh?I>nYhϻ~*b)hW <ۃ2`Y֗r|f
D~7	ͥbkGv`<:n~*q?x1ۻbtX?N?N}w@ov/[
?ѥ#4׈n~`*/s+.S!B!B!B!B!B!B!B!B!B!B!B!B!B!B!	E0e H 