#!/bin/sh
#
# Uninstall AntiVir for UNIX
#
# Copyright (c) 2011 Avira Operations GmbH & Co. KG and its Licensors
#

PATH="/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin"
OS=`uname | env LANG=C LC_ALL=C LC_CTYPE=C tr '[:upper:]' '[:lower:]'`

AVDIR="/usr/lib/AntiVir"
BACKUP_NAME="avira"
BACKUPDIR="/var/backups/${BACKUP_NAME}"

FORCE="0"
BACKUP="0"
REMOVE_KEY_FILE="1"
REMOVE_RE="1"
KEY_FOUND="0"
CONF_FOUND="0"
LOG_FOUND="0"
CRON_FOUND="0"
ERR_SCRIPT="1"
NO_SAVAPI_UNINSTALL="1"
OTHER_PRODS_INSTALLED="1"
REMOVE_DAZUKOFS="0"
CUSTOM_PATH="0"
DIR_FILTER_LIST="0"
MAIN_NOT_EMPTY="0"
CONF_NOT_EMPTY="0"
REMOVE_AGENT_DIR="1"
PLUGIN_UNINSTALL_TIMEOUT="90"

AVLINFO_LOCATION=""
INSTALLED_PRODUCTS=""
SMC_PLUGIN=""
START_STOP_SCRIPT=""
SET_LIBRARY_PATH=""
RCSCRIPTS=""

case "${OS}" in
	sunos)
		PROCCMD="ps -ef -o pid,comm"
		PSAX="ps -ef"
		ECHO="echo_sun"
		RM_DIR="-r"
		SET_LIBRARY_PATH="env LD_LIBRARY_PATH="/usr/local/lib:/usr/lib/AntiVir/agent""
		;;
	darwin)
		PROCCMD="ps axw -o pid,command"
		PSAX="ps ax"
		ECHO="echo_sun"
		RM_DIR="-r"
		;;
	*)
		PROCCMD="ps axw -o pid,command"
		PSAX="ps ax"
		ECHO="echo"
		RM_DIR="-r"
		;;
esac


remove()
{
	REMOVE_MODE="${1}"
        REMOVE="${2}"
        REMOVE_DIR=""

        if [ ${REMOVE_MODE} = "--dir" ]
        then
                REMOVE_DIR="$RM_DIR"
        fi

	${ECHO} -n "remove ${REMOVE} ... "
	rm ${REMOVE_DIR} ${REMOVE}
	if [ ${?} -eq 0 ]
	then
		${ECHO} "done"
	else
		${ECHO} "failed"
	fi
}


echo_sun()
{
	# this script comes from the man page of echo(1) on Solaris 9
	
	if [ "X$1" = "X-n" ]
	then
		shift
		printf "%s" "$*"
	else
		printf "%s\n" "$*"
	fi
}


detect_prod()
{
	if [ -x ${AVDIR}/avguard.bin -o -x ${AVDIR}/guard/avguard.bin ]
	then
		INSTALLED_PRODUCTS="Guard"
	fi

	if [ -x ${AVDIR}/savapi/savapi ]
	then
		INSTALLED_PRODUCTS="$INSTALLED_PRODUCTS Savapi3"
	fi

	if [ -x ${AVDIR}/avmailgate.bin -o -x ${AVDIR}/mailgate/avmailgate.bin ]
	then
		INSTALLED_PRODUCTS="$INSTALLED_PRODUCTS MailGate"
	fi

	if [ -x ${AVDIR}/avwebgate.bin -o -x ${AVDIR}/webgate/avwebgate.bin ]
	then
		INSTALLED_PRODUCTS="$INSTALLED_PRODUCTS WebGate"
	fi

	if [ -x ${AVDIR}/ium/ium ]
	then
		INSTALLED_PRODUCTS="$INSTALLED_PRODUCTS AUM"
	fi

	if [ -x ${AVDIR}/agent/agent ]
	then
		INSTALLED_PRODUCTS="$INSTALLED_PRODUCTS Agent"
	fi

	if [ -x "${AVDIR}/SAP-VSA-Adapter/savapi" -a -x "${AVDIR}/SAP-VSA-Adapter/libantivirvsa.so" ]
	then
		INSTALLED_PRODUCTS="$INSTALLED_PRODUCTS SAPVSA"
	fi
}


root_check()
{
	ID=`id`
	CUT=`${ECHO} $ID | sed -e 's,uid=0(,,'`
	if [ "$CUT" = "$ID" ]
	then
		CUT=`${ECHO} $ID | sed -e 's,\euid=0(,,'`
		if [ "$CUT" = "$ID" ]
		then
			${ECHO} " "
			${ECHO} "This script must be run as root."
			${ECHO} " "
			exit 2
		fi
	fi
}


check_if_product_installed()
{
	if [ "${PRODUCT}" = "all" ]
	then
		return 0
	fi

	TEMP1="`${ECHO} ${INSTALLED_PRODUCTS} | env LANG=C LC_ALL=C LC_CTYPE=C tr '[:upper:]' '[:lower:]'`"

	${ECHO} ${TEMP1} | grep ${PRODUCT} > /dev/null 2>&1
	if [ ${?} -ne 0 ]
	then
		${ECHO} "Invalid product specified: ${PRODUCT}"
		${ECHO} " "
		${ECHO} "Please run \"uninstall\" to view which products are installed"
		exit 3
	fi
}


get_ium_http_root()
{
	if [ -f "/etc/avira/ium.conf" ]
	then
		DIR_IUM_HTTPROOT_DEFAULT="`grep "http_server_root value" /etc/avira/ium.conf | sed -e 's,.*<http_server_root value\=\",,' -e 's,\"\ \/>.*,,'`"
	fi
}


check_for_savapi_or_vsa()
{
	if [ "$CUSTOM_PATH" -eq "1" ]
	then
		if [ "${PRODUCT}" != "savapi3" -a "${PRODUCT}" != "sapvsa" ]
		then
			${ECHO} ""
			${ECHO} "--install-base-dir is only available for:"
			${ECHO} "    Avira AntiVir Savapi3"
			${ECHO} "    Avira AntiVir VSA"
			exit 1
		fi
	fi
}


check_for_empty_cronjob()
{
	CRONJOB_FILE="/etc/cron.d/avira_updater"

	if [ ! -f "${CRONJOB_FILE}" ]
	then
		return 0
	fi

	if [ -s "${CRONJOB_FILE}" ]
	then
		if [ `wc -w ${CRONJOB_FILE} | sed -e 's,'${CRONJOB_FILE}',,'` -eq 0 ]
		then
			FILE_LIST="${FILE_LIST} ${CRONJOB_FILE}"
		fi
	else
		FILE_LIST="${FILE_LIST} ${CRONJOB_FILE}"
	fi
}


detect_prod


if [ "$#" -eq 0 ]
then
	${ECHO} "uninstall [--product=productname] [--no-interactive] [--inf=inf file]"
	${ECHO} "          [--force] [--skip] [--version] [--help]"
	${ECHO} " "
	${ECHO} "installed products:"
	
	if [ -z "${INSTALLED_PRODUCTS}" ]
	then
		${ECHO} "   no installed product found"
		exit 4
	else
		for ITEM in ${INSTALLED_PRODUCTS}
		do
			${ECHO} "   ${ITEM}"
		done
		exit 0
	fi
fi


# check the given parameters
for PARAM in "$@"
do
	case "${PARAM}" in
		--product=*)
			TEMP="`${ECHO} "${PARAM}" | sed -e 's,^--product=,,'`"
			PRODUCT="`${ECHO} "${TEMP}" | env LANG=C LC_ALL=C LC_CTYPE=C tr '[:upper:]' '[:lower:]'`"
			;;

		--no-interactive)
			BACKUP_CONF_FILES="n"
			BACKUP_LOG_FILES="n"
			REMOVE_CRONJOB="y"
			BACKUP_KEY_FILES="n"
			REMOVE_KEY_FILE_ANYWAY="n"
			REMOVE_REJECTED="y"
			REMOVE_HTTPROOT="y"
			FORCE_YES="y"
			SKIP="n"
			;;

		 --inf=*)
			TEMP="`${ECHO} "${PARAM}" | sed -e 's,^--inf=,,'`"
			INF_FILE="${TEMP}"

			if [ -f "${INF_FILE}" ]
			then
