Shader "Hidden/HxVolumetricProjector" {
	Properties {
	}
	SubShader {
		Pass {
			Blend One One, One One
			ZTest Always
			ZWrite Off
			Cull Front
			Fog {
				Mode Off
			}
			GpuProgramID 23973
			Program "vp" {
				SubProgram "d3d11 " {
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform VGlobals {
						vec4 unused_0_0[352];
						mat4x4 VolumetricMVP;
						vec4 unused_0_2[20];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					vec4 u_xlat0;
					float u_xlat1;
					void main()
					{
					    u_xlat0 = in_POSITION0.yyyy * VolumetricMVP[1];
					    u_xlat0 = VolumetricMVP[0] * in_POSITION0.xxxx + u_xlat0;
					    u_xlat0 = VolumetricMVP[2] * in_POSITION0.zzzz + u_xlat0;
					    u_xlat0 = VolumetricMVP[3] * in_POSITION0.wwww + u_xlat0;
					    u_xlat0.z = min(u_xlat0.z, _ProjectionParams.z);
					    gl_Position = u_xlat0;
					    vs_TEXCOORD0.zw = u_xlat0.zw;
					    u_xlat1 = u_xlat0.y * _ProjectionParams.x;
					    u_xlat0.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat0.w = u_xlat1 * 0.5;
					    vs_TEXCOORD0.xy = u_xlat0.zz + u_xlat0.xw;
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform UnityPerCamera {
						vec4 unused_0_0[4];
						vec4 _ProjectionParams;
						vec4 unused_0_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_1_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_2_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_2_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_2_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					int u_xlati6;
					void main()
					{
					    u_xlat0 = in_POSITION0.yyyy * unity_ObjectToWorld[1];
					    u_xlat0 = unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
					    u_xlat0 = unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
					    u_xlat0 = u_xlat0 + unity_ObjectToWorld[3];
					    u_xlati1 = unity_StereoEyeIndex << 2;
					    u_xlat2 = u_xlat0.yyyy * unity_StereoMatrixVP[(u_xlati1 + 1) / 4][(u_xlati1 + 1) % 4];
					    u_xlat2 = unity_StereoMatrixVP[u_xlati1 / 4][u_xlati1 % 4] * u_xlat0.xxxx + u_xlat2;
					    u_xlat2 = unity_StereoMatrixVP[(u_xlati1 + 2) / 4][(u_xlati1 + 2) % 4] * u_xlat0.zzzz + u_xlat2;
					    u_xlat0 = unity_StereoMatrixVP[(u_xlati1 + 3) / 4][(u_xlati1 + 3) % 4] * u_xlat0.wwww + u_xlat2;
					    u_xlat0.z = min(u_xlat0.z, _ProjectionParams.z);
					    gl_Position = u_xlat0;
					    vs_TEXCOORD0.zw = u_xlat0.zw;
					    u_xlat0.y = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.xzw = u_xlat0.xwy * vec3(0.5, 0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati6 = unity_StereoEyeIndex;
					    u_xlat1.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati6].zw;
					    vs_TEXCOORD0.xy = u_xlat0.xy * unity_StereoScaleOffset[u_xlati6].xy + u_xlat1.xy;
					    return;
					}"
				}
			}
			Program "fp" {
				SubProgram "d3d11 " {
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform PGlobals {
						vec4 unused_0_0[14];
						vec4 Phase;
						vec4 unused_0_2;
						vec4 Density;
						vec4 unused_0_4;
						mat4x4 hxVolumeMatrixOld[10];
						vec4 unused_0_6[36];
						vec2 hxVolumeSettingsOld[10];
						vec4 unused_0_8[263];
						float OrthoLight;
						vec4 unused_0_10;
						mat4x4 hxCameraToWorld;
						vec4 unused_0_12[4];
						float hxNearPlane;
						vec4 _SpotLightParams;
						float hxRayOffset;
						vec3 LightColour;
						vec3 LightColour2;
						float TintPercent;
						vec4 unused_0_19;
						vec4 _LightParams;
						vec4 _CustomLightPosition;
						float HxTileSize;
						mat4x4 InverseProjectionMatrix;
						vec4 unused_0_24[20];
						float VolumeScale;
						vec4 unused_0_26[5];
						vec3 TopFrustumNormal;
						vec3 BottomFrustumNormal;
						vec3 LeftFrustumNormal;
						vec3 RightFrustumNormal;
						vec3 UpFrustumOffset;
						vec3 RightFrustumOffset;
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec3 _WorldSpaceCameraPos;
						vec4 _ProjectionParams;
						vec4 _ScreenParams;
						vec4 unused_1_4[2];
					};
					layout(std140) uniform UnityPerDraw {
						vec4 unused_2_0[4];
						mat4x4 unity_WorldToObject;
						vec4 unused_2_2[3];
					};
					uniform  sampler2D VolumetricDepth;
					uniform  sampler2D Tile5x5;
					uniform  sampler2D _FalloffTex;
					uniform  sampler2D _ShadowTex;
					in  vec4 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_Target0;
					vec2 u_xlat0;
					vec4 u_xlat1;
					vec4 u_xlat2;
					bool u_xlatb2;
					vec4 u_xlat3;
					vec3 u_xlat4;
					bool u_xlatb4;
					vec4 u_xlat5;
					vec4 u_xlat6;
					vec4 u_xlat7;
					vec3 u_xlat8;
					vec3 u_xlat9;
					vec3 u_xlat10;
					vec4 u_xlat11;
					vec3 u_xlat12;
					vec4 u_xlat13;
					bvec4 u_xlatb13;
					bvec4 u_xlatb14;
					bvec3 u_xlatb15;
					float u_xlat16;
					vec3 u_xlat18;
					bool u_xlatb18;
					float u_xlat19;
					vec3 u_xlat20;
					bool u_xlatb20;
					float u_xlat22;
					vec2 u_xlat23;
					vec2 u_xlat24;
					vec2 u_xlat32;
					bvec2 u_xlatb32;
					bool u_xlatb34;
					float u_xlat35;
					bool u_xlatb36;
					float u_xlat38;
					vec2 u_xlat42;
					float u_xlat48;
					float u_xlat49;
					int u_xlati49;
					bool u_xlatb49;
					float u_xlat50;
					float u_xlat51;
					bool u_xlatb51;
					float u_xlat52;
					int u_xlati52;
					bool u_xlatb52;
					float u_xlat53;
					int u_xlati53;
					bool u_xlatb53;
					float u_xlat54;
					bool u_xlatb54;
					float u_xlat55;
					int u_xlati55;
					bool u_xlatb55;
					float u_xlat56;
					bool u_xlatb56;
					float u_xlat57;
					float u_xlat59;
					float u_xlat60;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = textureLod(VolumetricDepth, u_xlat0.xy, 0.0);
					    u_xlat32.x = dot(u_xlat1.xy, vec2(1.0, 0.00392156886));
					    u_xlat1.xy = (-u_xlat1.zw) + vec2(1.0, 1.0);
					    u_xlat1.xy = u_xlat1.xy * vec2(2.0, 2.0) + vec2(-1.0, -1.0);
					    u_xlat2 = u_xlat1.yyyy * InverseProjectionMatrix[1];
					    u_xlat1 = InverseProjectionMatrix[0] * u_xlat1.xxxx + u_xlat2;
					    u_xlat1 = u_xlat1 + InverseProjectionMatrix[2];
					    u_xlat1 = u_xlat1 + InverseProjectionMatrix[3];
					    u_xlat1.xyz = u_xlat1.xyz / u_xlat1.www;
					    u_xlat48 = _ProjectionParams.z / u_xlat1.z;
					    u_xlat1.xyz = vec3(u_xlat48) * (-u_xlat1.xyz);
					    u_xlat1.xyz = u_xlat32.xxx * u_xlat1.xyz;
					    u_xlat2.xyz = u_xlat1.yyy * hxCameraToWorld[1].xyz;
					    u_xlat1.xyw = hxCameraToWorld[0].xyz * u_xlat1.xxx + u_xlat2.xyz;
					    u_xlat1.xyz = hxCameraToWorld[2].xyz * u_xlat1.zzz + u_xlat1.xyw;
					    u_xlat1.xyz = u_xlat1.xyz + hxCameraToWorld[3].xyz;
					    u_xlat1.xyz = u_xlat1.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat32.x = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlat48 = inversesqrt(u_xlat32.x);
					    u_xlat1.xyz = vec3(u_xlat48) * u_xlat1.xyz;
					    u_xlat32.x = sqrt(u_xlat32.x);
					    u_xlat32.x = u_xlat32.x + -0.0500000007;
					    u_xlat48 = dot(_SpotLightParams.xyz, u_xlat1.xyz);
					    u_xlat2.xyz = _SpotLightParams.xyz * _LightParams.zzz + _CustomLightPosition.xyz;
					    u_xlat2.xyz = u_xlat2.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat49 = dot(u_xlat2.xyz, _SpotLightParams.xyz);
					    u_xlat2.x = dot(BottomFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat18.xyz = _CustomLightPosition.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat3.xyz = u_xlat18.xyz + (-UpFrustumOffset.xyz);
					    u_xlat3.x = dot(u_xlat3.xyz, BottomFrustumNormal.xyz);
					    u_xlat19 = dot(LeftFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat4.xyz = u_xlat18.xyz + (-RightFrustumOffset.xyz);
					    u_xlat35 = dot(u_xlat4.xyz, LeftFrustumNormal.xyz);
					    u_xlat51 = dot((-_SpotLightParams.xyz), u_xlat1.xyz);
					    u_xlat4.xyz = _SpotLightParams.xyz * vec3(hxNearPlane) + _CustomLightPosition.xyz;
					    u_xlat5.xyz = u_xlat4.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat52 = dot(u_xlat5.xyz, (-_SpotLightParams.xyz));
					    u_xlat53 = dot(TopFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat6.xyz = u_xlat18.xyz + UpFrustumOffset.xyz;
					    u_xlat6.x = dot(u_xlat6.xyz, TopFrustumNormal.xyz);
					    u_xlat22 = dot(RightFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat18.xyz = u_xlat18.xyz + RightFrustumOffset.xyz;
					    u_xlat18.x = dot(u_xlat18.xyz, RightFrustumNormal.xyz);
					    u_xlatb34 = 0.0<u_xlat51;
					    u_xlat50 = u_xlat52 / u_xlat51;
					    u_xlat23.y = min(u_xlat50, 100000.0);
					    u_xlatb52 = u_xlat51<0.0;
					    u_xlat38 = max(u_xlat50, 0.0);
					    u_xlat24.x = u_xlatb52 ? u_xlat38 : float(0.0);
					    u_xlat23.x = 0.0;
					    u_xlat24.y = 100000.0;
					    u_xlat7.yz = (bool(u_xlatb34)) ? u_xlat23.xy : u_xlat24.xy;
					    u_xlatb34 = 0.0<u_xlat53;
					    u_xlat52 = u_xlat6.x / u_xlat53;
					    u_xlat7.w = min(u_xlat52, u_xlat7.z);
					    u_xlatb53 = u_xlat53<0.0;
					    u_xlat52 = max(u_xlat52, u_xlat7.y);
					    u_xlat7.x = (u_xlatb53) ? u_xlat52 : u_xlat7.y;
					    u_xlat7.yz = (bool(u_xlatb34)) ? u_xlat7.yw : u_xlat7.xz;
					    u_xlatb34 = 0.0<u_xlat22;
					    u_xlat18.x = u_xlat18.x / u_xlat22;
					    u_xlat7.w = min(u_xlat18.x, u_xlat7.z);
					    u_xlatb52 = u_xlat22<0.0;
					    u_xlat18.x = max(u_xlat18.x, u_xlat7.y);
					    u_xlat7.x = (u_xlatb52) ? u_xlat18.x : u_xlat7.y;
					    u_xlat6.yz = (bool(u_xlatb34)) ? u_xlat7.yw : u_xlat7.xz;
					    u_xlatb18 = 0.0<u_xlat48;
					    u_xlat49 = u_xlat49 / u_xlat48;
					    u_xlat6.w = min(u_xlat49, u_xlat6.z);
					    u_xlatb34 = u_xlat48<0.0;
					    u_xlat49 = max(u_xlat49, u_xlat6.y);
					    u_xlat6.x = (u_xlatb34) ? u_xlat49 : u_xlat6.y;
					    u_xlat6.yz = (bool(u_xlatb18)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlatb49 = 0.0<u_xlat2.x;
					    u_xlat18.x = u_xlat3.x / u_xlat2.x;
					    u_xlat6.w = min(u_xlat18.x, u_xlat6.z);
					    u_xlatb2 = u_xlat2.x<0.0;
					    u_xlat18.x = max(u_xlat18.x, u_xlat6.y);
					    u_xlat6.x = (u_xlatb2) ? u_xlat18.x : u_xlat6.y;
					    u_xlat6.yz = (bool(u_xlatb49)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlatb49 = 0.0<u_xlat19;
					    u_xlat2.x = u_xlat35 / u_xlat19;
					    u_xlat6.w = min(u_xlat2.x, u_xlat6.z);
					    u_xlatb18 = u_xlat19<0.0;
					    u_xlat2.x = max(u_xlat2.x, u_xlat6.y);
					    u_xlat6.x = (u_xlatb18) ? u_xlat2.x : u_xlat6.y;
					    u_xlat2.xy = (bool(u_xlatb49)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlat32.x = min(u_xlat32.x, u_xlat2.y);
					    u_xlatb49 = u_xlat2.x>=u_xlat32.x;
					    if(((int(u_xlatb49) * int(0xffffffffu)))!=0){discard;}
					    u_xlat2.xyz = u_xlat1.xyz * u_xlat2.xxx + _WorldSpaceCameraPos.xyz;
					    u_xlat3.xyz = u_xlat1.xyz * u_xlat32.xxx + _WorldSpaceCameraPos.xyz;
					    u_xlat6.xyz = (-u_xlat4.xyz) + u_xlat2.xyz;
					    u_xlat32.x = dot(u_xlat6.xyz, _SpotLightParams.xyz);
					    u_xlat4.xyz = (-u_xlat4.xyz) + u_xlat3.xyz;
					    u_xlat49 = dot(u_xlat4.xyz, _SpotLightParams.xyz);
					    u_xlatb4 = 0.0>=u_xlat32.x;
					    u_xlatb20 = 0.0>=u_xlat49;
					    u_xlatb36 = u_xlatb20 && u_xlatb4;
					    if(((int(u_xlatb36) * int(0xffffffffu)))!=0){discard;}
					    u_xlatb32.x = 0.0<u_xlat32.x;
					    u_xlatb32.x = u_xlatb20 && u_xlatb32.x;
					    u_xlatb51 = 9.99999997e-07<u_xlat51;
					    u_xlat20.xyz = u_xlat1.xyz * vec3(u_xlat50) + _WorldSpaceCameraPos.xyz;
					    u_xlat20.xyz = (bool(u_xlatb51)) ? u_xlat20.xyz : u_xlat3.xyz;
					    u_xlat3.xyz = (u_xlatb32.x) ? u_xlat20.xyz : u_xlat3.xyz;
					    u_xlatb32.x = 0.0<u_xlat49;
					    u_xlatb32.x = u_xlatb32.x && u_xlatb4;
					    u_xlatb49 = 9.99999997e-07<u_xlat48;
					    u_xlat50 = dot(u_xlat5.xyz, _SpotLightParams.xyz);
					    u_xlat48 = u_xlat50 / u_xlat48;
					    u_xlat1.xyz = u_xlat1.xyz * vec3(u_xlat48) + _WorldSpaceCameraPos.xyz;
					    u_xlat1.xyz = (bool(u_xlatb49)) ? u_xlat1.xyz : u_xlat2.xyz;
					    u_xlat1.xyz = (u_xlatb32.x) ? u_xlat1.xyz : u_xlat2.xyz;
					    u_xlat32.xy = vec2(VolumeScale) * _ScreenParams.xy;
					    u_xlat0.xy = u_xlat0.xy * u_xlat32.xy;
					    u_xlat0.xy = u_xlat0.xy / vec2(HxTileSize);
					    u_xlatb32.xy = greaterThanEqual(u_xlat0.xyxy, (-u_xlat0.xyxy)).xy;
					    u_xlat0.xy = fract(abs(u_xlat0.xy));
					    {
					        vec2 hlslcc_movcTemp = u_xlat0;
					        hlslcc_movcTemp.x = (u_xlatb32.x) ? u_xlat0.x : (-u_xlat0.x);
					        hlslcc_movcTemp.y = (u_xlatb32.y) ? u_xlat0.y : (-u_xlat0.y);
					        u_xlat0 = hlslcc_movcTemp;
					    }
					    u_xlat0.xy = u_xlat0.xy * vec2(HxTileSize);
					    u_xlat2.xyz = u_xlat1.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat32.x = dot(u_xlat2.xyz, u_xlat2.xyz);
					    u_xlat32.x = sqrt(u_xlat32.x);
					    u_xlat2.xyz = (-u_xlat1.xyz) + u_xlat3.xyz;
					    u_xlat48 = min(Density.y, 128.0);
					    u_xlati49 = int(u_xlat48);
					    u_xlat50 = dot(u_xlat2.xyz, u_xlat2.xyz);
					    u_xlat51 = inversesqrt(u_xlat50);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(u_xlat51);
					    u_xlat50 = sqrt(u_xlat50);
					    u_xlat48 = trunc(u_xlat48);
					    u_xlat50 = u_xlat50 / u_xlat48;
					    u_xlat4.xyz = vec3(u_xlat50) * u_xlat2.xyz;
					    u_xlat5.xyz = u_xlat1.xyz + (-_CustomLightPosition.xyz);
					    u_xlat6.xyz = u_xlat5.yyy * unity_WorldToObject[1].xyz;
					    u_xlat5.xyw = unity_WorldToObject[0].xyz * u_xlat5.xxx + u_xlat6.xyz;
					    u_xlat5.xyz = unity_WorldToObject[2].xyz * u_xlat5.zzz + u_xlat5.xyw;
					    u_xlat3.xyz = u_xlat3.xyz + (-_CustomLightPosition.xyz);
					    u_xlat6.xyz = u_xlat3.yyy * unity_WorldToObject[1].xyz;
					    u_xlat3.xyw = unity_WorldToObject[0].xyz * u_xlat3.xxx + u_xlat6.xyz;
					    u_xlat3.xyz = unity_WorldToObject[2].xyz * u_xlat3.zzz + u_xlat3.xyw;
					    u_xlat3.xyz = (-u_xlat5.xyz) + u_xlat3.xyz;
					    u_xlat51 = dot(u_xlat3.xyz, u_xlat3.xyz);
					    u_xlat52 = sqrt(u_xlat51);
					    u_xlat48 = u_xlat52 / u_xlat48;
					    u_xlat51 = inversesqrt(u_xlat51);
					    u_xlat3.xyz = vec3(u_xlat51) * u_xlat3.xyz;
					    u_xlat6.xyz = vec3(u_xlat48) * u_xlat3.xyz;
					    u_xlat0.xy = u_xlat0.xy / vec2(HxTileSize);
					    u_xlat7 = textureLod(Tile5x5, u_xlat0.xy, 0.0);
					    u_xlat0.x = u_xlat7.x + hxRayOffset;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat5.xyz = u_xlat6.xyz * u_xlat0.xxx + u_xlat5.xyz;
					    u_xlat1.xyz = u_xlat4.xyz * u_xlat0.xxx + u_xlat1.xyz;
					    u_xlat0.x = u_xlat32.x * Density.x;
					    u_xlat0.x = u_xlat0.x * Density.w;
					    u_xlat16 = u_xlat50 * Density.w;
					    u_xlat32.x = _LightParams.z * _LightParams.z;
					    u_xlat32.x = float(1.0) / u_xlat32.x;
					    u_xlat4.xyz = vec3(LightColour.x, LightColour.y, LightColour.z) + (-LightColour2.xyz);
					    u_xlat6.z = 0.0;
					    u_xlat7.x = float(0.0);
					    u_xlat7.y = float(0.0);
					    u_xlat7.z = float(0.0);
					    u_xlat8.xyz = u_xlat5.xyz;
					    u_xlat9.xyz = u_xlat1.xyz;
					    u_xlat51 = u_xlat0.x;
					    for(int u_xlati_loop_1 = 0 ; u_xlati_loop_1<u_xlati49 ; u_xlati_loop_1++)
					    {
					        u_xlat53 = u_xlat8.z * 0.5;
					        u_xlat53 = float(1.0) / u_xlat53;
					        u_xlat10.xy = u_xlat8.xy * vec2(u_xlat53);
					        u_xlat42.xy = u_xlat10.xy * vec2(0.5, 0.5);
					        u_xlat10.xy = u_xlat10.xy * vec2(0.5, 0.5) + vec2(0.5, 0.5);
					        u_xlat11.xyz = u_xlat9.xyz + (-_CustomLightPosition.xyz);
					        u_xlat12.x = Density.x;
					        u_xlat12.y = float(0.0);
					        u_xlat12.z = float(0.0);
					        u_xlati53 = 0;
					        while(true){
					            u_xlatb54 = floatBitsToInt(u_xlat12.z)>=10;
					            u_xlati53 = 0;
					            if(u_xlatb54){break;}
					            u_xlatb54 = -1.0==hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					            if(u_xlatb54){
					                u_xlat12.xy = u_xlat12.xx;
					                u_xlati53 = int(0xFFFFFFFFu);
					                break;
					            }
					            u_xlati55 = floatBitsToInt(u_xlat12.z) << 2;
					            u_xlat13.xyz = u_xlat9.yyy * hxVolumeMatrixOld[(u_xlati55 + 1) / 4][(u_xlati55 + 1) % 4].xyz;
					            u_xlat13.xyz = hxVolumeMatrixOld[u_xlati55 / 4][u_xlati55 % 4].xyz * u_xlat9.xxx + u_xlat13.xyz;
					            u_xlat13.xyz = hxVolumeMatrixOld[(u_xlati55 + 2) / 4][(u_xlati55 + 2) % 4].xyz * u_xlat9.zzz + u_xlat13.xyz;
					            u_xlat13.xyz = u_xlat13.xyz + hxVolumeMatrixOld[(u_xlati55 + 3) / 4][(u_xlati55 + 3) % 4].xyz;
					            u_xlatb14.xyz = lessThan(vec4(-0.5, -0.5, -0.5, 0.0), u_xlat13.xyzx).xyz;
					            u_xlatb15.xyz = lessThan(u_xlat13.xyzx, vec4(0.5, 0.5, 0.5, 0.0)).xyz;
					            u_xlatb55 = u_xlatb14.x && u_xlatb15.x;
					            u_xlatb55 = u_xlatb14.y && u_xlatb55;
					            u_xlatb55 = u_xlatb15.y && u_xlatb55;
					            u_xlatb55 = u_xlatb14.z && u_xlatb55;
					            u_xlatb55 = u_xlatb15.z && u_xlatb55;
					            if(u_xlatb55){
					                u_xlatb55 = 3.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                if(u_xlatb55){
					                    u_xlat55 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlat56 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                    u_xlat57 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlatb14 = equal(vec4(0.0, 1.0, 2.0, 3.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                    u_xlat59 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlat59 = (u_xlatb14.w) ? u_xlat59 : u_xlat12.x;
					                    u_xlat57 = (u_xlatb14.z) ? u_xlat57 : u_xlat59;
					                    u_xlat56 = (u_xlatb14.y) ? u_xlat56 : u_xlat57;
					                    u_xlat6.x = (u_xlatb14.x) ? u_xlat55 : u_xlat56;
					                } else {
					                    u_xlatb55 = 7.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                    u_xlat56 = dot(u_xlat13.xyz, u_xlat13.xyz);
					                    u_xlat56 = sqrt(u_xlat56);
					                    u_xlatb56 = u_xlat56<0.5;
					                    u_xlatb55 = u_xlatb55 && u_xlatb56;
					                    if(u_xlatb55){
					                        u_xlat55 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat56 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                        u_xlat57 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlatb14 = equal(vec4(4.0, 5.0, 6.0, 7.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                        u_xlat59 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat59 = (u_xlatb14.w) ? u_xlat59 : u_xlat12.x;
					                        u_xlat57 = (u_xlatb14.z) ? u_xlat57 : u_xlat59;
					                        u_xlat56 = (u_xlatb14.y) ? u_xlat56 : u_xlat57;
					                        u_xlat6.x = (u_xlatb14.x) ? u_xlat55 : u_xlat56;
					                    } else {
					                        u_xlatb55 = 11.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                        u_xlat56 = dot(u_xlat13.xz, u_xlat13.xz);
					                        u_xlat56 = sqrt(u_xlat56);
					                        u_xlatb56 = u_xlat56<0.5;
					                        u_xlatb55 = u_xlatb55 && u_xlatb56;
					                        u_xlat56 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat57 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                        u_xlat59 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlatb13 = equal(vec4(8.0, 9.0, 10.0, 11.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                        u_xlat60 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat60 = (u_xlatb13.w) ? u_xlat60 : u_xlat12.x;
					                        u_xlat59 = (u_xlatb13.z) ? u_xlat59 : u_xlat60;
					                        u_xlat57 = (u_xlatb13.y) ? u_xlat57 : u_xlat59;
					                        u_xlat56 = (u_xlatb13.x) ? u_xlat56 : u_xlat57;
					                        u_xlat6.x = (u_xlatb55) ? u_xlat56 : u_xlat12.x;
					                    }
					                }
					            } else {
					                u_xlat6.x = u_xlat12.x;
					            }
					            u_xlat6.y = intBitsToFloat(floatBitsToInt(u_xlat12.z) + 1);
					            u_xlat12.xyz = u_xlat6.xzy;
					            u_xlatb53 = u_xlatb54;
					        }
					        u_xlat6.x = (u_xlati53 != 0) ? u_xlat12.y : u_xlat12.x;
					        u_xlat22 = dot(u_xlat11.xyz, u_xlat11.xyz);
					        u_xlat54 = inversesqrt(u_xlat22);
					        u_xlat11.xyz = vec3(u_xlat54) * u_xlat11.xyz;
					        u_xlat54 = dot(u_xlat11.xyz, (-u_xlat2.xyz));
					        u_xlat54 = (-Phase.w) * u_xlat54 + Phase.z;
					        u_xlat54 = log2(u_xlat54);
					        u_xlat54 = u_xlat54 * 1.5;
					        u_xlat54 = exp2(u_xlat54);
					        u_xlat54 = Phase.y / u_xlat54;
					        u_xlat54 = u_xlat54 * Phase.x;
					        u_xlat55 = u_xlat32.x * u_xlat22;
					        u_xlat11 = textureLod(_FalloffTex, vec2(u_xlat55), 0.0);
					        u_xlat11.xy = u_xlat8.xy + vec2(0.5, 0.5);
					        u_xlat11.xy = (-u_xlat10.xy) + u_xlat11.xy;
					        u_xlat10.xy = vec2(OrthoLight) * u_xlat11.xy + u_xlat10.xy;
					        u_xlat13 = textureLod(_ShadowTex, u_xlat10.xy, 0.0);
					        u_xlat55 = u_xlat11.w * u_xlat13.w;
					        u_xlat22 = (-u_xlat22) * u_xlat32.x + 1.0;
					        u_xlat56 = dot(u_xlat42.xy, u_xlat42.xy);
					        u_xlat56 = sqrt(u_xlat56);
					        u_xlat56 = (-u_xlat56) * 2.0 + 1.0;
					        u_xlat22 = min(u_xlat22, u_xlat56);
					        u_xlat22 = u_xlat22 * TintPercent;
					        u_xlat22 = u_xlat22 * 0.5;
					        u_xlat22 = clamp(u_xlat22, 0.0, 1.0);
					        u_xlat10.xyz = vec3(u_xlat22) * u_xlat4.xyz + LightColour2.xyz;
					        u_xlat10.xyz = u_xlat10.xyz * u_xlat13.xyz;
					        u_xlat22 = u_xlat54 * u_xlat55;
					        u_xlat54 = u_xlat51 * -1.44269502;
					        u_xlat54 = exp2(u_xlat54);
					        u_xlat22 = u_xlat54 * u_xlat22;
					        u_xlat22 = u_xlat6.x * u_xlat22;
					        u_xlat22 = u_xlat50 * u_xlat22;
					        u_xlat22 = max(u_xlat22, 0.0);
					        u_xlat7.xyz = u_xlat10.xyz * vec3(u_xlat22) + u_xlat7.xyz;
					        u_xlat51 = u_xlat16 * u_xlat6.x + u_xlat51;
					        u_xlat8.xyz = u_xlat3.xyz * vec3(u_xlat48) + u_xlat8.xyz;
					        u_xlat9.xyz = u_xlat2.xyz * vec3(u_xlat50) + u_xlat9.xyz;
					    }
					    SV_Target0.xyz = u_xlat7.xyz;
					    SV_Target0.w = 0.0;
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform PGlobals {
						vec4 unused_0_0[14];
						vec4 Phase;
						vec4 unused_0_2;
						vec4 Density;
						vec4 unused_0_4;
						mat4x4 hxVolumeMatrixOld[10];
						vec4 unused_0_6[36];
						vec2 hxVolumeSettingsOld[10];
						vec4 unused_0_8[263];
						float OrthoLight;
						vec4 unused_0_10;
						mat4x4 hxCameraToWorld;
						mat4x4 hxCameraToWorld2;
						float hxNearPlane;
						vec4 _SpotLightParams;
						float hxRayOffset;
						vec3 LightColour;
						vec3 LightColour2;
						float TintPercent;
						vec4 unused_0_19;
						vec4 _LightParams;
						vec4 _CustomLightPosition;
						float HxTileSize;
						mat4x4 InverseProjectionMatrix;
						mat4x4 InverseProjectionMatrix2;
						vec4 unused_0_25[16];
						float VolumeScale;
						vec4 unused_0_27[5];
						vec3 TopFrustumNormal;
						vec3 BottomFrustumNormal;
						vec3 LeftFrustumNormal;
						vec3 RightFrustumNormal;
						vec3 UpFrustumOffset;
						vec3 RightFrustumOffset;
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 _ScreenParams;
						vec4 unused_1_3[2];
					};
					layout(std140) uniform UnityPerDraw {
						vec4 unused_2_0[4];
						mat4x4 unity_WorldToObject;
						vec4 unused_2_2[3];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[64];
						vec3 unity_StereoWorldSpaceCameraPos[2];
						vec4 unused_3_2[3];
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					uniform  sampler2D VolumetricDepth;
					uniform  sampler2D Tile5x5;
					uniform  sampler2D _FalloffTex;
					uniform  sampler2D _ShadowTex;
					in  vec4 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_Target0;
					vec2 u_xlat0;
					vec4 u_xlat1;
					bvec2 u_xlatb1;
					vec4 u_xlat2;
					bool u_xlatb2;
					vec4 u_xlat3;
					bool u_xlatb3;
					vec4 u_xlat4;
					vec4 u_xlat5;
					vec4 u_xlat6;
					bool u_xlatb6;
					vec4 u_xlat7;
					vec4 u_xlat8;
					vec3 u_xlat9;
					vec3 u_xlat10;
					vec4 u_xlat11;
					vec3 u_xlat12;
					vec4 u_xlat13;
					bvec4 u_xlatb13;
					bvec4 u_xlatb14;
					bvec3 u_xlatb15;
					float u_xlat16;
					float u_xlat18;
					bool u_xlatb18;
					bool u_xlatb19;
					vec3 u_xlat20;
					bool u_xlatb20;
					vec3 u_xlat22;
					vec2 u_xlat23;
					vec2 u_xlat24;
					float u_xlat32;
					int u_xlati32;
					float u_xlat33;
					float u_xlat34;
					bool u_xlatb34;
					float u_xlat35;
					bool u_xlatb36;
					float u_xlat38;
					vec2 u_xlat42;
					float u_xlat48;
					bool u_xlatb48;
					float u_xlat49;
					int u_xlati49;
					float u_xlat50;
					float u_xlat51;
					float u_xlat52;
					int u_xlati52;
					bool u_xlatb52;
					float u_xlat53;
					int u_xlati53;
					bool u_xlatb53;
					float u_xlat54;
					bool u_xlatb54;
					float u_xlat55;
					int u_xlati55;
					bool u_xlatb55;
					float u_xlat56;
					bool u_xlatb56;
					float u_xlat57;
					float u_xlat59;
					float u_xlat60;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = textureLod(VolumetricDepth, u_xlat0.xy, 0.0).xwyz;
					    u_xlat32 = dot(u_xlat1.xz, vec2(1.0, 0.00392156886));
					    u_xlatb48 = 0.5<u_xlat1.w;
					    u_xlat33 = u_xlat1.w + u_xlat1.w;
					    u_xlat1.x = fract(u_xlat33);
					    u_xlat1.xy = (-u_xlat1.xy) + vec2(1.0, 1.0);
					    u_xlat1.xy = u_xlat1.xy * vec2(2.0, 2.0) + vec2(-1.0, -1.0);
					    u_xlat2.xyz = (bool(u_xlatb48)) ? InverseProjectionMatrix2[0].xyz : InverseProjectionMatrix[0].xyz;
					    u_xlat3.xyz = (bool(u_xlatb48)) ? InverseProjectionMatrix2[1].xyz : InverseProjectionMatrix[1].xyz;
					    u_xlat4.xyz = (bool(u_xlatb48)) ? InverseProjectionMatrix2[2].xyz : InverseProjectionMatrix[2].xyz;
					    u_xlat5.xyw = (bool(u_xlatb48)) ? InverseProjectionMatrix2[3].xyz : InverseProjectionMatrix[3].xyz;
					    u_xlat6.x = (u_xlatb48) ? InverseProjectionMatrix2[0].w : InverseProjectionMatrix[0].w;
					    u_xlat6.y = (u_xlatb48) ? InverseProjectionMatrix2[1].w : InverseProjectionMatrix[1].w;
					    u_xlat6.z = (u_xlatb48) ? InverseProjectionMatrix2[2].w : InverseProjectionMatrix[2].w;
					    u_xlat6.w = (u_xlatb48) ? InverseProjectionMatrix2[3].w : InverseProjectionMatrix[3].w;
					    u_xlat7.x = u_xlat2.x;
					    u_xlat7.y = u_xlat3.x;
					    u_xlat7.z = u_xlat4.x;
					    u_xlat7.w = u_xlat5.x;
					    u_xlat1.z = float(1.0);
					    u_xlat1.w = float(1.0);
					    u_xlat7.x = dot(u_xlat7, u_xlat1);
					    u_xlat8.x = u_xlat2.y;
					    u_xlat8.y = u_xlat3.y;
					    u_xlat8.z = u_xlat4.y;
					    u_xlat8.w = u_xlat5.y;
					    u_xlat7.y = dot(u_xlat8, u_xlat1);
					    u_xlat5.x = u_xlat2.z;
					    u_xlat5.y = u_xlat3.z;
					    u_xlat5.z = u_xlat4.z;
					    u_xlat7.z = dot(u_xlat5, u_xlat1);
					    u_xlat1.x = dot(u_xlat6, u_xlat1);
					    u_xlat1.xyz = u_xlat7.xyz / u_xlat1.xxx;
					    u_xlat2.xy = (bool(u_xlatb48)) ? hxCameraToWorld[0].xy : hxCameraToWorld2[0].xy;
					    u_xlat2.zw = (bool(u_xlatb48)) ? hxCameraToWorld[1].xy : hxCameraToWorld2[1].xy;
					    u_xlat3.xy = (bool(u_xlatb48)) ? hxCameraToWorld[2].xy : hxCameraToWorld2[2].xy;
					    u_xlat4.xw = (bool(u_xlatb48)) ? hxCameraToWorld[3].xy : hxCameraToWorld2[3].xy;
					    u_xlat5.x = (u_xlatb48) ? hxCameraToWorld[0].z : hxCameraToWorld2[0].z;
					    u_xlat5.y = (u_xlatb48) ? hxCameraToWorld[1].z : hxCameraToWorld2[1].z;
					    u_xlat5.z = (u_xlatb48) ? hxCameraToWorld[2].z : hxCameraToWorld2[2].z;
					    u_xlat5.w = (u_xlatb48) ? hxCameraToWorld[3].z : hxCameraToWorld2[3].z;
					    u_xlat48 = _ProjectionParams.z / u_xlat1.z;
					    u_xlat1.xyz = vec3(u_xlat48) * (-u_xlat1.xyz);
					    u_xlat1.xyz = vec3(u_xlat32) * u_xlat1.xyz;
					    u_xlat6.xy = u_xlat2.xz;
					    u_xlat6.z = u_xlat3.x;
					    u_xlat6.w = u_xlat4.x;
					    u_xlat1.w = 1.0;
					    u_xlat6.x = dot(u_xlat6, u_xlat1);
					    u_xlat4.xy = u_xlat2.yw;
					    u_xlat4.z = u_xlat3.y;
					    u_xlat6.y = dot(u_xlat4, u_xlat1);
					    u_xlat6.z = dot(u_xlat5, u_xlat1);
					    u_xlati32 = unity_StereoEyeIndex;
					    u_xlat1.xyz = u_xlat6.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat48 = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlat49 = inversesqrt(u_xlat48);
					    u_xlat1.xyz = vec3(u_xlat49) * u_xlat1.xyz;
					    u_xlat48 = sqrt(u_xlat48);
					    u_xlat48 = u_xlat48 + -0.0500000007;
					    u_xlat49 = dot(_SpotLightParams.xyz, u_xlat1.xyz);
					    u_xlat2.xyz = _SpotLightParams.xyz * _LightParams.zzz + _CustomLightPosition.xyz;
					    u_xlat2.xyz = u_xlat2.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat2.x = dot(u_xlat2.xyz, _SpotLightParams.xyz);
					    u_xlat18 = dot(BottomFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat3.xyz = _CustomLightPosition.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat4.xyz = u_xlat3.xyz + (-UpFrustumOffset.xyz);
					    u_xlat34 = dot(u_xlat4.xyz, BottomFrustumNormal.xyz);
					    u_xlat50 = dot(LeftFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat4.xyz = u_xlat3.xyz + (-RightFrustumOffset.xyz);
					    u_xlat51 = dot(u_xlat4.xyz, LeftFrustumNormal.xyz);
					    u_xlat4.x = dot((-_SpotLightParams.xyz), u_xlat1.xyz);
					    u_xlat20.xyz = _SpotLightParams.xyz * vec3(hxNearPlane) + _CustomLightPosition.xyz;
					    u_xlat5.xyz = u_xlat20.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat53 = dot(u_xlat5.xyz, (-_SpotLightParams.xyz));
					    u_xlat6.x = dot(TopFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat22.xyz = u_xlat3.xyz + UpFrustumOffset.xyz;
					    u_xlat22.x = dot(u_xlat22.xyz, TopFrustumNormal.xyz);
					    u_xlat38 = dot(RightFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat3.xyz = u_xlat3.xyz + RightFrustumOffset.xyz;
					    u_xlat3.x = dot(u_xlat3.xyz, RightFrustumNormal.xyz);
					    u_xlatb19 = 0.0<u_xlat4.x;
					    u_xlat35 = u_xlat53 / u_xlat4.x;
					    u_xlat23.y = min(u_xlat35, 100000.0);
					    u_xlatb53 = u_xlat4.x<0.0;
					    u_xlat54 = max(u_xlat35, 0.0);
					    u_xlat24.x = u_xlatb53 ? u_xlat54 : float(0.0);
					    u_xlat23.x = 0.0;
					    u_xlat24.y = 100000.0;
					    u_xlat7.yz = (bool(u_xlatb19)) ? u_xlat23.xy : u_xlat24.xy;
					    u_xlatb19 = 0.0<u_xlat6.x;
					    u_xlat53 = u_xlat22.x / u_xlat6.x;
					    u_xlat7.w = min(u_xlat53, u_xlat7.z);
					    u_xlatb6 = u_xlat6.x<0.0;
					    u_xlat53 = max(u_xlat53, u_xlat7.y);
					    u_xlat7.x = (u_xlatb6) ? u_xlat53 : u_xlat7.y;
					    u_xlat7.yz = (bool(u_xlatb19)) ? u_xlat7.yw : u_xlat7.xz;
					    u_xlatb19 = 0.0<u_xlat38;
					    u_xlat3.x = u_xlat3.x / u_xlat38;
					    u_xlat7.w = min(u_xlat3.x, u_xlat7.z);
					    u_xlatb53 = u_xlat38<0.0;
					    u_xlat3.x = max(u_xlat3.x, u_xlat7.y);
					    u_xlat7.x = (u_xlatb53) ? u_xlat3.x : u_xlat7.y;
					    u_xlat6.yz = (bool(u_xlatb19)) ? u_xlat7.yw : u_xlat7.xz;
					    u_xlatb3 = 0.0<u_xlat49;
					    u_xlat2.x = u_xlat2.x / u_xlat49;
					    u_xlat6.w = min(u_xlat2.x, u_xlat6.z);
					    u_xlatb19 = u_xlat49<0.0;
					    u_xlat2.x = max(u_xlat2.x, u_xlat6.y);
					    u_xlat6.x = (u_xlatb19) ? u_xlat2.x : u_xlat6.y;
					    u_xlat6.yz = (bool(u_xlatb3)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlatb2 = 0.0<u_xlat18;
					    u_xlat34 = u_xlat34 / u_xlat18;
					    u_xlat6.w = min(u_xlat34, u_xlat6.z);
					    u_xlatb18 = u_xlat18<0.0;
					    u_xlat34 = max(u_xlat34, u_xlat6.y);
					    u_xlat6.x = (u_xlatb18) ? u_xlat34 : u_xlat6.y;
					    u_xlat6.yz = (bool(u_xlatb2)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlatb2 = 0.0<u_xlat50;
					    u_xlat18 = u_xlat51 / u_xlat50;
					    u_xlat6.w = min(u_xlat18, u_xlat6.z);
					    u_xlatb34 = u_xlat50<0.0;
					    u_xlat18 = max(u_xlat18, u_xlat6.y);
					    u_xlat6.x = (u_xlatb34) ? u_xlat18 : u_xlat6.y;
					    u_xlat2.xy = (bool(u_xlatb2)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlat48 = min(u_xlat48, u_xlat2.y);
					    u_xlatb18 = u_xlat2.x>=u_xlat48;
					    if(((int(u_xlatb18) * int(0xffffffffu)))!=0){discard;}
					    u_xlat2.xyz = u_xlat1.xyz * u_xlat2.xxx + unity_StereoWorldSpaceCameraPos[u_xlati32].xyz;
					    u_xlat3.xyw = u_xlat1.xyz * vec3(u_xlat48) + unity_StereoWorldSpaceCameraPos[u_xlati32].xyz;
					    u_xlat6.xyz = (-u_xlat20.xyz) + u_xlat2.xyz;
					    u_xlat48 = dot(u_xlat6.xyz, _SpotLightParams.xyz);
					    u_xlat20.xyz = (-u_xlat20.xyz) + u_xlat3.xyw;
					    u_xlat50 = dot(u_xlat20.xyz, _SpotLightParams.xyz);
					    u_xlatb20 = 0.0>=u_xlat48;
					    u_xlatb36 = 0.0>=u_xlat50;
					    u_xlatb52 = u_xlatb36 && u_xlatb20;
					    if(((int(u_xlatb52) * int(0xffffffffu)))!=0){discard;}
					    u_xlatb48 = 0.0<u_xlat48;
					    u_xlatb48 = u_xlatb36 && u_xlatb48;
					    if(u_xlatb48){
					        u_xlatb48 = 9.99999997e-07<u_xlat4.x;
					        if(u_xlatb48){
					            u_xlat3.xyw = u_xlat1.xyz * vec3(u_xlat35) + unity_StereoWorldSpaceCameraPos[u_xlati32].xyz;
					        }
					    }
					    u_xlatb48 = 0.0<u_xlat50;
					    u_xlatb48 = u_xlatb48 && u_xlatb20;
					    if(u_xlatb48){
					        u_xlatb48 = 9.99999997e-07<u_xlat49;
					        if(u_xlatb48){
					            u_xlat48 = dot(u_xlat5.xyz, _SpotLightParams.xyz);
					            u_xlat48 = u_xlat48 / u_xlat49;
					            u_xlat2.xyz = u_xlat1.xyz * vec3(u_xlat48) + unity_StereoWorldSpaceCameraPos[u_xlati32].xyz;
					        }
					    }
					    u_xlat1.xy = vec2(VolumeScale) * _ScreenParams.xy;
					    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
					    u_xlat0.xy = u_xlat0.xy / vec2(HxTileSize);
					    u_xlatb1.xy = greaterThanEqual(u_xlat0.xyxx, (-u_xlat0.xyxx)).xy;
					    u_xlat0.xy = fract(abs(u_xlat0.xy));
					    {
					        vec2 hlslcc_movcTemp = u_xlat0;
					        hlslcc_movcTemp.x = (u_xlatb1.x) ? u_xlat0.x : (-u_xlat0.x);
					        hlslcc_movcTemp.y = (u_xlatb1.y) ? u_xlat0.y : (-u_xlat0.y);
					        u_xlat0 = hlslcc_movcTemp;
					    }
					    u_xlat0.xy = u_xlat0.xy * vec2(HxTileSize);
					    u_xlat1.xyz = u_xlat2.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat32 = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlat32 = sqrt(u_xlat32);
					    u_xlat1.xyz = (-u_xlat2.xyz) + u_xlat3.xyw;
					    u_xlat48 = min(Density.y, 128.0);
					    u_xlati49 = int(u_xlat48);
					    u_xlat50 = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlat35 = inversesqrt(u_xlat50);
					    u_xlat1.xyz = u_xlat1.xyz * vec3(u_xlat35);
					    u_xlat50 = sqrt(u_xlat50);
					    u_xlat48 = trunc(u_xlat48);
					    u_xlat50 = u_xlat50 / u_xlat48;
					    u_xlat4.xyz = u_xlat1.xyz * vec3(u_xlat50);
					    u_xlat5.xyz = u_xlat2.xyz + (-_CustomLightPosition.xyz);
					    u_xlat6.xyz = u_xlat5.yyy * unity_WorldToObject[1].xyz;
					    u_xlat5.xyw = unity_WorldToObject[0].xyz * u_xlat5.xxx + u_xlat6.xyz;
					    u_xlat5.xyz = unity_WorldToObject[2].xyz * u_xlat5.zzz + u_xlat5.xyw;
					    u_xlat3.xyz = u_xlat3.xyw + (-_CustomLightPosition.xyz);
					    u_xlat6.xyz = u_xlat3.yyy * unity_WorldToObject[1].xyz;
					    u_xlat3.xyw = unity_WorldToObject[0].xyz * u_xlat3.xxx + u_xlat6.xyz;
					    u_xlat3.xyz = unity_WorldToObject[2].xyz * u_xlat3.zzz + u_xlat3.xyw;
					    u_xlat3.xyz = (-u_xlat5.xyz) + u_xlat3.xyz;
					    u_xlat51 = dot(u_xlat3.xyz, u_xlat3.xyz);
					    u_xlat52 = sqrt(u_xlat51);
					    u_xlat48 = u_xlat52 / u_xlat48;
					    u_xlat51 = inversesqrt(u_xlat51);
					    u_xlat3.xyz = vec3(u_xlat51) * u_xlat3.xyz;
					    u_xlat6.xyz = vec3(u_xlat48) * u_xlat3.xyz;
					    u_xlat0.xy = u_xlat0.xy / vec2(HxTileSize);
					    u_xlat7 = textureLod(Tile5x5, u_xlat0.xy, 0.0);
					    u_xlat0.x = u_xlat7.x + hxRayOffset;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat5.xyz = u_xlat6.xyz * u_xlat0.xxx + u_xlat5.xyz;
					    u_xlat2.xyz = u_xlat4.xyz * u_xlat0.xxx + u_xlat2.xyz;
					    u_xlat0.x = u_xlat32 * Density.x;
					    u_xlat0.x = u_xlat0.x * Density.w;
					    u_xlat16 = u_xlat50 * Density.w;
					    u_xlat32 = _LightParams.z * _LightParams.z;
					    u_xlat32 = float(1.0) / u_xlat32;
					    u_xlat4.xyz = vec3(LightColour.x, LightColour.y, LightColour.z) + (-LightColour2.xyz);
					    u_xlat6.z = 0.0;
					    u_xlat7.x = float(0.0);
					    u_xlat7.y = float(0.0);
					    u_xlat7.z = float(0.0);
					    u_xlat8.xyz = u_xlat5.xyz;
					    u_xlat9.xyz = u_xlat2.xyz;
					    u_xlat51 = u_xlat0.x;
					    for(int u_xlati_loop_1 = 0 ; u_xlati_loop_1<u_xlati49 ; u_xlati_loop_1++)
					    {
					        u_xlat53 = u_xlat8.z * 0.5;
					        u_xlat53 = float(1.0) / u_xlat53;
					        u_xlat10.xy = u_xlat8.xy * vec2(u_xlat53);
					        u_xlat42.xy = u_xlat10.xy * vec2(0.5, 0.5);
					        u_xlat10.xy = u_xlat10.xy * vec2(0.5, 0.5) + vec2(0.5, 0.5);
					        u_xlat11.xyz = u_xlat9.xyz + (-_CustomLightPosition.xyz);
					        u_xlat12.x = Density.x;
					        u_xlat12.y = float(0.0);
					        u_xlat12.z = float(0.0);
					        u_xlati53 = 0;
					        while(true){
					            u_xlatb54 = floatBitsToInt(u_xlat12.z)>=10;
					            u_xlati53 = 0;
					            if(u_xlatb54){break;}
					            u_xlatb54 = -1.0==hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					            if(u_xlatb54){
					                u_xlat12.xy = u_xlat12.xx;
					                u_xlati53 = int(0xFFFFFFFFu);
					                break;
					            }
					            u_xlati55 = floatBitsToInt(u_xlat12.z) << 2;
					            u_xlat13.xyz = u_xlat9.yyy * hxVolumeMatrixOld[(u_xlati55 + 1) / 4][(u_xlati55 + 1) % 4].xyz;
					            u_xlat13.xyz = hxVolumeMatrixOld[u_xlati55 / 4][u_xlati55 % 4].xyz * u_xlat9.xxx + u_xlat13.xyz;
					            u_xlat13.xyz = hxVolumeMatrixOld[(u_xlati55 + 2) / 4][(u_xlati55 + 2) % 4].xyz * u_xlat9.zzz + u_xlat13.xyz;
					            u_xlat13.xyz = u_xlat13.xyz + hxVolumeMatrixOld[(u_xlati55 + 3) / 4][(u_xlati55 + 3) % 4].xyz;
					            u_xlatb14.xyz = lessThan(vec4(-0.5, -0.5, -0.5, 0.0), u_xlat13.xyzx).xyz;
					            u_xlatb15.xyz = lessThan(u_xlat13.xyzx, vec4(0.5, 0.5, 0.5, 0.0)).xyz;
					            u_xlatb55 = u_xlatb14.x && u_xlatb15.x;
					            u_xlatb55 = u_xlatb14.y && u_xlatb55;
					            u_xlatb55 = u_xlatb15.y && u_xlatb55;
					            u_xlatb55 = u_xlatb14.z && u_xlatb55;
					            u_xlatb55 = u_xlatb15.z && u_xlatb55;
					            if(u_xlatb55){
					                u_xlatb55 = 3.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                if(u_xlatb55){
					                    u_xlat55 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlat56 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                    u_xlat57 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlatb14 = equal(vec4(0.0, 1.0, 2.0, 3.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                    u_xlat59 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlat59 = (u_xlatb14.w) ? u_xlat59 : u_xlat12.x;
					                    u_xlat57 = (u_xlatb14.z) ? u_xlat57 : u_xlat59;
					                    u_xlat56 = (u_xlatb14.y) ? u_xlat56 : u_xlat57;
					                    u_xlat6.x = (u_xlatb14.x) ? u_xlat55 : u_xlat56;
					                } else {
					                    u_xlatb55 = 7.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                    u_xlat56 = dot(u_xlat13.xyz, u_xlat13.xyz);
					                    u_xlat56 = sqrt(u_xlat56);
					                    u_xlatb56 = u_xlat56<0.5;
					                    u_xlatb55 = u_xlatb55 && u_xlatb56;
					                    if(u_xlatb55){
					                        u_xlat55 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat56 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                        u_xlat57 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlatb14 = equal(vec4(4.0, 5.0, 6.0, 7.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                        u_xlat59 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat59 = (u_xlatb14.w) ? u_xlat59 : u_xlat12.x;
					                        u_xlat57 = (u_xlatb14.z) ? u_xlat57 : u_xlat59;
					                        u_xlat56 = (u_xlatb14.y) ? u_xlat56 : u_xlat57;
					                        u_xlat6.x = (u_xlatb14.x) ? u_xlat55 : u_xlat56;
					                    } else {
					                        u_xlatb55 = 11.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                        u_xlat56 = dot(u_xlat13.xz, u_xlat13.xz);
					                        u_xlat56 = sqrt(u_xlat56);
					                        u_xlatb56 = u_xlat56<0.5;
					                        u_xlatb55 = u_xlatb55 && u_xlatb56;
					                        u_xlat56 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat57 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                        u_xlat59 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlatb13 = equal(vec4(8.0, 9.0, 10.0, 11.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                        u_xlat60 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat60 = (u_xlatb13.w) ? u_xlat60 : u_xlat12.x;
					                        u_xlat59 = (u_xlatb13.z) ? u_xlat59 : u_xlat60;
					                        u_xlat57 = (u_xlatb13.y) ? u_xlat57 : u_xlat59;
					                        u_xlat56 = (u_xlatb13.x) ? u_xlat56 : u_xlat57;
					                        u_xlat6.x = (u_xlatb55) ? u_xlat56 : u_xlat12.x;
					                    }
					                }
					            } else {
					                u_xlat6.x = u_xlat12.x;
					            }
					            u_xlat6.y = intBitsToFloat(floatBitsToInt(u_xlat12.z) + 1);
					            u_xlat12.xyz = u_xlat6.xzy;
					            u_xlatb53 = u_xlatb54;
					        }
					        u_xlat6.x = (u_xlati53 != 0) ? u_xlat12.y : u_xlat12.x;
					        u_xlat22.x = dot(u_xlat11.xyz, u_xlat11.xyz);
					        u_xlat54 = inversesqrt(u_xlat22.x);
					        u_xlat11.xyz = vec3(u_xlat54) * u_xlat11.xyz;
					        u_xlat54 = dot(u_xlat11.xyz, (-u_xlat1.xyz));
					        u_xlat54 = (-Phase.w) * u_xlat54 + Phase.z;
					        u_xlat54 = log2(u_xlat54);
					        u_xlat54 = u_xlat54 * 1.5;
					        u_xlat54 = exp2(u_xlat54);
					        u_xlat54 = Phase.y / u_xlat54;
					        u_xlat54 = u_xlat54 * Phase.x;
					        u_xlat55 = u_xlat32 * u_xlat22.x;
					        u_xlat11 = textureLod(_FalloffTex, vec2(u_xlat55), 0.0);
					        u_xlat11.xy = u_xlat8.xy + vec2(0.5, 0.5);
					        u_xlat11.xy = (-u_xlat10.xy) + u_xlat11.xy;
					        u_xlat10.xy = vec2(OrthoLight) * u_xlat11.xy + u_xlat10.xy;
					        u_xlat13 = textureLod(_ShadowTex, u_xlat10.xy, 0.0);
					        u_xlat55 = u_xlat11.w * u_xlat13.w;
					        u_xlat22.x = (-u_xlat22.x) * u_xlat32 + 1.0;
					        u_xlat56 = dot(u_xlat42.xy, u_xlat42.xy);
					        u_xlat56 = sqrt(u_xlat56);
					        u_xlat56 = (-u_xlat56) * 2.0 + 1.0;
					        u_xlat22.x = min(u_xlat22.x, u_xlat56);
					        u_xlat22.x = u_xlat22.x * TintPercent;
					        u_xlat22.x = u_xlat22.x * 0.5;
					        u_xlat22.x = clamp(u_xlat22.x, 0.0, 1.0);
					        u_xlat10.xyz = u_xlat22.xxx * u_xlat4.xyz + LightColour2.xyz;
					        u_xlat10.xyz = u_xlat10.xyz * u_xlat13.xyz;
					        u_xlat22.x = u_xlat54 * u_xlat55;
					        u_xlat54 = u_xlat51 * -1.44269502;
					        u_xlat54 = exp2(u_xlat54);
					        u_xlat22.x = u_xlat54 * u_xlat22.x;
					        u_xlat22.x = u_xlat6.x * u_xlat22.x;
					        u_xlat22.x = u_xlat50 * u_xlat22.x;
					        u_xlat22.x = max(u_xlat22.x, 0.0);
					        u_xlat7.xyz = u_xlat10.xyz * u_xlat22.xxx + u_xlat7.xyz;
					        u_xlat51 = u_xlat16 * u_xlat6.x + u_xlat51;
					        u_xlat8.xyz = u_xlat3.xyz * vec3(u_xlat48) + u_xlat8.xyz;
					        u_xlat9.xyz = u_xlat1.xyz * vec3(u_xlat50) + u_xlat9.xyz;
					    }
					    SV_Target0.xyz = u_xlat7.xyz;
					    SV_Target0.w = 0.0;
					    return;
					}"
				}
			}
		}
		Pass {
			Blend One One, One One
			ZWrite Off
			Fog {
				Mode Off
			}
			GpuProgramID 109823
			Program "vp" {
				SubProgram "d3d11 " {
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform VGlobals {
						vec4 unused_0_0[352];
						mat4x4 VolumetricMVP;
						vec4 unused_0_2[20];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					void main()
					{
					    u_xlat0 = in_POSITION0.yyyy * VolumetricMVP[1];
					    u_xlat0 = VolumetricMVP[0] * in_POSITION0.xxxx + u_xlat0;
					    u_xlat0 = VolumetricMVP[2] * in_POSITION0.zzzz + u_xlat0;
					    u_xlat0 = VolumetricMVP[3] * in_POSITION0.wwww + u_xlat0;
					    gl_Position = u_xlat0;
					    u_xlat0.y = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.xzw = u_xlat0.xwy * vec3(0.5, 0.5, 0.5);
					    vs_TEXCOORD0.zw = u_xlat0.zw;
					    vs_TEXCOORD0.xy = u_xlat1.zz + u_xlat1.xw;
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform UnityPerCamera {
						vec4 unused_0_0[4];
						vec4 _ProjectionParams;
						vec4 unused_0_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_1_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_2_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_2_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_2_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					vec2 u_xlat4;
					void main()
					{
					    u_xlat0 = in_POSITION0.yyyy * unity_ObjectToWorld[1];
					    u_xlat0 = unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
					    u_xlat0 = unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
					    u_xlat0 = u_xlat0 + unity_ObjectToWorld[3];
					    u_xlati1 = unity_StereoEyeIndex << 2;
					    u_xlat2 = u_xlat0.yyyy * unity_StereoMatrixVP[(u_xlati1 + 1) / 4][(u_xlati1 + 1) % 4];
					    u_xlat2 = unity_StereoMatrixVP[u_xlati1 / 4][u_xlati1 % 4] * u_xlat0.xxxx + u_xlat2;
					    u_xlat2 = unity_StereoMatrixVP[(u_xlati1 + 2) / 4][(u_xlati1 + 2) % 4] * u_xlat0.zzzz + u_xlat2;
					    u_xlat0 = unity_StereoMatrixVP[(u_xlati1 + 3) / 4][(u_xlati1 + 3) % 4] * u_xlat0.wwww + u_xlat2;
					    gl_Position = u_xlat0;
					    u_xlat0.y = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.xzw = u_xlat0.xwy * vec3(0.5, 0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati1 = unity_StereoEyeIndex;
					    u_xlat4.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati1].zw;
					    vs_TEXCOORD0.xy = u_xlat0.xy * unity_StereoScaleOffset[u_xlati1].xy + u_xlat4.xy;
					    vs_TEXCOORD0.zw = u_xlat0.zw;
					    return;
					}"
				}
			}
			Program "fp" {
				SubProgram "d3d11 " {
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform PGlobals {
						vec4 unused_0_0[14];
						vec4 Phase;
						vec4 unused_0_2;
						vec4 Density;
						vec4 unused_0_4;
						mat4x4 hxVolumeMatrixOld[10];
						vec4 unused_0_6[36];
						vec2 hxVolumeSettingsOld[10];
						vec4 unused_0_8[263];
						float OrthoLight;
						vec4 unused_0_10;
						mat4x4 hxCameraToWorld;
						vec4 unused_0_12[4];
						float hxNearPlane;
						vec4 _SpotLightParams;
						float hxRayOffset;
						vec3 LightColour;
						vec3 LightColour2;
						float TintPercent;
						vec4 unused_0_19;
						vec4 _LightParams;
						vec4 _CustomLightPosition;
						float HxTileSize;
						mat4x4 InverseProjectionMatrix;
						vec4 unused_0_24[20];
						float VolumeScale;
						vec4 unused_0_26[5];
						vec3 TopFrustumNormal;
						vec3 BottomFrustumNormal;
						vec3 LeftFrustumNormal;
						vec3 RightFrustumNormal;
						vec3 UpFrustumOffset;
						vec3 RightFrustumOffset;
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec3 _WorldSpaceCameraPos;
						vec4 _ProjectionParams;
						vec4 _ScreenParams;
						vec4 unused_1_4[2];
					};
					layout(std140) uniform UnityPerDraw {
						vec4 unused_2_0[4];
						mat4x4 unity_WorldToObject;
						vec4 unused_2_2[3];
					};
					uniform  sampler2D VolumetricDepth;
					uniform  sampler2D Tile5x5;
					uniform  sampler2D _FalloffTex;
					uniform  sampler2D _ShadowTex;
					in  vec4 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_Target0;
					vec2 u_xlat0;
					vec4 u_xlat1;
					vec4 u_xlat2;
					bool u_xlatb2;
					vec4 u_xlat3;
					vec3 u_xlat4;
					bool u_xlatb4;
					vec4 u_xlat5;
					vec4 u_xlat6;
					vec4 u_xlat7;
					vec3 u_xlat8;
					vec3 u_xlat9;
					vec3 u_xlat10;
					vec4 u_xlat11;
					vec3 u_xlat12;
					vec4 u_xlat13;
					bvec4 u_xlatb13;
					bvec4 u_xlatb14;
					bvec3 u_xlatb15;
					float u_xlat16;
					vec3 u_xlat18;
					bool u_xlatb18;
					float u_xlat19;
					vec3 u_xlat20;
					bool u_xlatb20;
					float u_xlat22;
					vec2 u_xlat23;
					vec2 u_xlat24;
					vec2 u_xlat32;
					bvec2 u_xlatb32;
					bool u_xlatb34;
					float u_xlat35;
					bool u_xlatb36;
					float u_xlat38;
					vec2 u_xlat42;
					float u_xlat48;
					float u_xlat49;
					int u_xlati49;
					bool u_xlatb49;
					float u_xlat50;
					float u_xlat51;
					bool u_xlatb51;
					float u_xlat52;
					int u_xlati52;
					bool u_xlatb52;
					float u_xlat53;
					int u_xlati53;
					bool u_xlatb53;
					float u_xlat54;
					bool u_xlatb54;
					float u_xlat55;
					int u_xlati55;
					bool u_xlatb55;
					float u_xlat56;
					bool u_xlatb56;
					float u_xlat57;
					float u_xlat59;
					float u_xlat60;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = textureLod(VolumetricDepth, u_xlat0.xy, 0.0);
					    u_xlat32.x = dot(u_xlat1.xy, vec2(1.0, 0.00392156886));
					    u_xlat1.xy = (-u_xlat1.zw) + vec2(1.0, 1.0);
					    u_xlat1.xy = u_xlat1.xy * vec2(2.0, 2.0) + vec2(-1.0, -1.0);
					    u_xlat2 = u_xlat1.yyyy * InverseProjectionMatrix[1];
					    u_xlat1 = InverseProjectionMatrix[0] * u_xlat1.xxxx + u_xlat2;
					    u_xlat1 = u_xlat1 + InverseProjectionMatrix[2];
					    u_xlat1 = u_xlat1 + InverseProjectionMatrix[3];
					    u_xlat1.xyz = u_xlat1.xyz / u_xlat1.www;
					    u_xlat48 = _ProjectionParams.z / u_xlat1.z;
					    u_xlat1.xyz = vec3(u_xlat48) * (-u_xlat1.xyz);
					    u_xlat1.xyz = u_xlat32.xxx * u_xlat1.xyz;
					    u_xlat2.xyz = u_xlat1.yyy * hxCameraToWorld[1].xyz;
					    u_xlat1.xyw = hxCameraToWorld[0].xyz * u_xlat1.xxx + u_xlat2.xyz;
					    u_xlat1.xyz = hxCameraToWorld[2].xyz * u_xlat1.zzz + u_xlat1.xyw;
					    u_xlat1.xyz = u_xlat1.xyz + hxCameraToWorld[3].xyz;
					    u_xlat1.xyz = u_xlat1.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat32.x = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlat48 = inversesqrt(u_xlat32.x);
					    u_xlat1.xyz = vec3(u_xlat48) * u_xlat1.xyz;
					    u_xlat32.x = sqrt(u_xlat32.x);
					    u_xlat32.x = u_xlat32.x + -0.0500000007;
					    u_xlat48 = dot(_SpotLightParams.xyz, u_xlat1.xyz);
					    u_xlat2.xyz = _SpotLightParams.xyz * _LightParams.zzz + _CustomLightPosition.xyz;
					    u_xlat2.xyz = u_xlat2.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat49 = dot(u_xlat2.xyz, _SpotLightParams.xyz);
					    u_xlat2.x = dot(BottomFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat18.xyz = _CustomLightPosition.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat3.xyz = u_xlat18.xyz + (-UpFrustumOffset.xyz);
					    u_xlat3.x = dot(u_xlat3.xyz, BottomFrustumNormal.xyz);
					    u_xlat19 = dot(LeftFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat4.xyz = u_xlat18.xyz + (-RightFrustumOffset.xyz);
					    u_xlat35 = dot(u_xlat4.xyz, LeftFrustumNormal.xyz);
					    u_xlat51 = dot((-_SpotLightParams.xyz), u_xlat1.xyz);
					    u_xlat4.xyz = _SpotLightParams.xyz * vec3(hxNearPlane) + _CustomLightPosition.xyz;
					    u_xlat5.xyz = u_xlat4.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat52 = dot(u_xlat5.xyz, (-_SpotLightParams.xyz));
					    u_xlat53 = dot(TopFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat6.xyz = u_xlat18.xyz + UpFrustumOffset.xyz;
					    u_xlat6.x = dot(u_xlat6.xyz, TopFrustumNormal.xyz);
					    u_xlat22 = dot(RightFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat18.xyz = u_xlat18.xyz + RightFrustumOffset.xyz;
					    u_xlat18.x = dot(u_xlat18.xyz, RightFrustumNormal.xyz);
					    u_xlatb34 = 0.0<u_xlat51;
					    u_xlat50 = u_xlat52 / u_xlat51;
					    u_xlat23.y = min(u_xlat50, 100000.0);
					    u_xlatb52 = u_xlat51<0.0;
					    u_xlat38 = max(u_xlat50, 0.0);
					    u_xlat24.x = u_xlatb52 ? u_xlat38 : float(0.0);
					    u_xlat23.x = 0.0;
					    u_xlat24.y = 100000.0;
					    u_xlat7.yz = (bool(u_xlatb34)) ? u_xlat23.xy : u_xlat24.xy;
					    u_xlatb34 = 0.0<u_xlat53;
					    u_xlat52 = u_xlat6.x / u_xlat53;
					    u_xlat7.w = min(u_xlat52, u_xlat7.z);
					    u_xlatb53 = u_xlat53<0.0;
					    u_xlat52 = max(u_xlat52, u_xlat7.y);
					    u_xlat7.x = (u_xlatb53) ? u_xlat52 : u_xlat7.y;
					    u_xlat7.yz = (bool(u_xlatb34)) ? u_xlat7.yw : u_xlat7.xz;
					    u_xlatb34 = 0.0<u_xlat22;
					    u_xlat18.x = u_xlat18.x / u_xlat22;
					    u_xlat7.w = min(u_xlat18.x, u_xlat7.z);
					    u_xlatb52 = u_xlat22<0.0;
					    u_xlat18.x = max(u_xlat18.x, u_xlat7.y);
					    u_xlat7.x = (u_xlatb52) ? u_xlat18.x : u_xlat7.y;
					    u_xlat6.yz = (bool(u_xlatb34)) ? u_xlat7.yw : u_xlat7.xz;
					    u_xlatb18 = 0.0<u_xlat48;
					    u_xlat49 = u_xlat49 / u_xlat48;
					    u_xlat6.w = min(u_xlat49, u_xlat6.z);
					    u_xlatb34 = u_xlat48<0.0;
					    u_xlat49 = max(u_xlat49, u_xlat6.y);
					    u_xlat6.x = (u_xlatb34) ? u_xlat49 : u_xlat6.y;
					    u_xlat6.yz = (bool(u_xlatb18)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlatb49 = 0.0<u_xlat2.x;
					    u_xlat18.x = u_xlat3.x / u_xlat2.x;
					    u_xlat6.w = min(u_xlat18.x, u_xlat6.z);
					    u_xlatb2 = u_xlat2.x<0.0;
					    u_xlat18.x = max(u_xlat18.x, u_xlat6.y);
					    u_xlat6.x = (u_xlatb2) ? u_xlat18.x : u_xlat6.y;
					    u_xlat6.yz = (bool(u_xlatb49)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlatb49 = 0.0<u_xlat19;
					    u_xlat2.x = u_xlat35 / u_xlat19;
					    u_xlat6.w = min(u_xlat2.x, u_xlat6.z);
					    u_xlatb18 = u_xlat19<0.0;
					    u_xlat2.x = max(u_xlat2.x, u_xlat6.y);
					    u_xlat6.x = (u_xlatb18) ? u_xlat2.x : u_xlat6.y;
					    u_xlat2.xy = (bool(u_xlatb49)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlat32.x = min(u_xlat32.x, u_xlat2.y);
					    u_xlatb49 = u_xlat2.x>=u_xlat32.x;
					    if(((int(u_xlatb49) * int(0xffffffffu)))!=0){discard;}
					    u_xlat2.xyz = u_xlat1.xyz * u_xlat2.xxx + _WorldSpaceCameraPos.xyz;
					    u_xlat3.xyz = u_xlat1.xyz * u_xlat32.xxx + _WorldSpaceCameraPos.xyz;
					    u_xlat6.xyz = (-u_xlat4.xyz) + u_xlat2.xyz;
					    u_xlat32.x = dot(u_xlat6.xyz, _SpotLightParams.xyz);
					    u_xlat4.xyz = (-u_xlat4.xyz) + u_xlat3.xyz;
					    u_xlat49 = dot(u_xlat4.xyz, _SpotLightParams.xyz);
					    u_xlatb4 = 0.0>=u_xlat32.x;
					    u_xlatb20 = 0.0>=u_xlat49;
					    u_xlatb36 = u_xlatb20 && u_xlatb4;
					    if(((int(u_xlatb36) * int(0xffffffffu)))!=0){discard;}
					    u_xlatb32.x = 0.0<u_xlat32.x;
					    u_xlatb32.x = u_xlatb20 && u_xlatb32.x;
					    u_xlatb51 = 9.99999997e-07<u_xlat51;
					    u_xlat20.xyz = u_xlat1.xyz * vec3(u_xlat50) + _WorldSpaceCameraPos.xyz;
					    u_xlat20.xyz = (bool(u_xlatb51)) ? u_xlat20.xyz : u_xlat3.xyz;
					    u_xlat3.xyz = (u_xlatb32.x) ? u_xlat20.xyz : u_xlat3.xyz;
					    u_xlatb32.x = 0.0<u_xlat49;
					    u_xlatb32.x = u_xlatb32.x && u_xlatb4;
					    u_xlatb49 = 9.99999997e-07<u_xlat48;
					    u_xlat50 = dot(u_xlat5.xyz, _SpotLightParams.xyz);
					    u_xlat48 = u_xlat50 / u_xlat48;
					    u_xlat1.xyz = u_xlat1.xyz * vec3(u_xlat48) + _WorldSpaceCameraPos.xyz;
					    u_xlat1.xyz = (bool(u_xlatb49)) ? u_xlat1.xyz : u_xlat2.xyz;
					    u_xlat1.xyz = (u_xlatb32.x) ? u_xlat1.xyz : u_xlat2.xyz;
					    u_xlat32.xy = vec2(VolumeScale) * _ScreenParams.xy;
					    u_xlat0.xy = u_xlat0.xy * u_xlat32.xy;
					    u_xlat0.xy = u_xlat0.xy / vec2(HxTileSize);
					    u_xlatb32.xy = greaterThanEqual(u_xlat0.xyxy, (-u_xlat0.xyxy)).xy;
					    u_xlat0.xy = fract(abs(u_xlat0.xy));
					    {
					        vec2 hlslcc_movcTemp = u_xlat0;
					        hlslcc_movcTemp.x = (u_xlatb32.x) ? u_xlat0.x : (-u_xlat0.x);
					        hlslcc_movcTemp.y = (u_xlatb32.y) ? u_xlat0.y : (-u_xlat0.y);
					        u_xlat0 = hlslcc_movcTemp;
					    }
					    u_xlat0.xy = u_xlat0.xy * vec2(HxTileSize);
					    u_xlat2.xyz = u_xlat1.xyz + (-_WorldSpaceCameraPos.xyz);
					    u_xlat32.x = dot(u_xlat2.xyz, u_xlat2.xyz);
					    u_xlat32.x = sqrt(u_xlat32.x);
					    u_xlat2.xyz = (-u_xlat1.xyz) + u_xlat3.xyz;
					    u_xlat48 = min(Density.y, 128.0);
					    u_xlati49 = int(u_xlat48);
					    u_xlat50 = dot(u_xlat2.xyz, u_xlat2.xyz);
					    u_xlat51 = inversesqrt(u_xlat50);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(u_xlat51);
					    u_xlat50 = sqrt(u_xlat50);
					    u_xlat48 = trunc(u_xlat48);
					    u_xlat50 = u_xlat50 / u_xlat48;
					    u_xlat4.xyz = vec3(u_xlat50) * u_xlat2.xyz;
					    u_xlat5.xyz = u_xlat1.xyz + (-_CustomLightPosition.xyz);
					    u_xlat6.xyz = u_xlat5.yyy * unity_WorldToObject[1].xyz;
					    u_xlat5.xyw = unity_WorldToObject[0].xyz * u_xlat5.xxx + u_xlat6.xyz;
					    u_xlat5.xyz = unity_WorldToObject[2].xyz * u_xlat5.zzz + u_xlat5.xyw;
					    u_xlat3.xyz = u_xlat3.xyz + (-_CustomLightPosition.xyz);
					    u_xlat6.xyz = u_xlat3.yyy * unity_WorldToObject[1].xyz;
					    u_xlat3.xyw = unity_WorldToObject[0].xyz * u_xlat3.xxx + u_xlat6.xyz;
					    u_xlat3.xyz = unity_WorldToObject[2].xyz * u_xlat3.zzz + u_xlat3.xyw;
					    u_xlat3.xyz = (-u_xlat5.xyz) + u_xlat3.xyz;
					    u_xlat51 = dot(u_xlat3.xyz, u_xlat3.xyz);
					    u_xlat52 = sqrt(u_xlat51);
					    u_xlat48 = u_xlat52 / u_xlat48;
					    u_xlat51 = inversesqrt(u_xlat51);
					    u_xlat3.xyz = vec3(u_xlat51) * u_xlat3.xyz;
					    u_xlat6.xyz = vec3(u_xlat48) * u_xlat3.xyz;
					    u_xlat0.xy = u_xlat0.xy / vec2(HxTileSize);
					    u_xlat7 = textureLod(Tile5x5, u_xlat0.xy, 0.0);
					    u_xlat0.x = u_xlat7.x + hxRayOffset;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat5.xyz = u_xlat6.xyz * u_xlat0.xxx + u_xlat5.xyz;
					    u_xlat1.xyz = u_xlat4.xyz * u_xlat0.xxx + u_xlat1.xyz;
					    u_xlat0.x = u_xlat32.x * Density.x;
					    u_xlat0.x = u_xlat0.x * Density.w;
					    u_xlat16 = u_xlat50 * Density.w;
					    u_xlat32.x = _LightParams.z * _LightParams.z;
					    u_xlat32.x = float(1.0) / u_xlat32.x;
					    u_xlat4.xyz = vec3(LightColour.x, LightColour.y, LightColour.z) + (-LightColour2.xyz);
					    u_xlat6.z = 0.0;
					    u_xlat7.x = float(0.0);
					    u_xlat7.y = float(0.0);
					    u_xlat7.z = float(0.0);
					    u_xlat8.xyz = u_xlat5.xyz;
					    u_xlat9.xyz = u_xlat1.xyz;
					    u_xlat51 = u_xlat0.x;
					    for(int u_xlati_loop_1 = 0 ; u_xlati_loop_1<u_xlati49 ; u_xlati_loop_1++)
					    {
					        u_xlat53 = u_xlat8.z * 0.5;
					        u_xlat53 = float(1.0) / u_xlat53;
					        u_xlat10.xy = u_xlat8.xy * vec2(u_xlat53);
					        u_xlat42.xy = u_xlat10.xy * vec2(0.5, 0.5);
					        u_xlat10.xy = u_xlat10.xy * vec2(0.5, 0.5) + vec2(0.5, 0.5);
					        u_xlat11.xyz = u_xlat9.xyz + (-_CustomLightPosition.xyz);
					        u_xlat12.x = Density.x;
					        u_xlat12.y = float(0.0);
					        u_xlat12.z = float(0.0);
					        u_xlati53 = 0;
					        while(true){
					            u_xlatb54 = floatBitsToInt(u_xlat12.z)>=10;
					            u_xlati53 = 0;
					            if(u_xlatb54){break;}
					            u_xlatb54 = -1.0==hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					            if(u_xlatb54){
					                u_xlat12.xy = u_xlat12.xx;
					                u_xlati53 = int(0xFFFFFFFFu);
					                break;
					            }
					            u_xlati55 = floatBitsToInt(u_xlat12.z) << 2;
					            u_xlat13.xyz = u_xlat9.yyy * hxVolumeMatrixOld[(u_xlati55 + 1) / 4][(u_xlati55 + 1) % 4].xyz;
					            u_xlat13.xyz = hxVolumeMatrixOld[u_xlati55 / 4][u_xlati55 % 4].xyz * u_xlat9.xxx + u_xlat13.xyz;
					            u_xlat13.xyz = hxVolumeMatrixOld[(u_xlati55 + 2) / 4][(u_xlati55 + 2) % 4].xyz * u_xlat9.zzz + u_xlat13.xyz;
					            u_xlat13.xyz = u_xlat13.xyz + hxVolumeMatrixOld[(u_xlati55 + 3) / 4][(u_xlati55 + 3) % 4].xyz;
					            u_xlatb14.xyz = lessThan(vec4(-0.5, -0.5, -0.5, 0.0), u_xlat13.xyzx).xyz;
					            u_xlatb15.xyz = lessThan(u_xlat13.xyzx, vec4(0.5, 0.5, 0.5, 0.0)).xyz;
					            u_xlatb55 = u_xlatb14.x && u_xlatb15.x;
					            u_xlatb55 = u_xlatb14.y && u_xlatb55;
					            u_xlatb55 = u_xlatb15.y && u_xlatb55;
					            u_xlatb55 = u_xlatb14.z && u_xlatb55;
					            u_xlatb55 = u_xlatb15.z && u_xlatb55;
					            if(u_xlatb55){
					                u_xlatb55 = 3.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                if(u_xlatb55){
					                    u_xlat55 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlat56 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                    u_xlat57 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlatb14 = equal(vec4(0.0, 1.0, 2.0, 3.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                    u_xlat59 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlat59 = (u_xlatb14.w) ? u_xlat59 : u_xlat12.x;
					                    u_xlat57 = (u_xlatb14.z) ? u_xlat57 : u_xlat59;
					                    u_xlat56 = (u_xlatb14.y) ? u_xlat56 : u_xlat57;
					                    u_xlat6.x = (u_xlatb14.x) ? u_xlat55 : u_xlat56;
					                } else {
					                    u_xlatb55 = 7.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                    u_xlat56 = dot(u_xlat13.xyz, u_xlat13.xyz);
					                    u_xlat56 = sqrt(u_xlat56);
					                    u_xlatb56 = u_xlat56<0.5;
					                    u_xlatb55 = u_xlatb55 && u_xlatb56;
					                    if(u_xlatb55){
					                        u_xlat55 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat56 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                        u_xlat57 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlatb14 = equal(vec4(4.0, 5.0, 6.0, 7.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                        u_xlat59 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat59 = (u_xlatb14.w) ? u_xlat59 : u_xlat12.x;
					                        u_xlat57 = (u_xlatb14.z) ? u_xlat57 : u_xlat59;
					                        u_xlat56 = (u_xlatb14.y) ? u_xlat56 : u_xlat57;
					                        u_xlat6.x = (u_xlatb14.x) ? u_xlat55 : u_xlat56;
					                    } else {
					                        u_xlatb55 = 11.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                        u_xlat56 = dot(u_xlat13.xz, u_xlat13.xz);
					                        u_xlat56 = sqrt(u_xlat56);
					                        u_xlatb56 = u_xlat56<0.5;
					                        u_xlatb55 = u_xlatb55 && u_xlatb56;
					                        u_xlat56 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat57 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                        u_xlat59 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlatb13 = equal(vec4(8.0, 9.0, 10.0, 11.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                        u_xlat60 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat60 = (u_xlatb13.w) ? u_xlat60 : u_xlat12.x;
					                        u_xlat59 = (u_xlatb13.z) ? u_xlat59 : u_xlat60;
					                        u_xlat57 = (u_xlatb13.y) ? u_xlat57 : u_xlat59;
					                        u_xlat56 = (u_xlatb13.x) ? u_xlat56 : u_xlat57;
					                        u_xlat6.x = (u_xlatb55) ? u_xlat56 : u_xlat12.x;
					                    }
					                }
					            } else {
					                u_xlat6.x = u_xlat12.x;
					            }
					            u_xlat6.y = intBitsToFloat(floatBitsToInt(u_xlat12.z) + 1);
					            u_xlat12.xyz = u_xlat6.xzy;
					            u_xlatb53 = u_xlatb54;
					        }
					        u_xlat6.x = (u_xlati53 != 0) ? u_xlat12.y : u_xlat12.x;
					        u_xlat22 = dot(u_xlat11.xyz, u_xlat11.xyz);
					        u_xlat54 = inversesqrt(u_xlat22);
					        u_xlat11.xyz = vec3(u_xlat54) * u_xlat11.xyz;
					        u_xlat54 = dot(u_xlat11.xyz, (-u_xlat2.xyz));
					        u_xlat54 = (-Phase.w) * u_xlat54 + Phase.z;
					        u_xlat54 = log2(u_xlat54);
					        u_xlat54 = u_xlat54 * 1.5;
					        u_xlat54 = exp2(u_xlat54);
					        u_xlat54 = Phase.y / u_xlat54;
					        u_xlat54 = u_xlat54 * Phase.x;
					        u_xlat55 = u_xlat32.x * u_xlat22;
					        u_xlat11 = textureLod(_FalloffTex, vec2(u_xlat55), 0.0);
					        u_xlat11.xy = u_xlat8.xy + vec2(0.5, 0.5);
					        u_xlat11.xy = (-u_xlat10.xy) + u_xlat11.xy;
					        u_xlat10.xy = vec2(OrthoLight) * u_xlat11.xy + u_xlat10.xy;
					        u_xlat13 = textureLod(_ShadowTex, u_xlat10.xy, 0.0);
					        u_xlat55 = u_xlat11.w * u_xlat13.w;
					        u_xlat22 = (-u_xlat22) * u_xlat32.x + 1.0;
					        u_xlat56 = dot(u_xlat42.xy, u_xlat42.xy);
					        u_xlat56 = sqrt(u_xlat56);
					        u_xlat56 = (-u_xlat56) * 2.0 + 1.0;
					        u_xlat22 = min(u_xlat22, u_xlat56);
					        u_xlat22 = u_xlat22 * TintPercent;
					        u_xlat22 = u_xlat22 * 0.5;
					        u_xlat22 = clamp(u_xlat22, 0.0, 1.0);
					        u_xlat10.xyz = vec3(u_xlat22) * u_xlat4.xyz + LightColour2.xyz;
					        u_xlat10.xyz = u_xlat10.xyz * u_xlat13.xyz;
					        u_xlat22 = u_xlat54 * u_xlat55;
					        u_xlat54 = u_xlat51 * -1.44269502;
					        u_xlat54 = exp2(u_xlat54);
					        u_xlat22 = u_xlat54 * u_xlat22;
					        u_xlat22 = u_xlat6.x * u_xlat22;
					        u_xlat22 = u_xlat50 * u_xlat22;
					        u_xlat22 = max(u_xlat22, 0.0);
					        u_xlat7.xyz = u_xlat10.xyz * vec3(u_xlat22) + u_xlat7.xyz;
					        u_xlat51 = u_xlat16 * u_xlat6.x + u_xlat51;
					        u_xlat8.xyz = u_xlat3.xyz * vec3(u_xlat48) + u_xlat8.xyz;
					        u_xlat9.xyz = u_xlat2.xyz * vec3(u_xlat50) + u_xlat9.xyz;
					    }
					    SV_Target0.xyz = u_xlat7.xyz;
					    SV_Target0.w = 0.0;
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform PGlobals {
						vec4 unused_0_0[14];
						vec4 Phase;
						vec4 unused_0_2;
						vec4 Density;
						vec4 unused_0_4;
						mat4x4 hxVolumeMatrixOld[10];
						vec4 unused_0_6[36];
						vec2 hxVolumeSettingsOld[10];
						vec4 unused_0_8[263];
						float OrthoLight;
						vec4 unused_0_10;
						mat4x4 hxCameraToWorld;
						mat4x4 hxCameraToWorld2;
						float hxNearPlane;
						vec4 _SpotLightParams;
						float hxRayOffset;
						vec3 LightColour;
						vec3 LightColour2;
						float TintPercent;
						vec4 unused_0_19;
						vec4 _LightParams;
						vec4 _CustomLightPosition;
						float HxTileSize;
						mat4x4 InverseProjectionMatrix;
						mat4x4 InverseProjectionMatrix2;
						vec4 unused_0_25[16];
						float VolumeScale;
						vec4 unused_0_27[5];
						vec3 TopFrustumNormal;
						vec3 BottomFrustumNormal;
						vec3 LeftFrustumNormal;
						vec3 RightFrustumNormal;
						vec3 UpFrustumOffset;
						vec3 RightFrustumOffset;
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 _ScreenParams;
						vec4 unused_1_3[2];
					};
					layout(std140) uniform UnityPerDraw {
						vec4 unused_2_0[4];
						mat4x4 unity_WorldToObject;
						vec4 unused_2_2[3];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[64];
						vec3 unity_StereoWorldSpaceCameraPos[2];
						vec4 unused_3_2[3];
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					uniform  sampler2D VolumetricDepth;
					uniform  sampler2D Tile5x5;
					uniform  sampler2D _FalloffTex;
					uniform  sampler2D _ShadowTex;
					in  vec4 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_Target0;
					vec2 u_xlat0;
					vec4 u_xlat1;
					bvec2 u_xlatb1;
					vec4 u_xlat2;
					bool u_xlatb2;
					vec4 u_xlat3;
					bool u_xlatb3;
					vec4 u_xlat4;
					vec4 u_xlat5;
					vec4 u_xlat6;
					bool u_xlatb6;
					vec4 u_xlat7;
					vec4 u_xlat8;
					vec3 u_xlat9;
					vec3 u_xlat10;
					vec4 u_xlat11;
					vec3 u_xlat12;
					vec4 u_xlat13;
					bvec4 u_xlatb13;
					bvec4 u_xlatb14;
					bvec3 u_xlatb15;
					float u_xlat16;
					float u_xlat18;
					bool u_xlatb18;
					bool u_xlatb19;
					vec3 u_xlat20;
					bool u_xlatb20;
					vec3 u_xlat22;
					vec2 u_xlat23;
					vec2 u_xlat24;
					float u_xlat32;
					int u_xlati32;
					float u_xlat33;
					float u_xlat34;
					bool u_xlatb34;
					float u_xlat35;
					bool u_xlatb36;
					float u_xlat38;
					vec2 u_xlat42;
					float u_xlat48;
					bool u_xlatb48;
					float u_xlat49;
					int u_xlati49;
					float u_xlat50;
					float u_xlat51;
					float u_xlat52;
					int u_xlati52;
					bool u_xlatb52;
					float u_xlat53;
					int u_xlati53;
					bool u_xlatb53;
					float u_xlat54;
					bool u_xlatb54;
					float u_xlat55;
					int u_xlati55;
					bool u_xlatb55;
					float u_xlat56;
					bool u_xlatb56;
					float u_xlat57;
					float u_xlat59;
					float u_xlat60;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = textureLod(VolumetricDepth, u_xlat0.xy, 0.0).xwyz;
					    u_xlat32 = dot(u_xlat1.xz, vec2(1.0, 0.00392156886));
					    u_xlatb48 = 0.5<u_xlat1.w;
					    u_xlat33 = u_xlat1.w + u_xlat1.w;
					    u_xlat1.x = fract(u_xlat33);
					    u_xlat1.xy = (-u_xlat1.xy) + vec2(1.0, 1.0);
					    u_xlat1.xy = u_xlat1.xy * vec2(2.0, 2.0) + vec2(-1.0, -1.0);
					    u_xlat2.xyz = (bool(u_xlatb48)) ? InverseProjectionMatrix2[0].xyz : InverseProjectionMatrix[0].xyz;
					    u_xlat3.xyz = (bool(u_xlatb48)) ? InverseProjectionMatrix2[1].xyz : InverseProjectionMatrix[1].xyz;
					    u_xlat4.xyz = (bool(u_xlatb48)) ? InverseProjectionMatrix2[2].xyz : InverseProjectionMatrix[2].xyz;
					    u_xlat5.xyw = (bool(u_xlatb48)) ? InverseProjectionMatrix2[3].xyz : InverseProjectionMatrix[3].xyz;
					    u_xlat6.x = (u_xlatb48) ? InverseProjectionMatrix2[0].w : InverseProjectionMatrix[0].w;
					    u_xlat6.y = (u_xlatb48) ? InverseProjectionMatrix2[1].w : InverseProjectionMatrix[1].w;
					    u_xlat6.z = (u_xlatb48) ? InverseProjectionMatrix2[2].w : InverseProjectionMatrix[2].w;
					    u_xlat6.w = (u_xlatb48) ? InverseProjectionMatrix2[3].w : InverseProjectionMatrix[3].w;
					    u_xlat7.x = u_xlat2.x;
					    u_xlat7.y = u_xlat3.x;
					    u_xlat7.z = u_xlat4.x;
					    u_xlat7.w = u_xlat5.x;
					    u_xlat1.z = float(1.0);
					    u_xlat1.w = float(1.0);
					    u_xlat7.x = dot(u_xlat7, u_xlat1);
					    u_xlat8.x = u_xlat2.y;
					    u_xlat8.y = u_xlat3.y;
					    u_xlat8.z = u_xlat4.y;
					    u_xlat8.w = u_xlat5.y;
					    u_xlat7.y = dot(u_xlat8, u_xlat1);
					    u_xlat5.x = u_xlat2.z;
					    u_xlat5.y = u_xlat3.z;
					    u_xlat5.z = u_xlat4.z;
					    u_xlat7.z = dot(u_xlat5, u_xlat1);
					    u_xlat1.x = dot(u_xlat6, u_xlat1);
					    u_xlat1.xyz = u_xlat7.xyz / u_xlat1.xxx;
					    u_xlat2.xy = (bool(u_xlatb48)) ? hxCameraToWorld[0].xy : hxCameraToWorld2[0].xy;
					    u_xlat2.zw = (bool(u_xlatb48)) ? hxCameraToWorld[1].xy : hxCameraToWorld2[1].xy;
					    u_xlat3.xy = (bool(u_xlatb48)) ? hxCameraToWorld[2].xy : hxCameraToWorld2[2].xy;
					    u_xlat4.xw = (bool(u_xlatb48)) ? hxCameraToWorld[3].xy : hxCameraToWorld2[3].xy;
					    u_xlat5.x = (u_xlatb48) ? hxCameraToWorld[0].z : hxCameraToWorld2[0].z;
					    u_xlat5.y = (u_xlatb48) ? hxCameraToWorld[1].z : hxCameraToWorld2[1].z;
					    u_xlat5.z = (u_xlatb48) ? hxCameraToWorld[2].z : hxCameraToWorld2[2].z;
					    u_xlat5.w = (u_xlatb48) ? hxCameraToWorld[3].z : hxCameraToWorld2[3].z;
					    u_xlat48 = _ProjectionParams.z / u_xlat1.z;
					    u_xlat1.xyz = vec3(u_xlat48) * (-u_xlat1.xyz);
					    u_xlat1.xyz = vec3(u_xlat32) * u_xlat1.xyz;
					    u_xlat6.xy = u_xlat2.xz;
					    u_xlat6.z = u_xlat3.x;
					    u_xlat6.w = u_xlat4.x;
					    u_xlat1.w = 1.0;
					    u_xlat6.x = dot(u_xlat6, u_xlat1);
					    u_xlat4.xy = u_xlat2.yw;
					    u_xlat4.z = u_xlat3.y;
					    u_xlat6.y = dot(u_xlat4, u_xlat1);
					    u_xlat6.z = dot(u_xlat5, u_xlat1);
					    u_xlati32 = unity_StereoEyeIndex;
					    u_xlat1.xyz = u_xlat6.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat48 = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlat49 = inversesqrt(u_xlat48);
					    u_xlat1.xyz = vec3(u_xlat49) * u_xlat1.xyz;
					    u_xlat48 = sqrt(u_xlat48);
					    u_xlat48 = u_xlat48 + -0.0500000007;
					    u_xlat49 = dot(_SpotLightParams.xyz, u_xlat1.xyz);
					    u_xlat2.xyz = _SpotLightParams.xyz * _LightParams.zzz + _CustomLightPosition.xyz;
					    u_xlat2.xyz = u_xlat2.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat2.x = dot(u_xlat2.xyz, _SpotLightParams.xyz);
					    u_xlat18 = dot(BottomFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat3.xyz = _CustomLightPosition.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat4.xyz = u_xlat3.xyz + (-UpFrustumOffset.xyz);
					    u_xlat34 = dot(u_xlat4.xyz, BottomFrustumNormal.xyz);
					    u_xlat50 = dot(LeftFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat4.xyz = u_xlat3.xyz + (-RightFrustumOffset.xyz);
					    u_xlat51 = dot(u_xlat4.xyz, LeftFrustumNormal.xyz);
					    u_xlat4.x = dot((-_SpotLightParams.xyz), u_xlat1.xyz);
					    u_xlat20.xyz = _SpotLightParams.xyz * vec3(hxNearPlane) + _CustomLightPosition.xyz;
					    u_xlat5.xyz = u_xlat20.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat53 = dot(u_xlat5.xyz, (-_SpotLightParams.xyz));
					    u_xlat6.x = dot(TopFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat22.xyz = u_xlat3.xyz + UpFrustumOffset.xyz;
					    u_xlat22.x = dot(u_xlat22.xyz, TopFrustumNormal.xyz);
					    u_xlat38 = dot(RightFrustumNormal.xyz, u_xlat1.xyz);
					    u_xlat3.xyz = u_xlat3.xyz + RightFrustumOffset.xyz;
					    u_xlat3.x = dot(u_xlat3.xyz, RightFrustumNormal.xyz);
					    u_xlatb19 = 0.0<u_xlat4.x;
					    u_xlat35 = u_xlat53 / u_xlat4.x;
					    u_xlat23.y = min(u_xlat35, 100000.0);
					    u_xlatb53 = u_xlat4.x<0.0;
					    u_xlat54 = max(u_xlat35, 0.0);
					    u_xlat24.x = u_xlatb53 ? u_xlat54 : float(0.0);
					    u_xlat23.x = 0.0;
					    u_xlat24.y = 100000.0;
					    u_xlat7.yz = (bool(u_xlatb19)) ? u_xlat23.xy : u_xlat24.xy;
					    u_xlatb19 = 0.0<u_xlat6.x;
					    u_xlat53 = u_xlat22.x / u_xlat6.x;
					    u_xlat7.w = min(u_xlat53, u_xlat7.z);
					    u_xlatb6 = u_xlat6.x<0.0;
					    u_xlat53 = max(u_xlat53, u_xlat7.y);
					    u_xlat7.x = (u_xlatb6) ? u_xlat53 : u_xlat7.y;
					    u_xlat7.yz = (bool(u_xlatb19)) ? u_xlat7.yw : u_xlat7.xz;
					    u_xlatb19 = 0.0<u_xlat38;
					    u_xlat3.x = u_xlat3.x / u_xlat38;
					    u_xlat7.w = min(u_xlat3.x, u_xlat7.z);
					    u_xlatb53 = u_xlat38<0.0;
					    u_xlat3.x = max(u_xlat3.x, u_xlat7.y);
					    u_xlat7.x = (u_xlatb53) ? u_xlat3.x : u_xlat7.y;
					    u_xlat6.yz = (bool(u_xlatb19)) ? u_xlat7.yw : u_xlat7.xz;
					    u_xlatb3 = 0.0<u_xlat49;
					    u_xlat2.x = u_xlat2.x / u_xlat49;
					    u_xlat6.w = min(u_xlat2.x, u_xlat6.z);
					    u_xlatb19 = u_xlat49<0.0;
					    u_xlat2.x = max(u_xlat2.x, u_xlat6.y);
					    u_xlat6.x = (u_xlatb19) ? u_xlat2.x : u_xlat6.y;
					    u_xlat6.yz = (bool(u_xlatb3)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlatb2 = 0.0<u_xlat18;
					    u_xlat34 = u_xlat34 / u_xlat18;
					    u_xlat6.w = min(u_xlat34, u_xlat6.z);
					    u_xlatb18 = u_xlat18<0.0;
					    u_xlat34 = max(u_xlat34, u_xlat6.y);
					    u_xlat6.x = (u_xlatb18) ? u_xlat34 : u_xlat6.y;
					    u_xlat6.yz = (bool(u_xlatb2)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlatb2 = 0.0<u_xlat50;
					    u_xlat18 = u_xlat51 / u_xlat50;
					    u_xlat6.w = min(u_xlat18, u_xlat6.z);
					    u_xlatb34 = u_xlat50<0.0;
					    u_xlat18 = max(u_xlat18, u_xlat6.y);
					    u_xlat6.x = (u_xlatb34) ? u_xlat18 : u_xlat6.y;
					    u_xlat2.xy = (bool(u_xlatb2)) ? u_xlat6.yw : u_xlat6.xz;
					    u_xlat48 = min(u_xlat48, u_xlat2.y);
					    u_xlatb18 = u_xlat2.x>=u_xlat48;
					    if(((int(u_xlatb18) * int(0xffffffffu)))!=0){discard;}
					    u_xlat2.xyz = u_xlat1.xyz * u_xlat2.xxx + unity_StereoWorldSpaceCameraPos[u_xlati32].xyz;
					    u_xlat3.xyw = u_xlat1.xyz * vec3(u_xlat48) + unity_StereoWorldSpaceCameraPos[u_xlati32].xyz;
					    u_xlat6.xyz = (-u_xlat20.xyz) + u_xlat2.xyz;
					    u_xlat48 = dot(u_xlat6.xyz, _SpotLightParams.xyz);
					    u_xlat20.xyz = (-u_xlat20.xyz) + u_xlat3.xyw;
					    u_xlat50 = dot(u_xlat20.xyz, _SpotLightParams.xyz);
					    u_xlatb20 = 0.0>=u_xlat48;
					    u_xlatb36 = 0.0>=u_xlat50;
					    u_xlatb52 = u_xlatb36 && u_xlatb20;
					    if(((int(u_xlatb52) * int(0xffffffffu)))!=0){discard;}
					    u_xlatb48 = 0.0<u_xlat48;
					    u_xlatb48 = u_xlatb36 && u_xlatb48;
					    if(u_xlatb48){
					        u_xlatb48 = 9.99999997e-07<u_xlat4.x;
					        if(u_xlatb48){
					            u_xlat3.xyw = u_xlat1.xyz * vec3(u_xlat35) + unity_StereoWorldSpaceCameraPos[u_xlati32].xyz;
					        }
					    }
					    u_xlatb48 = 0.0<u_xlat50;
					    u_xlatb48 = u_xlatb48 && u_xlatb20;
					    if(u_xlatb48){
					        u_xlatb48 = 9.99999997e-07<u_xlat49;
					        if(u_xlatb48){
					            u_xlat48 = dot(u_xlat5.xyz, _SpotLightParams.xyz);
					            u_xlat48 = u_xlat48 / u_xlat49;
					            u_xlat2.xyz = u_xlat1.xyz * vec3(u_xlat48) + unity_StereoWorldSpaceCameraPos[u_xlati32].xyz;
					        }
					    }
					    u_xlat1.xy = vec2(VolumeScale) * _ScreenParams.xy;
					    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
					    u_xlat0.xy = u_xlat0.xy / vec2(HxTileSize);
					    u_xlatb1.xy = greaterThanEqual(u_xlat0.xyxx, (-u_xlat0.xyxx)).xy;
					    u_xlat0.xy = fract(abs(u_xlat0.xy));
					    {
					        vec2 hlslcc_movcTemp = u_xlat0;
					        hlslcc_movcTemp.x = (u_xlatb1.x) ? u_xlat0.x : (-u_xlat0.x);
					        hlslcc_movcTemp.y = (u_xlatb1.y) ? u_xlat0.y : (-u_xlat0.y);
					        u_xlat0 = hlslcc_movcTemp;
					    }
					    u_xlat0.xy = u_xlat0.xy * vec2(HxTileSize);
					    u_xlat1.xyz = u_xlat2.xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati32].xyz);
					    u_xlat32 = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlat32 = sqrt(u_xlat32);
					    u_xlat1.xyz = (-u_xlat2.xyz) + u_xlat3.xyw;
					    u_xlat48 = min(Density.y, 128.0);
					    u_xlati49 = int(u_xlat48);
					    u_xlat50 = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlat35 = inversesqrt(u_xlat50);
					    u_xlat1.xyz = u_xlat1.xyz * vec3(u_xlat35);
					    u_xlat50 = sqrt(u_xlat50);
					    u_xlat48 = trunc(u_xlat48);
					    u_xlat50 = u_xlat50 / u_xlat48;
					    u_xlat4.xyz = u_xlat1.xyz * vec3(u_xlat50);
					    u_xlat5.xyz = u_xlat2.xyz + (-_CustomLightPosition.xyz);
					    u_xlat6.xyz = u_xlat5.yyy * unity_WorldToObject[1].xyz;
					    u_xlat5.xyw = unity_WorldToObject[0].xyz * u_xlat5.xxx + u_xlat6.xyz;
					    u_xlat5.xyz = unity_WorldToObject[2].xyz * u_xlat5.zzz + u_xlat5.xyw;
					    u_xlat3.xyz = u_xlat3.xyw + (-_CustomLightPosition.xyz);
					    u_xlat6.xyz = u_xlat3.yyy * unity_WorldToObject[1].xyz;
					    u_xlat3.xyw = unity_WorldToObject[0].xyz * u_xlat3.xxx + u_xlat6.xyz;
					    u_xlat3.xyz = unity_WorldToObject[2].xyz * u_xlat3.zzz + u_xlat3.xyw;
					    u_xlat3.xyz = (-u_xlat5.xyz) + u_xlat3.xyz;
					    u_xlat51 = dot(u_xlat3.xyz, u_xlat3.xyz);
					    u_xlat52 = sqrt(u_xlat51);
					    u_xlat48 = u_xlat52 / u_xlat48;
					    u_xlat51 = inversesqrt(u_xlat51);
					    u_xlat3.xyz = vec3(u_xlat51) * u_xlat3.xyz;
					    u_xlat6.xyz = vec3(u_xlat48) * u_xlat3.xyz;
					    u_xlat0.xy = u_xlat0.xy / vec2(HxTileSize);
					    u_xlat7 = textureLod(Tile5x5, u_xlat0.xy, 0.0);
					    u_xlat0.x = u_xlat7.x + hxRayOffset;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat5.xyz = u_xlat6.xyz * u_xlat0.xxx + u_xlat5.xyz;
					    u_xlat2.xyz = u_xlat4.xyz * u_xlat0.xxx + u_xlat2.xyz;
					    u_xlat0.x = u_xlat32 * Density.x;
					    u_xlat0.x = u_xlat0.x * Density.w;
					    u_xlat16 = u_xlat50 * Density.w;
					    u_xlat32 = _LightParams.z * _LightParams.z;
					    u_xlat32 = float(1.0) / u_xlat32;
					    u_xlat4.xyz = vec3(LightColour.x, LightColour.y, LightColour.z) + (-LightColour2.xyz);
					    u_xlat6.z = 0.0;
					    u_xlat7.x = float(0.0);
					    u_xlat7.y = float(0.0);
					    u_xlat7.z = float(0.0);
					    u_xlat8.xyz = u_xlat5.xyz;
					    u_xlat9.xyz = u_xlat2.xyz;
					    u_xlat51 = u_xlat0.x;
					    for(int u_xlati_loop_1 = 0 ; u_xlati_loop_1<u_xlati49 ; u_xlati_loop_1++)
					    {
					        u_xlat53 = u_xlat8.z * 0.5;
					        u_xlat53 = float(1.0) / u_xlat53;
					        u_xlat10.xy = u_xlat8.xy * vec2(u_xlat53);
					        u_xlat42.xy = u_xlat10.xy * vec2(0.5, 0.5);
					        u_xlat10.xy = u_xlat10.xy * vec2(0.5, 0.5) + vec2(0.5, 0.5);
					        u_xlat11.xyz = u_xlat9.xyz + (-_CustomLightPosition.xyz);
					        u_xlat12.x = Density.x;
					        u_xlat12.y = float(0.0);
					        u_xlat12.z = float(0.0);
					        u_xlati53 = 0;
					        while(true){
					            u_xlatb54 = floatBitsToInt(u_xlat12.z)>=10;
					            u_xlati53 = 0;
					            if(u_xlatb54){break;}
					            u_xlatb54 = -1.0==hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					            if(u_xlatb54){
					                u_xlat12.xy = u_xlat12.xx;
					                u_xlati53 = int(0xFFFFFFFFu);
					                break;
					            }
					            u_xlati55 = floatBitsToInt(u_xlat12.z) << 2;
					            u_xlat13.xyz = u_xlat9.yyy * hxVolumeMatrixOld[(u_xlati55 + 1) / 4][(u_xlati55 + 1) % 4].xyz;
					            u_xlat13.xyz = hxVolumeMatrixOld[u_xlati55 / 4][u_xlati55 % 4].xyz * u_xlat9.xxx + u_xlat13.xyz;
					            u_xlat13.xyz = hxVolumeMatrixOld[(u_xlati55 + 2) / 4][(u_xlati55 + 2) % 4].xyz * u_xlat9.zzz + u_xlat13.xyz;
					            u_xlat13.xyz = u_xlat13.xyz + hxVolumeMatrixOld[(u_xlati55 + 3) / 4][(u_xlati55 + 3) % 4].xyz;
					            u_xlatb14.xyz = lessThan(vec4(-0.5, -0.5, -0.5, 0.0), u_xlat13.xyzx).xyz;
					            u_xlatb15.xyz = lessThan(u_xlat13.xyzx, vec4(0.5, 0.5, 0.5, 0.0)).xyz;
					            u_xlatb55 = u_xlatb14.x && u_xlatb15.x;
					            u_xlatb55 = u_xlatb14.y && u_xlatb55;
					            u_xlatb55 = u_xlatb15.y && u_xlatb55;
					            u_xlatb55 = u_xlatb14.z && u_xlatb55;
					            u_xlatb55 = u_xlatb15.z && u_xlatb55;
					            if(u_xlatb55){
					                u_xlatb55 = 3.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                if(u_xlatb55){
					                    u_xlat55 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlat56 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                    u_xlat57 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlatb14 = equal(vec4(0.0, 1.0, 2.0, 3.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                    u_xlat59 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                    u_xlat59 = (u_xlatb14.w) ? u_xlat59 : u_xlat12.x;
					                    u_xlat57 = (u_xlatb14.z) ? u_xlat57 : u_xlat59;
					                    u_xlat56 = (u_xlatb14.y) ? u_xlat56 : u_xlat57;
					                    u_xlat6.x = (u_xlatb14.x) ? u_xlat55 : u_xlat56;
					                } else {
					                    u_xlatb55 = 7.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                    u_xlat56 = dot(u_xlat13.xyz, u_xlat13.xyz);
					                    u_xlat56 = sqrt(u_xlat56);
					                    u_xlatb56 = u_xlat56<0.5;
					                    u_xlatb55 = u_xlatb55 && u_xlatb56;
					                    if(u_xlatb55){
					                        u_xlat55 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat56 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                        u_xlat57 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlatb14 = equal(vec4(4.0, 5.0, 6.0, 7.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                        u_xlat59 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat59 = (u_xlatb14.w) ? u_xlat59 : u_xlat12.x;
					                        u_xlat57 = (u_xlatb14.z) ? u_xlat57 : u_xlat59;
					                        u_xlat56 = (u_xlatb14.y) ? u_xlat56 : u_xlat57;
					                        u_xlat6.x = (u_xlatb14.x) ? u_xlat55 : u_xlat56;
					                    } else {
					                        u_xlatb55 = 11.0>=hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].y;
					                        u_xlat56 = dot(u_xlat13.xz, u_xlat13.xz);
					                        u_xlat56 = sqrt(u_xlat56);
					                        u_xlatb56 = u_xlat56<0.5;
					                        u_xlatb55 = u_xlatb55 && u_xlatb56;
					                        u_xlat56 = max(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat57 = u_xlat12.x + hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x;
					                        u_xlat59 = min(u_xlat12.x, hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlatb13 = equal(vec4(8.0, 9.0, 10.0, 11.0), hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].yyyy);
					                        u_xlat60 = u_xlat12.x + (-hxVolumeSettingsOld[floatBitsToInt(u_xlat12.z)].x);
					                        u_xlat60 = (u_xlatb13.w) ? u_xlat60 : u_xlat12.x;
					                        u_xlat59 = (u_xlatb13.z) ? u_xlat59 : u_xlat60;
					                        u_xlat57 = (u_xlatb13.y) ? u_xlat57 : u_xlat59;
					                        u_xlat56 = (u_xlatb13.x) ? u_xlat56 : u_xlat57;
					                        u_xlat6.x = (u_xlatb55) ? u_xlat56 : u_xlat12.x;
					                    }
					                }
					            } else {
					                u_xlat6.x = u_xlat12.x;
					            }
					            u_xlat6.y = intBitsToFloat(floatBitsToInt(u_xlat12.z) + 1);
					            u_xlat12.xyz = u_xlat6.xzy;
					            u_xlatb53 = u_xlatb54;
					        }
					        u_xlat6.x = (u_xlati53 != 0) ? u_xlat12.y : u_xlat12.x;
					        u_xlat22.x = dot(u_xlat11.xyz, u_xlat11.xyz);
					        u_xlat54 = inversesqrt(u_xlat22.x);
					        u_xlat11.xyz = vec3(u_xlat54) * u_xlat11.xyz;
					        u_xlat54 = dot(u_xlat11.xyz, (-u_xlat1.xyz));
					        u_xlat54 = (-Phase.w) * u_xlat54 + Phase.z;
					        u_xlat54 = log2(u_xlat54);
					        u_xlat54 = u_xlat54 * 1.5;
					        u_xlat54 = exp2(u_xlat54);
					        u_xlat54 = Phase.y / u_xlat54;
					        u_xlat54 = u_xlat54 * Phase.x;
					        u_xlat55 = u_xlat32 * u_xlat22.x;
					        u_xlat11 = textureLod(_FalloffTex, vec2(u_xlat55), 0.0);
					        u_xlat11.xy = u_xlat8.xy + vec2(0.5, 0.5);
					        u_xlat11.xy = (-u_xlat10.xy) + u_xlat11.xy;
					        u_xlat10.xy = vec2(OrthoLight) * u_xlat11.xy + u_xlat10.xy;
					        u_xlat13 = textureLod(_ShadowTex, u_xlat10.xy, 0.0);
					        u_xlat55 = u_xlat11.w * u_xlat13.w;
					        u_xlat22.x = (-u_xlat22.x) * u_xlat32 + 1.0;
					        u_xlat56 = dot(u_xlat42.xy, u_xlat42.xy);
					        u_xlat56 = sqrt(u_xlat56);
					        u_xlat56 = (-u_xlat56) * 2.0 + 1.0;
					        u_xlat22.x = min(u_xlat22.x, u_xlat56);
					        u_xlat22.x = u_xlat22.x * TintPercent;
					        u_xlat22.x = u_xlat22.x * 0.5;
					        u_xlat22.x = clamp(u_xlat22.x, 0.0, 1.0);
					        u_xlat10.xyz = u_xlat22.xxx * u_xlat4.xyz + LightColour2.xyz;
					        u_xlat10.xyz = u_xlat10.xyz * u_xlat13.xyz;
					        u_xlat22.x = u_xlat54 * u_xlat55;
					        u_xlat54 = u_xlat51 * -1.44269502;
					        u_xlat54 = exp2(u_xlat54);
					        u_xlat22.x = u_xlat54 * u_xlat22.x;
					        u_xlat22.x = u_xlat6.x * u_xlat22.x;
					        u_xlat22.x = u_xlat50 * u_xlat22.x;
					        u_xlat22.x = max(u_xlat22.x, 0.0);
					        u_xlat7.xyz = u_xlat10.xyz * u_xlat22.xxx + u_xlat7.xyz;
					        u_xlat51 = u_xlat16 * u_xlat6.x + u_xlat51;
					        u_xlat8.xyz = u_xlat3.xyz * vec3(u_xlat48) + u_xlat8.xyz;
					        u_xlat9.xyz = u_xlat1.xyz * vec3(u_xlat50) + u_xlat9.xyz;
					    }
					    SV_Target0.xyz = u_xlat7.xyz;
					    SV_Target0.w = 0.0;
					    return;
					}"
				}
			}
		}
	}
}