<?xml version="1.0" encoding="utf-8"?>
<nvi name="${{PackageId}}" title="${{title}}" version="${{version}}" versionText="${{version}}" timestamp="${{timestamp}}" disposition="demand" hidden="true" installerMin="2.1002.258.2238">
	<strings>
		<string name="PackageId" value="NvContainer"/>
		<string name="title" value="NVIDIA Container"/>
		<string name="version" value="1.10"/>
		<string name="timestamp" value="2018-03-02T08:13:27"/>
		<string name="InstallFolderName" value="NvContainer"/>
		<string name="ContainerBinaryName" value="nvcontainer.exe"/>
		<string name="RootServiceName" value="NvContainerLocalSystem"/>
		<string name="nviName" value="NvContainer.nvi"/>
		<string name="InstallLocationX86" value="${{NvidiaProgramFilesX86}}\${{InstallFolderName}}"/>
		<string name="WerKey" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting"/>
		<string name="crashDumpKey" value="${{WerKey}}\LocalDumps"/>
		<string name="serviceStopMaxTimeout" value="30000"/>
		<string name="serviceProcessUnlockTimeout" value="5000"/>
		<string name="CrashDumpFolder" value="%PROGRAMDATA%\NVIDIA Corporation\CrashDumps"/>
		<string name="WerExcludedApplicationsKey" value="${{WerKey}}\ExcludedApplications"/>
	</strings>
	<filter name="32bit" platform="x86"/>
	<filter name="64bit" platform="amd64"/>
	<filter name="minWin8.1" min="6.3"/>
	<properties>
		<bool name="FixedInstallLocation" value="true"/>
		<string name="InstallLocation" value="${{NvidiaProgramFiles}}\${{InstallFolderName}}"/>
		<bool name="Install32BitContainer" value="true"/>
		<bool name="NvContainerUnloaded" value="true"/>
		<bool name="GenerateCrashDumps" value="true"/>
	</properties>
	<manifest>
		<file name="${{nviName}}"/>
		<file name="x86\${{ContainerBinaryName}}"/>
		<file name="x86_64\${{ContainerBinaryName}}"/>
	</manifest>
	<phases>
		<if filter="minWin8.1">
			<standard phase="excludeErrorReporting" when="install" onError="ignore">
				<addRegistry keyName="${{WerExcludedApplicationsKey}}" valueName="${{ContainerBinaryName}}" type="REG_SZ" value=""/>
			</standard>
		</if>
		<exe phase="DeleteRecoveryPolicy" onError="ignore" when="install" timeout="5000" name="${{SystemDirectory}}\sc.exe" dir="${{SystemDirectory}}">
			<arg value="failure"/>
			<arg value="${{RootServiceName}}"/>
			<arg value="reset="/>
			<arg value="10"/>
			<arg value="command="/>
			<arg value=""/>
			<arg value="actions="/>
			<arg value=""/>
		</exe>
		<standard phase="stopNvContainerRootService" onError="ignore" when="install">
			<stopService name="${{RootServiceName}}" timeOut="${{serviceStopMaxTimeout}}" waitForUnlock="${{serviceProcessUnlockTimeout}}"/>
		</standard>
		<standard phase="hideContainerExecutable" onError="ignore" when="install">
			<renameFile source="${{InstallLocation}}\${{ContainerBinaryName}}" target="${{InstallLocation}}\${{ContainerBinaryName}}_"/>
		</standard>
		<if filter="64bit">
			<standard phase="hideContainerExecutable32" onError="ignore" when="install" condition="Install32BitContainer">
				<renameFile source="${{InstallLocationX86}}\${{ContainerBinaryName}}" target="${{InstallLocationX86}}\${{ContainerBinaryName}}_"/>
			</standard>
		</if>
		<exe phase="killNvContainers" name="${{SystemDirectory}}\taskkill.exe" when="install" onError="ignore">
			<arg value="/f /im ${{ContainerBinaryName}}" quote="none"/>
			<success value="0"/>
			<success value="128"/>
		</exe>
		<standard phase="deleteHiddenContainerExecutable" onError="ignore" when="install">
			<deleteFile target="${{InstallLocation}}\${{ContainerBinaryName}}_"/>
		</standard>
		<if filter="64bit">
			<standard phase="deleteHiddenContainerExecutable32" onError="ignore" when="install" condition="Install32BitContainer">
				<deleteFile target="${{InstallLocationX86}}\${{ContainerBinaryName}}_"/>
			</standard>
		</if>
		<setPropertyIf phase="checkIfNvContainerUnloaded" boolProperty="NvContainerUnloaded" value="false" when="install">
			<process name="${{ContainerBinaryName}}" check="exists"/>
		</setPropertyIf>
		<confirm phase="Confirm-NvContainerUnload" when="install">
			<propertyTrue name="NvContainerUnloaded"/>
		</confirm>
		<standard phase="deleteRegKey" onError="ignore">
			<deleteRegistryKeyTree keyName="${{crashDumpKey}}\${{ContainerBinaryName}}"/>
		</standard>
		<standard phase="createCrashDumpGenerationKeys" condition="GenerateCrashDumps">
			<addRegistry keyName="${{crashDumpKey}}\${{ContainerBinaryName}}"/>
			<addRegistry keyName="${{crashDumpKey}}\${{ContainerBinaryName}}" valueName="DumpFolder" type="REG_EXPAND_SZ" value="${{CrashDumpFolder}}"/>
			<addRegistry keyName="${{crashDumpKey}}\${{ContainerBinaryName}}" valueName="DumpCount" type="REG_DWORD" value="15"/>
			<addRegistry keyName="${{crashDumpKey}}\${{ContainerBinaryName}}" valueName="DumpType" type="REG_DWORD" value="1"/>
		</standard>
		<standard phase="createDirectories">
			<createDirectory target="${{NvidiaProgramFiles}}"/>
			<createDirectory target="${{InstallLocation}}"/>
			<createDirectory target="${{NvidiaCommonAppData}}"/>
		</standard>
		<if filter="32bit">
			<standard phase="copyFilesX86">
				<copyFile target="${{InstallLocation}}\${{ContainerBinaryName}}" source="x86\${{ContainerBinaryName}}"/>
			</standard>
		</if>
		<if filter="64bit">
			<standard phase="copyFilesX86" condition="Install32BitContainer">
				<copyFile target="${{InstallLocationX86}}\${{ContainerBinaryName}}" source="x86\${{ContainerBinaryName}}"/>
			</standard>
			<standard phase="copyFilesAMD64">
				<copyFile target="${{InstallLocation}}\${{ContainerBinaryName}}" source="x86_64\${{ContainerBinaryName}}"/>
			</standard>
		</if>
		<if filter="minWin8.1">
			<standard phase="includeErrorReporting" when="install" onError="ignore">
				<deleteRegistry keyName="${{WerExcludedApplicationsKey}}" valueName="${{ContainerBinaryName}}"/>
			</standard>
		</if>
	</phases>
</nvi>