# 				source inf_file for no interactive mode
				. ${INF_FILE}
			else
				${ECHO} "${INF_FILE} not found"
				exit 5
			fi
			;;

		--force)
			FORCE="1"
			;;

		--skip)
			SKIP="y"
			;;

		--help|-help|help|-h)
			README_LOCATION="`echo "${0}" | sed -e 's,uninstall,,'`"

			if [ -f ${README_LOCATION}/README.uninstall ]
			then
				cat ${README_LOCATION}/README.uninstall
				exit 0

			elif [ -f ./README.uninstall ]
			then
				cat ./README.uninstall
				exit 0

			elif [ -f ${AVDIR}/guard/README.uninstall ]
			then
				cat ${AVDIR}/guard/README.uninstall
				exit 0
			
			elif [ -f ${AVDIR}/mailgate/README.uninstall ]
			then
				cat ${AVDIR}/mailgate/README.uninstall
				exit 0
			
			elif [ -f ${AVDIR}/webgate/README.uninstall ]
			then
				cat ${AVDIR}/webgate/README.uninstall
				exit 0
			
			elif [ -f ${AVDIR}/ium/README.uninstall ]
			then
				cat ${AVDIR}/ium/README.uninstall
				exit 0
			
			elif [ -f ${AVDIR}/agent/README.uninstall ]
			then
				cat ${AVDIR}/agent/README.uninstall
				exit 0
			
			elif [ -f ${AVDIR}/savapi/README.uninstall ]
			then
				cat ${AVDIR}/savapi/README.uninstall
				exit 0
			
			elif [ -f ${AVDIR}/README.uninstall ]
			then
				cat ${AVDIR}/README.uninstall
				exit 0
			else
				${ECHO} "README.uninstall not found"
				exit 6
			fi
			;;

		--version)
			${ECHO} "product:            Avira Product Uninstall"
			${ECHO} "product version:    2.0.0"
			exit 0
			;;

		*)
			${ECHO} "${PARAM} unknown option, read README for the available options"
			exit 1
			;;
	esac
done


check_for_savapi_or_vsa

UNINSTALL_LOCATION="`echo "${0}" | sed -e 's,uninstall,,'`"

if [ -f ${UNINSTALL_LOCATION}/file_list -a -f ${UNINSTALL_LOCATION}/dir_list ]
then
	. ${UNINSTALL_LOCATION}/file_list
	. ${UNINSTALL_LOCATION}/dir_list

elif [ -f ./file_list -a -f ./dir_list ]
then
	. ./file_list
	. ./dir_list

elif [ -f ${AVDIR}/${PRODUCT}/file_list -a -f ${AVDIR}/${PRODUCT}/dir_list ]
then
	. ${AVDIR}/${PRODUCT}/file_list
	. ${AVDIR}/${PRODUCT}/dir_list

elif [ -f ${AVDIR}/guard/file_list -a -f ${AVDIR}/guard/dir_list ]
then
	. ${AVDIR}/guard/file_list
	. ${AVDIR}/guard/dir_list

elif [ -f ${AVDIR}/mailgate/file_list -a -f ${AVDIR}/mailgate/dir_list ]
then
	. ${AVDIR}/mailgate/file_list
	. ${AVDIR}/mailgate/dir_list

elif [ -f ${AVDIR}/webgate/file_list -a -f ${AVDIR}/webgate/dir_list ]
then
	. ${AVDIR}/webgate/file_list
	. ${AVDIR}/webgate/dir_list

elif [ -f ${AVDIR}/ium/file_list -a -f ${AVDIR}/ium/dir_list ]
then
	. ${AVDIR}/ium/file_list
	. ${AVDIR}/ium/dir_list

elif [ -f ${AVDIR}/agent/file_list -a -f ${AVDIR}/agent/dir_list ]
then
	. ${AVDIR}/agent/file_list
	. ${AVDIR}/agent/dir_list

elif [ -f ${AVDIR}/savapi/file_list -a -f ${AVDIR}/savapi/dir_list ]
then
	. ${AVDIR}/savapi/file_list
	. ${AVDIR}/savapi/dir_list

elif [ -f ${AVDIR}/file_list -a -f ${AVDIR}/dir_list ]
then
	. ${AVDIR}/file_list
	. ${AVDIR}/dir_list

elif [ -f ./etc/file_list -a -f ./etc/dir_list ]
then
	. ./etc/file_list
	. ./etc/dir_list

else
	${ECHO} " "
	${ECHO} "file and dir list are not available"
	exit 7
fi


root_check


# set variables for the products
if [ -n "${PRODUCT}" ]
then
	case "${PRODUCT}" in
		agent)
			FULLPRODUCTNAME="Avira AMC Agent"
			
			NO_SAVAPI_UNINSTALL="0"
			CRONJOB="Agent agent"
			SSS="$AVDIR/agent/smc-agent"
			INSTALL_LIST="$AVDIR/agent/install_list_agent"
			ENTER_PATH="/usr/lib/AntiVir/smc-registry/hkey_local_machine/software/h+bedv/enterprise management console"
			DAEMONNAME="/usr/lib/AntiVir/agent/${PRODUCT}"
			
			FILE_LIST="${FILE_AGENT}"
			DIR_LIST="${DIR_AGENT}"
			CONF_LIST="${FILE_AGENT_CONF}"
			LOG_LIST="${FILE_AGENT_LOG}"
			DIR_FILTER_LIST="1"
			KEY_DIR="${AVDIR}/agent"

# 			no other product is installed or can be detected
			if [ ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/ium/ium -a ! -x ${AVDIR}/savapi/savapi ]
			then
				CRONJOB="Agent agent"
				FILE_LIST="${FILE_AGENT} ${FILE_AVUPDATE}"
				DIR_LIST="${DIR_AGENT} ${DIR_SHARED_AGENT} ${DIR_AVUPDATE} ${DIR_SHARED}"
				CONF_LIST="${FILE_AGENT_CONF} ${FILE_AVUPDATE_CONF}"
				LOG_LIST="${FILE_AGENT_LOG} ${FILE_AVUPDATE_LOG}"
				OTHER_PRODS_INSTALLED="0"
				NO_SAVAPI_UNINSTALL="0"
			fi
			;;

		savapi3)
			FULLPRODUCTNAME="Avira AntiVir Savapi3"

			KEY_DIR="${AVDIR}/savapi"
			DAEMONNAME="${AVDIR}/savapi/savapi"
			INSTALL_LIST="$AVDIR/savapi/install_list_savapi"
			SSS="$AVDIR/savapi/savapi"
			SSS_CONFIG="${AVDIR}/savapi/savapi3.conf"

			FILE_LIST="${FILE_SAVAPI3}"
			DIR_LIST="${DIR_SAVAPI3}"
			CONF_LIST="${FILE_SAVAPI3_CONF}"
			LOG_LIST="${FILE_SAVAPI3_LOG}"
			DIR_FILTER_LIST="1"

# 			no other product is installed or can be detected
			if [ ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a ! -x ${AVDIR}/ium/ium -a ! -x ${AVDIR}/agent/agent ]
			then
				FILE_LIST="${FILE_SAVAPI3}"
				DIR_LIST="${DIR_SAVAPI3} ${DIR_SHARED}"
				CONF_LIST="${FILE_SAVAPI3_CONF}"
				LOG_LIST=""
				OTHER_PRODS_INSTALLED="0"
			fi
			;;

		sapvsa)
			FULLPRODUCTNAME="Avira AntiVir VSA"

			KEY_DIR="${AVDIR}/SAP-VSA-Adapter"
			DAEMONNAME="${AVDIR}/SAP-VSA-Adapter/savapi"
			INSTALL_LIST="$AVDIR/SAP-VSA-Adapter/install_list_vsa"
			SSS="$AVDIR/SAP-VSA-Adapter/savapi"
			SSS_CONFIG="${AVDIR}/SAP-VSA-Adapter/savapi3.conf"

			FILE_LIST="${FILE_SAPVSA}"
			DIR_LIST="${DIR_SAPVSA}"
			CONF_LIST="${FILE_SAPVSA_CONF}"
			LOG_LIST="${FILE_SAPVSA_LOG}"
			DIR_FILTER_LIST="1"

