<?xml version="1.0" encoding="utf-8"?>
<nvi name="NvContainer.MessageBus" title="${{title}}" version="${{version}}" versionText="${{version}}" timestamp="${{timestamp}}" disposition="demand" hidden="true" installerMin="2.1002.234.2014">
	<strings>
		<string name="title" value="NVIDIA Message Bus for NvContainer"/>
		<string name="version" value="1.37"/>
		<string name="timestamp" value="2022-03-01T06:37:35"/>
		<string name="InstallFolder" value="${{NvidiaProgramFiles}}\NvContainer"/>
		<string name="PluginFolder" value="${{InstallFolder}}\plugins\LocalSystem"/>
		<string name="InstallFolderX86" value="${{NvidiaProgramFilesX86}}\NvContainer"/>
		<string name="PluginFolderx86" value="${{InstallFolderX86}}\plugins\LocalSystem"/>
		<string name="MessageBusBinaryName" value="MessageBus.dll"/>
		<string name="BroadcasterBinaryName" value="NvMessageBusBroadcast.dll"/>
		<string name="DeperecatedOpensslLib1BinaryName" value="libeay32.dll"/>
		<string name="DeperecatedOpensslLib2BinaryName" value="ssleay32.dll"/>
		<string name="MessageBusRegistryKey" value="${{NvidiaSoftwareKey}}\NvContainer\MessageBus"/>
		<string name="LogPath" value="${{NvidiaCommonAppData}}"/>
		<string name="LogFileWaitForUnlockPeriod" value="5000"/>
		<string name="pluginDeleteMaxTimeout" value="10000"/>
		<string name="ModuleMapRegistryKey" value="${{NvidiaSoftwareKey}}\NvContainer\ModuleMap"/>
	</strings>
	<filter name="32bit" platform="x86"/>
	<filter name="64bit" platform="amd64"/>
	<properties>
		<string name="FailureLogLocation" value="${{LogPath}}\*MessageBus*.log"/>
		<bool name="CollectLogsOnFailure" value="true"/>
		<bool name="Install32BitMessageBus" value="true"/>
		<bool name="MandatoryFeature" value="false"/>
	</properties>
	<dependencies>
		<package type="requires" package="NvContainer.LocalSystem"/>
	</dependencies>
	<manifest>
		<file name="NvContainerMessageBus.nvi"/>
		<file name="x86\${{MessageBusBinaryName}}"/>
		<file name="x86\${{BroadcasterBinaryName}}"/>
		<file name="x86_64\${{MessageBusBinaryName}}"/>
		<file name="x86_64\${{BroadcasterBinaryName}}"/>
	</manifest>
	<phases>
		<standard phase="deleteDeperecatedLocalSystemPlugins" when="install">
			<deleteFile target="${{PluginFolderx86}}\${{BroadcasterBinaryName}}"/>
			<deleteFile target="${{PluginFolder}}\${{BroadcasterBinaryName}}"/>
			<deleteFile target="${{PluginFolderx86}}\_${{BroadcasterBinaryName}}"/>
			<deleteFile target="${{PluginFolder}}\_${{BroadcasterBinaryName}}"/>
		</standard>
		<standard phase="deleteDeperecatedOpenSSLLibs" onError="ignore" when="install">
			<deleteFile target="${{InstallFolder}}\${{DeperecatedOpensslLib1BinaryName}}"/>
			<deleteFile target="${{InstallFolder}}\${{DeperecatedOpensslLib2BinaryName}}"/>
			<deleteFile target="${{InstallFolderX86}}\${{DeperecatedOpensslLib1BinaryName}}"/>
			<deleteFile target="${{InstallFolderX86}}\${{DeperecatedOpensslLib2BinaryName}}"/>
			<deleteRegistry keyName="${{ModuleMapRegistryKey}}" valueName="${{DeperecatedOpensslLib1BinaryName}}"/>
			<deleteRegistry keyName="${{ModuleMapRegistryKey}}" valueName="${{DeperecatedOpensslLib2BinaryName}}"/>
		</standard>
		<standard phase="setupMessageBusRegistry">
			<addRegistry keyName="${{MessageBusRegistryKey}}"/>
			<addRegistry keyName="${{MessageBusRegistryKey}}" valueName="LogPath" value="${{LogPath}}" type="REG_SZ"/>
			<addRegistry keyName="${{MessageBusRegistryKey}}" valueName="LogLevel" value="4" type="REG_DWORD"/>
			<addRegistry keyName="${{MessageBusRegistryKey}}" valueName="InstallPath" value="${{InstallFolder}}" type="REG_SZ"/>
		</standard>
		<standard phase="setupMessageBusDependencies">
			<addRegistry keyName="${{ModuleMapRegistryKey}}"/>
			<addRegistry keyName="${{ModuleMapRegistryKey}}" valueName="${{MessageBusBinaryName}}" value="${{InstallFolder}}\${{MessageBusBinaryName}}" type="REG_SZ"/>
		</standard>
		<standard phase="deleteAppData" onError="ignore" when="uninstall">
			<deleteFile target="${{LogPath}}\MessageBusBroadcast.log*" waitForUnlock="${{LogFileWaitForUnlockPeriod}}"/>
			<deleteFile target="${{LogPath}}\MessageBus_*.log" waitForUnlock="${{LogFileWaitForUnlockPeriod}}"/>
			<deleteFile target="${{LogPath}}\NvMessageBusBroadcastPlugin.log*" waitForUnlock="${{LogFileWaitForUnlockPeriod}}"/>
		</standard>
		<if filter="32bit">
			<standard phase="copyFilesX86">
				<copyFile target="${{InstallFolder}}\${{MessageBusBinaryName}}" source="x86\${{MessageBusBinaryName}}"/>
			</standard>
			<standard phase="copyBroadcasterX86Mandatory" condition="MandatoryFeature">
				<copyFile target="${{PluginFolder}}\${{BroadcasterBinaryName}}" source="x86\${{BroadcasterBinaryName}}"/>
			</standard>
			<standard phase="copyBroadcasterX86Optional" condition="!MandatoryFeature">
				<copyFile target="${{PluginFolder}}\_${{BroadcasterBinaryName}}" source="x86\${{BroadcasterBinaryName}}"/>
			</standard>
		</if>
		<if filter="64bit">
			<standard phase="copyFilesAMD64">
				<copyFile target="${{InstallFolder}}\${{MessageBusBinaryName}}" source="x86_64\${{MessageBusBinaryName}}"/>
			</standard>
			<standard phase="copyBroadcasterAMD64Mandatory" condition="MandatoryFeature">
				<copyFile target="${{PluginFolder}}\${{BroadcasterBinaryName}}" source="x86_64\${{BroadcasterBinaryName}}"/>
			</standard>
			<standard phase="copyBroadcasterAMD64Optional" condition="!MandatoryFeature">
				<copyFile target="${{PluginFolder}}\_${{BroadcasterBinaryName}}" source="x86_64\${{BroadcasterBinaryName}}"/>
			</standard>
			<standard phase="copyFilesX86OnAMD64" platform="x86" condition="Install32BitMessageBus">
				<copyFile target="${{InstallFolderX86}}\${{MessageBusBinaryName}}" source="x86\${{MessageBusBinaryName}}"/>
			</standard>
			<standard phase="setupMessageBusRegistryX86onAMD64" platform="x86">
				<addRegistry keyName="${{MessageBusRegistryKey}}"/>
				<addRegistry keyName="${{MessageBusRegistryKey}}" valueName="LogPath" value="${{LogPath}}" type="REG_SZ"/>
				<addRegistry keyName="${{MessageBusRegistryKey}}" valueName="LogLevel" value="4" type="REG_DWORD"/>
				<addRegistry keyName="${{MessageBusRegistryKey}}" valueName="InstallPath" value="${{InstallFolderX86}}" type="REG_SZ"/>
			</standard>
			<standard phase="setupMessageBusDependenciesX86onAMD64" platform="x86">
				<addRegistry keyName="${{ModuleMapRegistryKey}}"/>
				<addRegistry keyName="${{ModuleMapRegistryKey}}" valueName="${{MessageBusBinaryName}}" value="${{InstallFolderX86}}\${{MessageBusBinaryName}}" type="REG_SZ"/>
			</standard>
		</if>
		<standard phase="deleteBroadcasterMandatory" condition="MandatoryFeature" when="uninstall">
			<renameFile source="${{PluginFolder}}\${{BroadcasterBinaryName}}" target="${{PluginFolder}}\${{BroadcasterBinaryName}}_"/>
			<deleteFile target="${{PluginFolder}}\${{BroadcasterBinaryName}}_" waitForUnlock="${{pluginDeleteMaxTimeout}}"/>
		</standard>
		<standard phase="deleteBroadcasterOptional" condition="!MandatoryFeature" when="uninstall">
			<renameFile source="${{PluginFolder}}\_${{BroadcasterBinaryName}}" target="${{PluginFolder}}\_${{BroadcasterBinaryName}}_"/>
			<deleteFile target="${{PluginFolder}}\_${{BroadcasterBinaryName}}_" waitForUnlock="${{pluginDeleteMaxTimeout}}"/>
		</standard>
	</phases>
</nvi>