# 			no other product is installed or can be detected
			if [ ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a ! -x ${AVDIR}/ium/ium -a ! -x ${AVDIR}/agent/agent ]
			then
				FILE_LIST="${FILE_SAPVSA}"
				DIR_LIST="${DIR_SAPVSA} ${DIR_SHARED}"
				CONF_LIST="${FILE_SAPVSA_CONF}"
				LOG_LIST=""
				OTHER_PRODS_INSTALLED="0"
			fi
			;;

		mailgate)
			FULLPRODUCTNAME="Avira AntiVir MailGate"

			SMC_PLUGIN="libuxmgt.so"
			CRONJOB="MailGate mailgate"
			KEY_DIR="${AVDIR}"
			INSTALL_LIST="$AVDIR/mailgate/install_list_mailgate"
			DAEMONNAME_CONFIG="/etc/avira/avmailgate-scanner.conf"
			SSS="$AVDIR/avmailgate $AVDIR/mailgate/avmailgate"
			
			if [ -f "$AVDIR/avmailgate.bin.obsolete" -o ! -f "$AVDIR/avmailgate.bin" ]
			then
				DAEMONNAME="${AVDIR}/mailgate/avmailgate.bin ${AVDIR}/mailgate/gui/bin/avmg_stats ${AVDIR}/mailgate/savapi"
			else
				DAEMONNAME="${AVDIR}/avmailgate.bin ${AVDIR}/gui/bin/avmg_stats ${AVDIR}/savapi"
			fi

			FILE_LIST="${FILE_MAILGATE}"
			DIR_LIST="${DIR_MAILGATE}"
			CONF_LIST="${FILE_MAILGATE_CONF}"
			LOG_LIST="${FILE_MAILGATE_LOG}"
			DIR_FILTER_LIST="1"

# 			there is only an installed smc agent
			if [ ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a ! -x ${AVDIR}/ium/ium -a -x ${AVDIR}/agent/agent ]
			then
				CRONJOB="MailGate mailgate Scanner scanner"
				FILE_LIST="${FILE_MAILGATE} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_MAILGATE} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_TEMPLATES}"
				CONF_LIST="${FILE_MAILGATE_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF}"
				LOG_LIST="${FILE_MAILGATE_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG}"
				OTHER_PRODS_INSTALLED="0"
				NO_SAVAPI_UNINSTALL="0"

# 			there is only an installed ium
			elif [ ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a -x ${AVDIR}/ium/ium -a ! -x ${AVDIR}/agent/agent ]
			then
				CRONJOB="MailGate mailgate Scanner scanner"
				FILE_LIST="${FILE_MAILGATE} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_MAILGATE} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_TEMPLATES}"
				CONF_LIST="${FILE_MAILGATE_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF}"
				LOG_LIST="${FILE_MAILGATE_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG}"
				OTHER_PRODS_INSTALLED="1"
				NO_SAVAPI_UNINSTALL="0"
				REMOVE_AGENT_DIR="1"

# 			no other product is installed or can be detected
			elif [ ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a ! -x ${AVDIR}/ium/ium -a ! -x ${AVDIR}/agent/agent -a ! -x ${AVDIR}/savapi/savapi ]
			then
				CRONJOB="MailGate mailgate Scanner scanner"
				FILE_LIST="${FILE_MAILGATE} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_AVUPDATE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_MAILGATE} ${DIR_AVUPDATE} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_SMC} ${DIR_SHARED_AGENT} ${DIR_SHARED_TEMPLATES} ${DIR_SHARED}"
				CONF_LIST="${FILE_MAILGATE_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF} ${FILE_AVUPDATE_CONF}"
				LOG_LIST="${FILE_MAILGATE_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG} ${FILE_AVUPDATE_LOG}"
				OTHER_PRODS_INSTALLED="0"
				NO_SAVAPI_UNINSTALL="0"
				REMOVE_AGENT_DIR="1"
			fi
			;;

		guard)
			FULLPRODUCTNAME="Avira AntiVir Guard"

			CRONJOB="guard"
			REMOVE_DAZUKOFS="1"
			DAEMONNAME_CONFIG="/etc/avira/avguard-scanner.conf"
			SMC_PLUGIN="libuxsrv.so libuxwks.so"
			PRODUCT_CONF_FILE="/etc/avira/av${PRODUCT}.conf"
			INSTALL_LIST="$AVDIR/guard/install_list_guard"
			SSS="$AVDIR/avguard $AVDIR/guard/avguard"
			KEY_DIR="${AVDIR}"

			if [ ! -f "$AVDIR/avguard.bin" -o -f "$AVDIR/avguard.bin.obsolete" ]
			then
				CRONJOB="guard scanner"
			fi
			

			if [ -f "$AVDIR/avguard.bin.obsolete" -o ! -f "$AVDIR/avguard.bin" ]
			then
				DAEMONNAME="${AVDIR}/guard/avguard-scanner ${AVDIR}/guard/avsavapi-super  ${AVDIR}/guard/avguard-ondemand-mgmt ${AVDIR}/guard/avguard.bin ${AVDIR}/guard/gui/bin/avgu_stats ${AVDIR}/guard/savapi"
			else
				DAEMONNAME="${AVDIR}/avguard-scanner ${AVDIR}/avsavapi-super  ${AVDIR}/avguard-ondemand-mgmt ${AVDIR}/avguard.bin ${AVDIR}/gui/bin/avgu_stats ${AVDIR}/savapi"
			fi

			FILE_LIST="${FILE_GUARD}"
			CONF_LIST="${FILE_GUARD_CONF}"
			LOG_LIST="${FILE_GUARD_LOG}"
			DIR_LIST="${DIR_GUARD}"
			DIR_FILTER_LIST="1"

			if [ ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a ! -x ${AVDIR}/agent/agent ]
			then
				DIR_LIST="${DIR_GUARD} ${AVDIR}/agent"
			fi

# 			there is only an installed smc agent
			if [ -x ${AVDIR}/agent/agent -a ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a ! -x ${AVDIR}/ium/ium ]
			then
				CRONJOB="Guard guard Scanner scanner"
				FILE_LIST="${FILE_GUARD} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_GUARD} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_TEMPLATES}"
				CONF_LIST="${FILE_GUARD_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF}"
				LOG_LIST="${FILE_GUARD_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG}"
				OTHER_PRODS_INSTALLED="0"
				NO_SAVAPI_UNINSTALL="0"

# 			no other product is installed or can be detected
			elif [ ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a ! -x ${AVDIR}/ium/ium -a ! -x ${AVDIR}/agent/agent -a ! -x ${AVDIR}/savapi/savapi ]
			then
				CRONJOB="Guard guard Scanner scanner"
				FILE_LIST="${FILE_GUARD} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_AVUPDATE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_GUARD} ${DIR_UPDATE} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_SMC} ${DIR_SHARED_AGENT} ${DIR_SHARED_TEMPLATES} ${DIR_SHARED}"
				CONF_LIST="${FILE_GUARD_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF} ${FILE_AVUPDATE_CONF}"
				LOG_LIST="${FILE_GUARD_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG} ${FILE_AVUPDATE_LOG}"
				OTHER_PRODS_INSTALLED="0"
				NO_SAVAPI_UNINSTALL="0"
				REMOVE_AGENT_DIR="1"
			fi
			;;
	
		webgate)
			FULLPRODUCTNAME="Avira AntiVir WebGate"

			SMC_PLUGIN="libuxwgt.so"
			CRONJOB="Webgate webgate"
			KEY_DIR="${AVDIR}"
			INSTALL_LIST="$AVDIR/webgate/install_list_webgate"
			DAEMONNAME_CONFIG="/etc/avwebgate-scanner.conf"
			SSS="$AVDIR/avwebgate $AVDIR/webgate/avwebgate"

			if [ -f "$AVDIR/avwebgate.bin.obsolete" -o ! -f "$AVDIR/avwebgate.bin" ]
			then
				DAEMONNAME="${AVDIR}/webgate/avwebgate.bin ${AVDIR}/webgate/gui/bin/avmg_stats ${AVDIR}/webgate/savapi"
			else
				DAEMONNAME="${AVDIR}/avwebgate.bin ${AVDIR}/gui/bin/avmg_stats ${AVDIR}/savapi"
			fi

			FILE_LIST="${FILE_WEBGATE}"
			DIR_LIST="${DIR_WEBGATE}"
			CONF_LIST="${FILE_WEBGATE_CONF}"
			LOG_LIST="${FILE_WEBGATE_LOG}"
			DIR_FILTER_LIST="1"

# 			there is only an installed smc agent
			if [ ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/ium/ium -a -x ${AVDIR}/agent/agent ]
			then
				CRONJOB="Webgate webgate Scanner scanner"
				FILE_LIST="${FILE_WEBGATE} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_WEBGATE} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_TEMPLATES}"
				CONF_LIST="${FILE_WEBGATE_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF}"
				LOG_LIST="${FILE_WEBGATE_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG}"
				OTHER_PRODS_INSTALLED="1"
				NO_SAVAPI_UNINSTALL="0"

# 			there is only an installed ium
			elif [ ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a -x ${AVDIR}/ium/ium -a ! -x ${AVDIR}/agent/agent ]
			then
				CRONJOB="Webgate webgate Scanner scanner"
				FILE_LIST="${FILE_WEBGATE} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_WEBGATE} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_TEMPLATES}"
				CONF_LIST="${FILE_WEBGATE_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF}"
				LOG_LIST="${FILE_WEBGATE_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG}"
				OTHER_PRODS_INSTALLED="1"
				NO_SAVAPI_UNINSTALL="0"
				REMOVE_AGENT_DIR="1"

# 			no other product is installed or can be detected
			elif [ ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/ium/ium -a ! -x ${AVDIR}/agent/agent -a ! -x ${AVDIR}/savapi/savapi ]
			then
				CRONJOB="Webgate webgate Scanner scanner"
				FILE_LIST="${FILE_WEBGATE} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_AVUPDATE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_WEBGATE} ${DIR_AVUPDATE} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_SMC} ${DIR_SHARED_AGENT} ${DIR_SHARED_TEMPLATES} ${DIR_SHARED}"
				CONF_LIST="${FILE_WEBGATE_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF} ${FILE_AVUPDATE_CONF}"
				LOG_LIST="${FILE_WEBGATE_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG} ${FILE_AVUPDATE_LOG}"
				OTHER_PRODS_INSTALLED="0"
				NO_SAVAPI_UNINSTALL="0"
				REMOVE_AGENT_DIR="1"
			fi
			;;

		aum)
			FULLPRODUCTNAME="Avira AUM"
			DAEMONNAME="${AVDIR}/ium/${PRODUCT}"
			FILE_LIST="${FILE_IUM}"
			DIR_LIST="${DIR_IUM}"
			CONF_LIST="${FILE_IUM_CONF}"
			LOG_LIST="${FILE_IUM_LOG}"
			CRONJOB="IUM ium"
			INSTALL_LIST="$AVDIR/ium/install_list_ium"
			SSS="$AVDIR/ium/avium"
			KEY_DIR="${AVDIR}/ium"
			DIR_FILTER_LIST="1"

			get_ium_http_root

# 			there is only an installed smc agent
			if [ -x ${AVDIR}/agent/agent -a ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin ]
			then
				CRONJOB="IUM ium"
				FILE_LIST="${FILE_IUM} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_IUM} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_TEMPLATES}"
				CONF_LIST="${FILE_IUM_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF}"
				LOG_LIST="${FILE_IUM_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG}"
				OTHER_PRODS_INSTALLED="0"
				NO_SAVAPI_UNINSTALL="0"

# 			no other product is installed or can be detected
			elif [ ! -x ${AVDIR}/avmailgate.bin -a ! -x ${AVDIR}/mailgate/avmailgate.bin -a ! -x ${AVDIR}/avguard.bin -a ! -x ${AVDIR}/guard/avguard.bin -a ! -x ${AVDIR}/avwebgate.bin -a ! -x ${AVDIR}/webgate/avwebgate.bin -a ! -x ${AVDIR}/agent/agent -a ! -x ${AVDIR}/savapi/savapi ]
			then
				CRONJOB="IUM ium"
				FILE_LIST="${FILE_IUM} ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_AVUPDATE} ${FILE_SHARED_SMC}"
				DIR_LIST="${DIR_IUM} ${DIR_UPDATE} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_SHARED_SMC} ${DIR_SHARED_AGENT} ${DIR_SHARED_TEMPLATES} ${DIR_SHARED}"
				CONF_LIST="${FILE_IUM_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF} ${FILE_AVUPDATE_CONF}"
				LOG_LIST="${FILE_IUM_LOG} ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG} ${FILE_AVUPDATE_LOG}"
				OTHER_PRODS_INSTALLED="0"
				NO_SAVAPI_UNINSTALL="0"
			fi
			;;
	
		all)
			get_ium_http_root
			KEY_DIR="${AVDIR}"
			FULLPRODUCTNAME="All installed Products"
			DAEMONNAME="${AVDIR}/savapi ${AVDIR}/savapi/savapi ${AVDIR}/avguard.bin ${AVDIR}/gui/bin/avgu_stats ${AVDIR}/guard/avguard.bin ${AVDIR}/guard/gui/bin/avgu_stats ${AVDIR}/avmailgate.bin ${AVDIR}/gui/bin/avmg_stats ${AVDIR}/mailgate/avmailgate.bin ${AVDIR}/mailgate/gui/bin/avmg_stats ${AVDIR}/avwebgate.bin ${AVDIR}/webgate/avwebgate.bin ${AVDIR}/agent/agent ${AVDIR}/ium/ium"
			INSTALL_LIST="$AVDIR/guard/install_list_guard $AVDIR/ium/install_list_ium $AVDIR/agent/install_list_agent $AVDIR/savapi/install_list_savapi $AVDIR/mailgate/install_list_mailgate $AVDIR/webgate/install_list_webgate"
			SSS="$AVDIR/agent/smc-agent $AVDIR/ium/avium $AVDIR/avmailgate $AVDIR/avwebgate $AVDIR/mailgate/avmailgate $AVDIR/webgate/avwebgate $AVDIR/avguard $AVDIR/guard/avguard"
			SSS_CONFIG="${AVDIR}/savapi/savapi3.conf"
			FILE_LIST="${FILE_AGENT} ${FILE_MAILGATE} ${FILE_WEBGATE} ${FILE_GUARD} ${FILE_IUM} \
				   ${FILE_SAVAPI} ${FILE_VDF} ${FILE_ENGINE} ${FILE_AVUPDATE} ${FILE_SHARED_SMC}"
			DIR_LIST="${DIR_AGENT} ${DIR_MAILGATE} ${DIR_WEBGATE} ${DIR_UPDATE} \
				  ${DIR_IUM} ${DIR_SAVAPI} ${DIR_VDF} ${DIR_ENGINE} ${DIR_GUARD} ${DIR_SHARED_SMC} ${DIR_SHARED_AGENT} 
				  ${DIR_SHARED_TEMPLATES} ${DIR_SHARED}"
			CONF_LIST="${FILE_AGENT_CONF} ${FILE_MAILGATE_CONF} ${FILE_WEBGATE_CONF} ${FILE_GUARD_CONF} \
				   ${FILE_IUM_CONF} ${FILE_SAVAPI_CONF} ${FILE_VDF_CONF} ${FILE_ENGINE_CONF} ${FILE_AVUPDATE_CONF}"
			LOG_LIST="${FILE_AGENT_LOG} ${FILE_MAILGATE_LOG} ${FILE_WEBGATE_LOG} ${FILE_GUARD_LOG} ${FILE_IUM_LOG} \
				  ${FILE_SAVAPI_LOG} ${FILE_VDF_LOG} ${FILE_ENGINE_LOG} ${FILE_AVUPDATE_LOG}"	
			PRODUCT_CONF_FILE="/etc/avmailgate.conf /etc/avwebgate.conf /etc/avira/avguard.conf"
			OTHER_PRODS_INSTALLED="0"
			NO_SAVAPI_UNINSTALL="0"
			REMOVE_DAZUKOFS="1"
			CRONJOB="Agent agent IUM ium Maiglate mailgate Guard guard Webgate webgate Scanner scanner"
			;;
	
		*)
			${ECHO} "Your specified product does not exist. Please read the README or --help for more informations."
			exit 8
			;;
	esac
else
	${ECHO} "You have to set --product to use this script"
	exit 8
fi

check_if_product_installed

getPROCESSLIST()
{
	PROCESSLIST=""

	for PROC in $DAEMONNAME
	do
		echo "$PROC" | grep "savapi" > /dev/null 2>&1
		if [ "$?" -eq "0" -a "${PRODUCT}" = "savapi3" ]
		then
			PROC="$SSS_CONFIG"
		fi

		for PID in `${PROCCMD} | grep "$PROC" | grep -v uninstall | grep -v grep | awk -F' ' '{ print $1 }'`
		do
			PROCESSLIST="$PROCESSLIST $PID"
		done
	done
}

getPROCESSLIST_withnames()
{
	PROCESSLIST=""
	TMP_PROCESSLIST=""

	for PROC in $DAEMONNAME
	do
		for PID in `$PROCCMD | grep "$PROC" | grep -v uninstall | grep -v grep | awk -F' ' '{ print $1 }'`
		do
			TMP_PROCESSLIST="$TMP_PROCESSLIST $PID"
		done
	done

	PROCESSLIST="`for i in $TMP_PROCESSLIST; do echo $i; done | sort | uniq`"
}

stop_running_processes()
{
#	shot into the blue and try to stop the savapi with the default config file
	if [ "${PRODUCT}" = "savapi3" ]
	then
		if [ -x "${SSS}" ]
		then
			${ECHO} -n "Stop running processes ... "
			${SSS} --config=${SSS_CONFIG} --stop > /dev/null 2>&1
			${ECHO} "done"
		fi
	else
# 		check if there are running procudt processes
		${ECHO} " "
		${ECHO} -n "Check for running processes ... "
	
		PROCESS_FOUND="0"
	
		getPROCESSLIST
		if [ ! -z "${PROCESSLIST}" ]
		then
			PROCESS_FOUND="1"
		fi
	
# 		if there are running processes, check which start/stop script exists(old/new) and try to stop the running processes
		if [ "${PROCESS_FOUND}" -eq "0" ]
		then
			${ECHO} "no processes found"
		else
			${ECHO} "processes found"
	
			for SSS_2_CHECK in ${SSS}
			do
				if [ -x "${SSS_2_CHECK}" ]
				then
					${ECHO} -n "      stop running processes with the start/stop script ... "
					/bin/sh ${SSS_2_CHECK} stop > /dev/null 2>&1
					${ECHO} "done"
				fi
			done
		fi

		if [ "${PRODUCT}" = "all" ]
		then
#			shot into the blue and try to stop the savapi with the default config file
			if [ -x "${AVDIR}/savapi/savapi" ]
			then
				${ECHO} -n "Stop running processes ... "
				${AVDIR}/savapi/savapi --config=${SSS_CONFIG} --stop > /dev/null 2>&1
				${ECHO} "done"
			fi
		fi
	fi

	PROCESS_FOUND="0"
	${ECHO} -n "Check for remaining processes ..."

	getPROCESSLIST_withnames
	if [ ! -z "${PROCESSLIST}" ]
	then
		PROCESS_FOUND="1"
	fi

	if [ "${PROCESS_FOUND}" -eq "0" ]
	then
		${ECHO} "no processes found"
	else
		${ECHO} "processes found"
		${ECHO} " "
		${ECHO} "It was not possible to stop all relevant product processes."
		${ECHO} "Please shutdown all processes before you perform a new uninstall."
		${ECHO} " "
		${ECHO} "The following processes were found:"
		for RUNNING_PROCESSES in $PROCESSLIST
		do
			$PROCCMD | grep $RUNNING_PROCESSES | grep -v uninstall | grep -v grep
		done

		${ECHO} " "
		${ECHO} -n "Would you like to continue with the uninstall, even there are detected processes? [n] "
		INPUT=${SKIP}

		if [ -z "${INPUT}" ]
		then
			read INPUT
		else
			${ECHO} "${INPUT}"
		fi

		case ${INPUT} in
				y*|Y*|j*|J*)
					return 0
					;;
		esac

		exit 10

		
	fi
}


unregister_agent()
{
	if [ "${PRODUCT}" != "agent" -a "${PRODUCT}" != "all" ]
	then
		return 0
	fi

	${ECHO} -n "unregister agent from AMC ... "
	$AVDIR/agent/agent -u > /dev/null 2>&1
	${ECHO} "done"
}


make_backupdir()
{
	${ECHO} -n "   Looking for existing backupdir ..."

	if [ -d "${BACKUPDIR}" ]
	then
		${ECHO} " found"
		chmod 700 ${BACKUPDIR}
	else
		${ECHO} " not found"
		${ECHO} "      -> mkdir backupdir: "${BACKUPDIR}""
		mkdir -p "${BACKUPDIR}"
		ERR=$?
		if [ "${ERR}" -eq 0 ]
		then
			chmod 700 ${BACKUPDIR}
			return 0
		else
			return 1
		fi
	fi
}


handle_license_file()
{
	if [ "${PRODUCT}" = "guard" ]
	then
		if [ -x "${AVDIR}/guard/avguard.bin" ]
		then
			KEY_LOCATIONS="${KEY_DIR} ${AVDIR}/guard"
		fi

	elif [ "${PRODUCT}" = "mailgate" ]
	then
		if [ -x "${AVDIR}/mailgate/avmailgate.bin" ]
		then
			KEY_LOCATIONS="${KEY_DIR} ${AVDIR}/mailgate"
		fi

	elif [ "${PRODUCT}" = "webgate" ]
	then
		if [ -x "${AVDIR}/webgate/avwebgate.bin" ]
		then
			KEY_LOCATIONS="${KEY_DIR} ${AVDIR}/webgate"
		fi
	else
		KEY_LOCATIONS="${KEY_DIR}"
	fi

	${ECHO} " "
	${ECHO} -n "Looking for existing key files ..."

	if [ "${PRODUCT}" = "all" ]
	then
		for ITEM in `find ${AVDIR} -type f | sed -e 's,\/usr\/lib\/AntiVir\/,,' | grep -i "\.key$"`
		do
			if [ -f "${AVDIR}/${ITEM}" ]
			then
				KEY_FOUND=`expr ${KEY_FOUND} + 1`
				KEY_FILES="$KEY_FILES $ITEM"
			fi
		done
	else
		for KEY_DIR in ${KEY_LOCATIONS}
		do
			for ITEM in `ls ${KEY_DIR} | grep -i "\.key$"`
			do
				if [ -f "${KEY_DIR}/${ITEM}" ]
				then
					KEY_FOUND=`expr ${KEY_FOUND} + 1`
					KEY_FILES="$KEY_FILES $ITEM"
				fi
			done
		done
	fi

	if [ "${KEY_FOUND}" -eq 0 ]
	then
		${ECHO} " no key file found"
	else
		${ECHO} " ${KEY_FOUND} key file found"
		if [ $OTHER_PRODS_INSTALLED -eq 1 -a ${PRODUCT} != "all" -a ${FORCE} -eq 0 ]
		then
			${ECHO} -n "   Other products are installed, would you like to remove the key file anyway? [n] "
			INPUT=${REMOVE_KEY_FILE_ANYWAY}

			if [ -z "${INPUT}" ]
			then
				read INPUT
			else
				${ECHO} "${INPUT}"
			fi

			REMOVE_KEY_FILE=0
			case ${INPUT} in
					y*|Y*|j*|J*)
					REMOVE_KEY_FILE=1
					;;
			esac
		fi

		if [ "${PRODUCT}" =  "guard" -a "${REMOVE_KEY_FILE}" -eq "0" ]
		then
			REMOVE_KEY_FILE=1
			${ECHO} "Uninstall AVIRA Guard will also remove the key file."
		fi

		if [ "$REMOVE_KEY_FILE" -eq 1 ]
		then
			for ECHO_KEY in ${KEY_FILES}; do echo "   ${ECHO_KEY}"; done
			${ECHO} ""
			${ECHO} -n "   Would you like to back-up these key files? [n] "
			INPUT=${BACKUP_KEY_FILES}
		
			if [ -z "${INPUT}" ]
			then
				read INPUT
			else
				${ECHO} "${INPUT}"
				fi
		
			BACKUP=0
			case ${INPUT} in
					y*|Y*|j*|J*)
					BACKUP=1
					;;
			esac
	
			if [ ${REMOVE_KEY_FILE} -eq 1 ]
			then
				if [ "$BACKUP" -eq 1 ]
				then
					make_backupdir

					for KEY_DIR in ${KEY_LOCATIONS}
					do
						for ITEM in ${KEY_FILES}
						do
							if [ -f "${KEY_DIR}/${ITEM}" ]
							then
								NEWKEY="`echo ${ITEM} | cut -d'/' -f2`"
								FINDKEYCOUNT=""
		
								KEYBASENAME="`echo $NEWKEY | sed -e 's,\.key$,,'`"
								while [ -f "${BACKUPDIR}/${NEWKEY}" ]
								do
									if [ -z "${FINDKEYCOUNT}" ]
									then
										FINDKEYCOUNT=2
									else
										FINDKEYCOUNT=`expr ${FINDKEYCOUNT} + 1`
									fi
									NEWKEY="${KEYBASENAME}_${FINDKEYCOUNT}.key"
								done
		
								${ECHO} "      cp ${KEY_DIR}/${ITEM} ${BACKUPDIR}/${NEWKEY}"
								cp ${KEY_DIR}/${ITEM} ${BACKUPDIR}/${NEWKEY}
								${ECHO} -n "      -> "
								remove --file ${KEY_DIR}/${ITEM}
							fi
						done
					done
				else
					for ITEM in ${KEY_FILES}
					do
						if [ -f "${KEY_DIR}/${ITEM}" ]
						then
							${ECHO} -n "      -> "
							remove --file ${KEY_DIR}/${ITEM}
						fi
					done
				fi
			fi
		fi
	fi
}


handle_conf_file()
{
	${ECHO} " "
	${ECHO} -n "Looking for existing ${FULLPRODUCTNAME} conf files ..."
	for ITEM in ${CONF_LIST}
	do
		if [ -f "${ITEM}" ]
		then
			CONF_FOUND=`expr ${CONF_FOUND} + 1`
			CONF_FOUND_LIST="${CONF_FOUND_LIST} ${ITEM}"
		fi
	done

	if [ "${CONF_FOUND}" -eq 0 ]
	then
		${ECHO} " no conf file found"
	else
		${ECHO} " ${CONF_FOUND} conf file found"
		for ECHO_CONF in ${CONF_FOUND_LIST}; do echo "   ${ECHO_CONF}"; done
		${ECHO} ""
		${ECHO} -n "   Would you like to back-up these conf files? [n] "
		INPUT=${BACKUP_CONF_FILES}
		if [ -z "${INPUT}" ]
		then
			read INPUT
		else
			${ECHO} "${INPUT}"
		fi
	
		BACKUP=0
		case ${INPUT} in
			y*|Y*|j*|J*)
				BACKUP=1
				;;
		esac
	
		if [ "$BACKUP" -eq 1 ]
		then
			make_backupdir

			for ITEM in ${CONF_FOUND_LIST}
			do
				if [ -f "${ITEM}" ]
				then
					${ECHO} "      cp ${ITEM} ${BACKUPDIR}"
					cp ${ITEM} ${BACKUPDIR}
					${ECHO} -n "      -> "
					remove --file ${ITEM}
				fi
			done
		else
			for ITEM in ${CONF_FOUND_LIST}
			do
				if [ -f "${ITEM}" ]
				then
					${ECHO} -n "      -> "
					remove --file ${ITEM}
				fi
			done
		fi
	fi
}


handle_log_file()
{
	${ECHO} " "
	${ECHO} -n "Looking for existing ${FULLPRODUCTNAME} log files ..."
	for ITEM in ${LOG_LIST}
	do
		if [ -f "${ITEM}" ]
		then
			LOG_FOUND=`expr ${LOG_FOUND} + 1`
			LOG_FOUND_LIST="${LOG_FOUND_LIST} ${ITEM}"
		fi
	done

# 	check for custom logfiles
	for ITEM in ${PRODUCT_CONF_FILE}
	do
		if [ -f "${ITEM}" ]
		then
			CUSTOM_LOG_FILE="`grep '^LogFile' ${ITEM} | sed 's/LogFile[ \t][ \t]*//'`"
			if [ -f "${CUSTOM_LOG_FILE}" ]
			then
				LOG_FOUND_LIST="${LOG_FOUND_LIST} ${CUSTOM_LOG_FILE}"
				LOG_FOUND=`expr ${LOG_FOUND} + 1`
			fi
		fi
	done

	if [ "${LOG_FOUND}" -eq 0 ]
	then
		${ECHO} " no log file found"
	else
		${ECHO} " ${LOG_FOUND} log file found"
		for ECHO_LOG in ${LOG_FOUND_LIST}; do echo "   ${ECHO_LOG}"; done
		${ECHO} ""
		${ECHO} -n "   Would you like to back-up these log files? [n] "
		INPUT=${BACKUP_LOG_FILES}
		if [ -z "${INPUT}" ]
		then
			read INPUT
		else
			${ECHO} "${INPUT}"
		fi
	
		BACKUP=0
		case ${INPUT} in
			y*|Y*|j*|J*)
				BACKUP=1
				;;
		esac
	
		if [ "$BACKUP" -eq 1 ]
		then
			make_backupdir

			for ITEM in ${LOG_FOUND_LIST}
			do
				if [ -f "${ITEM}" ]
				then
					${ECHO} "   cp ${ITEM} ${BACKUPDIR}"
					cp ${ITEM} ${BACKUPDIR}
					${ECHO} -n "      -> "
					remove --file ${ITEM}
				fi
			done
		else
			for ITEM in ${LOG_FOUND_LIST}
			do
				if [ -f "${ITEM}" ]
				then
					${ECHO} -n "      -> "
					remove --file ${ITEM}
				fi
			done
		fi
	fi
}


handle_cronjob()
{
	if [ "${PRODUCT}" = "savapi3" ]
	then
		return 0
	fi

	${ECHO} " "
	${ECHO} -n "Looking for existing ${FULLPRODUCTNAME} cronjob ..."
	if [ -d /etc/cron.d ]
	then
		if [ -f /etc/cron.d/avira_updater ]
		then
			for ITEM in ${CRONJOB}
			do
				grep -i ${ITEM} /etc/cron.d/avira_updater > /dev/null 2>&1
				if [ $? -eq 0 ]
				then
					CRON_FOUND=`expr ${CRON_FOUND} + 1`
				fi
			done
		fi
	else
		which crontab > /dev/null 2>&1
		if [ "$?" -eq "0" ]
		then
			crontab -l > /dev/null 2>&1
			if [ "$?" -eq "0" ]
			then
				for ITEM in ${CRONJOB}
				do
					crontab -l | grep -i "${ITEM}" > $AVDIR/avira_updater
					if [ $? -eq 0 ]
					then
						CRON_FOUND=`expr ${CRON_FOUND} + 1`
					fi
				done
			fi
		fi
	fi

	if [ "${CRON_FOUND}" -eq 0 ]
	then
		${ECHO} " no cronjob found"
	else
		${ECHO} " cronjob found"
		${ECHO} -n "   Would you like to remove the cronjob? [y] "
		INPUT=${REMOVE_CRONJOB}
		if [ -z "${INPUT}" ]
		then
			read INPUT
		else
			${ECHO} "${INPUT}"
		fi
	
		REMOVE=1
		case ${INPUT} in
			n*|N*)
				REMOVE=0
				;;
		esac
	
		if [ "${REMOVE}" -eq 1 ]
		then
			if [ -d /etc/cron.d ]
			then
				if [ -f /etc/cron.d/avira_updater ]
				then
					for ITEM in ${CRONJOB}
					do
						grep -i ${ITEM} /etc/cron.d/avira_updater > /dev/null 2>&1
						if [ ${?} -eq 0 ]
						then
							${ECHO} -n "      -> remove ${ITEM} cron job ... "
							cp -f /etc/cron.d/avira_updater /etc/cron.d/avira_updater.backup

							if [ "$PRODUCT" != "all" ]
							then
								cat /etc/cron.d/avira_updater.backup | grep -iv "${ITEM}" > /etc/cron.d/avira_updater
								grep "${ITEM}" /etc/cron.d/avira_updater > /dev/null 2>&1
								if [ ${?} -ne 0 ]
								then
									${ECHO} "done"
								else
									${ECHO} "failed"
								fi
							fi
						fi
					done

					rm /etc/cron.d/avira_updater.backup
				fi
			else
				which crontab > /dev/null 2>&1
				if [ "$?" -eq "0" ]
				then
					crontab -l > /dev/null 2>&1
					if [ "$?" -eq "0" ]
					then
						for ITEM in ${CRONJOB}
						do
							${ECHO} "      -> remove ${ITEM} cron job ... "
							if [ "$PRODUCT" != "all" ]
							then
								crontab -l | grep -iv "${ITEM}" > $AVDIR/avira_updater
								crontab $AVDIR/avira_updater
								crontab -l | grep "${ITEM}" > /dev/null 2>&1
								if [ ${?} -ne 0 ]
								then
									${ECHO} "done"
								else
									${ECHO} "failed"
								fi
							fi
						done
					fi
				fi
			fi
		fi
	fi
}


handle_agent()
{
	if [ "${PRODUCT}" = "agent" -o -z "${SMC_PLUGIN}" -o ! -x ${AVDIR}/agent/agent -a ! -x ${AVDIR}/agent/smc-agent -a ! -f /etc/avira/agent.ini ]
	then
		return 0
	fi

	${ECHO} -n "uninstall AMC plugin ${SMC_PLUGIN} ... "
	if [ -f uninstall_smcplugin.sh ]
	then
		/bin/sh uninstall_smcplugin.sh ${SMC_PLUGIN} &
	
	elif [ -f ${AVDIR}/guard/uninstall_smcplugin.sh ]
	then
		/bin/sh ${AVDIR}/guard/uninstall_smcplugin.sh ${SMC_PLUGIN} &

	elif [ -f ${AVDIR}/mailgate/uninstall_smcplugin.sh ]
	then
		/bin/sh ${AVDIR}/mailgate/uninstall_smcplugin.sh ${SMC_PLUGIN} &

	elif [ -f ${AVDIR}/webgate/uninstall_smcplugin.sh ]
	then
		/bin/sh ${AVDIR}/webgate/uninstall_smcplugin.sh ${SMC_PLUGIN} &

	elif [ -f ${AVDIR}/ium/uninstall_smcplugin.sh ]
	then
		/bin/sh ${AVDIR}/ium/uninstall_smcplugin.sh ${SMC_PLUGIN} &

	elif [ -f ${AVDIR}/agent/uninstall_smcplugin.sh ]
	then
		/bin/sh ${AVDIR}/agent/uninstall_smcplugin.sh ${SMC_PLUGIN} &

	elif [ -f ${AVDIR}/uninstall_smcplugin.sh ]
	then
		/bin/sh ${AVDIR}/uninstall_smcplugin.sh ${SMC_PLUGIN} &
	
	else
		${ECHO} "no result"
		${ECHO} " "
		${ECHO} "AMC plugins will not be uninstalled"
	fi

	while [ "${PLUGIN_UNINSTALL_TIMEOUT}" -gt 0 ]
	do
		${PSAX} | grep -v grep | grep "uninstall_smcplugin.sh" > /dev/null 2>&1
		if [ "$?" -ne "0" ]
		then
			${ECHO} "done"
			return 0
		else
			sleep 1
		fi
		PLUGIN_UNINSTALL_TIMEOUT=`expr ${PLUGIN_UNINSTALL_TIMEOUT} - 1`
	done

	${ECHO} ""
	${ECHO} "WARNING: The uninstall process for ${SMC_PLUGIN} is"
	${ECHO} "still running and was not finished."
} 


handle_dazukofs()
{
	echo "${INSTALLED_PRODUCTS}" | grep -i guard > /dev/null 2>&1
	if [ "$?" -ne "0" ]
	then
		return 0
	fi

	grep -i dazukofs /etc/fstab > /dev/null 2>&1
	if [ "${?}" -ne "0" -o "${?}" -ne "0" -a ${REMOVE_DAZUKOFS} -eq "1" ]
	then
		return 0
	fi

	${ECHO} "umount dazukofs protected directories"
	DAZUKOFS_MOUNT="`cat /etc/fstab | grep -v "#" | grep dazukofs | sed 's,\ .*,,'`"
	for a in ${DAZUKOFS_MOUNT}
	do
		${ECHO} -n "umount ${a} ... "
		umount ${a} > /dev/null 2>&1
		if [ ${?} -eq "0" ]
		then
			${ECHO} "done"
		else
			${ECHO} "fail"
		fi
	done

	${ECHO} -n "remove dazukofs entries from /etc/fstab ... "
	cp /etc/fstab /etc/fstab.orig
	grep -vi dazukofs /etc/fstab.orig > /etc/fstab
	rm /etc/fstab.orig
	${ECHO} "done"
}


handle_product()
{
	if [ "${PRODUCT}" = "guard" -a -x "${AVDIR}/guard/avguard.bin" ]
	then
		NO_SAVAPI_UNINSTALL="0"
	fi

	if [ -x "$AVDIR/guard/rcscript" ]
	then
		RCSCRIPTS="$AVDIR/guard/rcscript"
	
	elif [ -x "$AVDIR/mailgate/rcscript" ]
	then
		RCSCRIPTS="$AVDIR/mailgate/rcscript"
	
	elif [ -x "$AVDIR/webgate/rcscript" ]
	then
		RCSCRIPTS="$AVDIR/webgate/rcscript"
	
	elif [ -x "$AVDIR/ium/rcscript" ]
	then
		RCSCRIPTS="$AVDIR/ium/rcscript"
	
	elif [ -x "$AVDIR/agent/rcscript" ]
	then
		RCSCRIPTS="$AVDIR/agent/rcscript"
	
	elif [ -x "$AVDIR/savapi/rcscript" ]
	then
		RCSCRIPTS="$AVDIR/savapi/rcscript"
	
	elif [ -x "$AVDIR/rcscript" ]
	then
		RCSCRIPTS="$AVDIR/rcscript"
	
	elif [ -x "$AVDIR/" ]
	then
		RCSCRIPTS=""
	
	elif [ -x "./script/rcscript" ]
	then
		RCSCRIPTS="./script/rcscript"
	fi

	if [ ! -z "${RCSCRIPTS}" ]
	then
		${ECHO} " "
		${ECHO} "Starting to remove the start/stop scripts ..."
		for ITEM in $SSS
		do
			/bin/sh ${RCSCRIPTS} remove "$SSS"
		done
	fi

	${ECHO} " "
	${ECHO} "change working directory to / ..."
	cd /

	${ECHO} " "
	${ECHO} "starting to remove listed files and directories ..."

	rm temp_dir_list.txt > /dev/null 2>&1
	touch temp_dir_list.txt > /dev/null 2>&1

	for INSTALL_FILE_LIST in $INSTALL_LIST
	do
		if [ -f "$INSTALL_FILE_LIST" ]
		then
			while read FILE_2_REMOVE
			do
				echo "$FILE_2_REMOVE" | grep FILE > /dev/null 2>&1
				if [ $? -eq 0 ]
				then
					FILE_2_REMOVE="`echo "$FILE_2_REMOVE" | sed -e 's,\,,\ ,g' | awk -F' ' '{ print $3 }'`"
					if [ -f "$FILE_2_REMOVE" -o -x "$FILE_2_REMOVE" -o -h "$FILE_2_REMOVE" ]
					then
						${ECHO} -n "      -> "
						remove --file ${FILE_2_REMOVE}
					fi
				fi

				echo "$FILE_2_REMOVE" | grep DIR > /dev/null 2>&1
				if [ $? -eq 0 ]
				then
					echo "${FILE_2_REMOVE}" >> temp_dir_list.txt
				fi
			done < $INSTALL_FILE_LIST

			if [ "$CUSTOM_PATH" -eq "1" ]
			then
				echo "DIR,root:antivir:755,$KEY_DIR,PRODUCT" >> temp_dir_list.txt
			fi

# 			fix the dir list, when there is are more then one product installed
			if [ "$DIR_FILTER_LIST" -eq "1" ]
			then
				cat temp_dir_list.txt | sed -e 's,\,\/usr\/lib\/AntiVir\,,\,DIR_DOES_REALY_REALY_NOT_XIST\,,' > temp_dir_list2.txt
				mv temp_dir_list2.txt temp_dir_list.txt

				cat temp_dir_list.txt | sed -e 's,\,\/etc\/avira\,,\,DIR_DOES_REALY_REALY_NOT_XIST\,,' > temp_dir_list2.txt
				mv temp_dir_list2.txt temp_dir_list.txt
			fi

# 			fix the dir list, when the agent is installed
			if [ "${REMOVE_AGENT_DIR}" -eq "1" ]
			then
				cat temp_dir_list.txt | sed -e 's,\,\/usr\/lib\/AntiVir\/agent\,,\,DIR_DOES_REALY_REALY_NOT_XIST\,,' > temp_dir_list2.txt
				mv temp_dir_list2.txt temp_dir_list.txt
			fi

			rm temp_dir_list2.txt > /dev/null 2>&1
			touch temp_dir_list2.txt > /dev/null 2>&1

			for LIST_ITEM in `cat ./temp_dir_list.txt`
			do
				echo ${LIST_ITEM} | awk -F',' '{ print $3 }' >> temp_dir_list2.txt
			done

			DIR_2_REMOVE_SOURCE="`cat temp_dir_list2.txt | sort -r | uniq`"
			for DIR_2_REMOVE in `echo $DIR_2_REMOVE_SOURCE`
			do
				if [ -d "$DIR_2_REMOVE" ]
				then
					if [ "${DIR_2_REMOVE}" = "/usr/lib/AntiVir" ]
					then
						CHECK_IF_EMPTY=""
						CHECK_IF_EMPTY="`ls -A $DIR_2_REMOVE`"
						if [ ! -z "${CHECK_IF_EMPTY}" ]
						then
							MAIN_NOT_EMPTY="1"
						else
							${ECHO} -n "      -> "
							remove --dir ${DIR_2_REMOVE}
						fi

					elif [ "${DIR_2_REMOVE}" = "/etc/avira" ]
					then
						CHECK_IF_EMPTY=""
						CHECK_IF_EMPTY="`ls -A $DIR_2_REMOVE`"
						if [ ! -z "${CHECK_IF_EMPTY}" ]
						then
							CONF_NOT_EMPTY="1"
						else
							${ECHO} -n "      -> "
							remove --dir ${DIR_2_REMOVE}
						fi

					else
						${ECHO} -n "      -> "
						remove --dir ${DIR_2_REMOVE}
					fi
				fi
			done
		fi
	done

	rm temp_dir_list.txt > /dev/null 2>&1
	rm temp_dir_list2.txt > /dev/null 2>&1

	for ITEM in `${ECHO} ${FILE_LIST}`
	do
		if [ -f "${ITEM}" -o -x "${ITEM}" -o -h "${ITEM}" ]
		then
			${ECHO} -n "      -> "
			remove --file ${ITEM}
		fi
	done

	for ITEM in `${ECHO} ${DIR_LIST}`
	do
		if [ -d "${ITEM}" ]
		then
			if [ "${ITEM}" = "/usr/lib/AntiVir" ]
			then
				CHECK_IF_EMPTY=""
				CHECK_IF_EMPTY="`ls -A ${ITEM}`"
				if [ ! -z "${CHECK_IF_EMPTY}" ]
				then
					MAIN_NOT_EMPTY="1"
				else
					${ECHO} -n "      -> "
					remove --dir ${ITEM}
				fi

			elif [ "${ITEM}" = "/etc/avira" ]
			then
				CHECK_IF_EMPTY=""
				CHECK_IF_EMPTY="`ls -A ${ITEM}`"
				if [ ! -z "${CHECK_IF_EMPTY}" ]
				then
					CONF_NOT_EMPTY="1"
				else
					${ECHO} -n "      -> "
					remove --dir ${ITEM}
				fi

			else
				${ECHO} -n "      -> "
				remove --dir ${ITEM}
			fi
		fi
	done

	if [ ${PRODUCT} = "mailgate" -a ${FORCE} -eq 0 -o ${PRODUCT} = "all" -a ${FORCE} -eq 0 -a -d /var/spool/avmailgate ]
	then
		${ECHO} " "
		${ECHO} -n "  Would you like to remove the rejected queue directory? [y] "
		INPUT=${REMOVE_REJECTED}
		if [ -z "${INPUT}" ]
		then
			read INPUT
		else
			${ECHO} "${INPUT}"
		fi

		if [ -z "$INPUT" ]
		then
			INPUT="y"
		fi

		REMOVE_RE=0
		case ${INPUT} in
			y*|Y*|j*|J*)
				REMOVE_RE=1
				;;
		esac
	
		if [ "$REMOVE_RE" -eq 1 ]
		then
			for ITEM in `${ECHO} ${DIR_MAILGATE_REJECTED}`
			do
				if [ -d "${ITEM}" ]
				then
					${ECHO} -n "      -> "
					remove --dir ${ITEM}
				fi
			done
		fi
	fi

	if [ ${PRODUCT} = "ium" -a ${FORCE} -eq 0 -o ${PRODUCT} = "all" -a ${FORCE} -eq 0 ]
	then
		if [ -d "/var/avira/ium/HttpRoot" ]
		then
			${ECHO} " "
			${ECHO} -n "   Would you like to remove the HttpRoot directory from ium? [y] "
			INPUT=${REMOVE_HTTPROOT}
			if [ -z "${INPUT}" ]
			then
				read INPUT
			else
				${ECHO} "${INPUT}"
			fi
	
			if [ -z "$INPUT" ]
			then
				INPUT="y"
			fi
	
			REMOVE_RE=0
			case ${INPUT} in
				y*|Y*|j*|J*)
					REMOVE_RE=1
					;;
			esac
		
			if [ "$REMOVE_RE" -eq 1 ]
			then
				for ITEM in `${ECHO} ${DIR_IUM_HTTPROOT}`
				do
					if [ -d "${ITEM}" ]
					then
						${ECHO} -n "      -> "
						remove --dir "${ITEM}"
					fi
				done

				remove --dir "/var/avira"
			fi
		else
			echo ${INSTALLED_PRODUCTS} | grep -i ium > /dev/null 2>&1
			if [ "$?" -eq "0" ]
			then
				${ECHO} " "
				${ECHO} "INFO: The default HttpRoot (/var/avira/ium/HttpRoot) does not exist."
				${ECHO} "Please remove your specified HttpRoot manually."
				if [ "${DIR_IUM_HTTPROOT_DEFAULT}" != "/var/avira/ium/HttpRoot" ]
				then
					${ECHO} "${DIR_IUM_HTTPROOT_DEFAULT}"
				fi
			fi
		fi
	fi

	if [ "${MAIN_NOT_EMPTY}" -eq "1" ]
	then
		${ECHO} " "
		${ECHO} "   INFO:"
		${ECHO} "   /usr/lib/AntiVir is not empty. The directory was not removed."
	fi

	if [ "${CONF_NOT_EMPTY}" -eq "1" ]
	then
		${ECHO} " "
		${ECHO} "   INFO:"
		${ECHO} "   /etc/avira is not empty. The directory was not removed."
	fi
}


restore_avlinfo()
{
	rm /usr/bin/avlinfo > /dev/null 2>&1

	if [ -x "$AVDIR/guard/avlinfo" ]
	then
		AVLINFO_LOCATION="$AVDIR/guard/avlinfo"

	elif [ -x "$AVDIR/agent/avlinfo" ]
	then
		AVLINFO_LOCATION="$AVDIR/agent/avlinfo"

	elif [ -x "$AVDIR/ium/avlinfo" ]
	then
		AVLINFO_LOCATION="$AVDIR/ium/avlinfo"
	
	elif [ -x "$AVDIR/avlinfo" ]
	then
		AVLINFO_LOCATION="$AVDIR/avlinfo"
	fi

	if [ ! -z "$AVLINFO_LOCATION" ]
	then
		${ECHO} " "
		${ECHO} -n "restore /usr/bin/avlinfo ... "
		ln -s $AVLINFO_LOCATION /usr/bin/avlinfo
		$ECHO "done"
	fi
}


# main ()
	if [ "${FORCE}" -eq "1" ]
	then
		${ECHO} "INFO: You are using --force. this option will remove the product"
		${ECHO} "without checking the dependencies on other products."
		${ECHO} -n "Would you like to continue? [n] "
		INPUT=${FORCE_YES}
		if [ -z "${INPUT}" ]
			then
			read INPUT
		else
			${ECHO} "${INPUT}"
		fi
	
		START_FORCE=0
		case ${INPUT} in
			y*|Y*|j*|J*)
				START_FORCE=1
				;;
		esac
		
		if [ "${START_FORCE}" -eq 0 ]
		then
			exit 0
		fi
	fi

# 	looking for running processes
	stop_running_processes

# 	uninstall smc agent from smc command center
	unregister_agent

# 	looking for existing key files in /usr/lib/AntiVir and backup them
	handle_license_file

# 	looking for the product log files and backup them before remove
	handle_log_file

# 	looking for the product conf files and backup them before remove
	handle_conf_file

# 	looking for created cronjobs and remove them
	handle_cronjob

# 	looking for installed agent + plugins and un-register the product in smc
	handle_agent

# 	looking dazukofs mountpoints in /etc/fstab
	handle_dazukofs

# 	check if the cronjob file is empty
	check_for_empty_cronjob

# 	looking for installed products
	handle_product

# 	restore avlinfo link when other products are still installed
	restore_avlinfo

	${ECHO} " "
	${ECHO} "${FULLPRODUCTNAME} successfully uninstalled"

# AVCS4F3A4200C37O030000000203000002A4010000000000000000000000000303000000650300000200P0000000000000000818D1B079B790CFFC1BADDD57FE71315D5B36A3A81056F0B248D8D13F624C154B4EF86D0DDB9A0D78A6FE5E023239711A47B84711C5F2F6F219EEA9FD31F33B8CF1A037BF31A53D7610AB3F7912348E8AF6C331DD0C96FF5C8684011277E3B2AC5D4624D113F6EDB6E2D0D2126FD477ACCB50FCBF3A4B4BCF22C537BFBECF62C48CA8CA094305249C42B573C863086E7B4F1C941FF2B34ECF329154F30D9EE3F723C1A6CD6BD1B1BB8DE4990237E7A8DF0560CEFF892054CB19B28D9E4749C2471732E604CA721333525A694D549444A4F9D2B738DCBEDBEA9E84124B3D9DCCA4AD7D88BB5D67F08042D3116C5E029508C223F2480177331B36008F01C010E4700000000000000000000000000000292030000000003T62F3AB0132FAVCSE