Shader "Hidden/HxVolumetricApply" {
	Properties {
		_MainTex ("", any) = "" {}
	}
	SubShader {
		Pass {
			ZTest Always
			Cull Off
			GpuProgramID 12601
			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 UnityPerCamera {
						vec4 unused_0_0[5];
						vec4 _ProjectionParams;
						vec4 unused_0_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_1_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_2_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_2_2[2];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					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_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    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[2];
						vec4 VolumetricDepth_TexelSize;
						vec4 unused_0_2[5];
						float DepthThreshold;
						vec4 unused_0_4[5];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[7];
						vec4 _ZBufferParams;
						vec4 unused_1_2;
					};
					uniform  sampler2D _CameraDepthTexture;
					uniform  sampler2D VolumetricDepth;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					bool u_xlatb0;
					vec4 u_xlat1;
					ivec2 u_xlati1;
					vec4 u_xlat2;
					vec4 u_xlat3;
					vec4 u_xlat4;
					int u_xlati4;
					bool u_xlatb4;
					vec4 u_xlat5;
					vec4 u_xlat6;
					vec4 u_xlat7;
					vec4 u_xlat8;
					bool u_xlatb8;
					vec4 u_xlat9;
					float u_xlat10;
					bvec3 u_xlatb10;
					vec3 u_xlat12;
					int u_xlati14;
					float u_xlat18;
					bool u_xlatb18;
					float u_xlat20;
					vec2 u_xlat21;
					int u_xlati21;
					bool u_xlatb21;
					float u_xlat30;
					bool u_xlatb30;
					int u_xlati31;
					bool u_xlatb31;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = texture(_CameraDepthTexture, u_xlat0.xy);
					    u_xlat20 = _ZBufferParams.x * u_xlat1.x + _ZBufferParams.y;
					    u_xlat20 = float(1.0) / u_xlat20;
					    u_xlat1.xy = VolumetricDepth_TexelSize.xy * vec2(0.5, 0.5);
					    u_xlat21.xy = (-VolumetricDepth_TexelSize.xy) * vec2(0.5, 0.5) + u_xlat0.xy;
					    u_xlat21.xy = u_xlat21.xy / VolumetricDepth_TexelSize.xy;
					    u_xlat21.xy = floor(u_xlat21.xy);
					    u_xlat21.xy = u_xlat21.xy * VolumetricDepth_TexelSize.xy + u_xlat1.xy;
					    u_xlat2.xy = u_xlat0.xy / VolumetricDepth_TexelSize.xy;
					    u_xlat2.xy = floor(u_xlat2.xy);
					    u_xlat2.xy = u_xlat2.xy * VolumetricDepth_TexelSize.xy + u_xlat1.xy;
					    u_xlati1.xy = ivec2(uvec2(notEqual(u_xlat21.xyxx, u_xlat2.xyxx).xy) * 0xFFFFFFFFu);
					    u_xlati1.xy = u_xlati1.xy << ivec2(1);
					    u_xlati1.xy = ivec2(uvec2(u_xlati1.xy) & uvec2(2u, 2u));
					    u_xlati1.xy = u_xlati1.xy + ivec2(int(0xFFFFFFFFu), int(0xFFFFFFFFu));
					    u_xlat1.xy = vec2(u_xlati1.xy);
					    u_xlat3 = textureLod(VolumetricDepth, u_xlat2.xy, 0.0).yzwx;
					    u_xlat30 = (-u_xlat20) + u_xlat3.w;
					    u_xlat4 = (-VolumetricDepth_TexelSize.xyxy) * u_xlat1.xyxy + u_xlat2.xyxy;
					    u_xlat2.zw = u_xlat4.xy;
					    u_xlat5 = textureLod(VolumetricDepth, u_xlat2.zy, 0.0).yzxw;
					    u_xlat21.x = (-u_xlat20) + u_xlat5.z;
					    u_xlat5.x = abs(u_xlat21.x);
					    u_xlat6 = textureLod(VolumetricDepth, u_xlat2.xw, 0.0).ywzx;
					    u_xlat21.x = (-u_xlat20) + u_xlat6.w;
					    u_xlat6.x = abs(u_xlat21.x);
					    u_xlat7 = textureLod(VolumetricDepth, u_xlat4.zw, 0.0).yzwx;
					    u_xlat21.x = (-u_xlat20) + u_xlat7.w;
					    u_xlat7.x = abs(u_xlat21.x);
					    u_xlati21 = int((u_xlat3.w<0.999949992) ? 0xFFFFFFFFu : uint(0));
					    u_xlati31 = int((u_xlat5.z<0.999949992) ? 0xFFFFFFFFu : uint(0));
					    u_xlati4 = int((u_xlat6.w<0.999949992) ? 0xFFFFFFFFu : uint(0));
					    u_xlati14 = int((u_xlat7.w<0.999949992) ? 0xFFFFFFFFu : uint(0));
					    u_xlat8.x = u_xlat3.w * DepthThreshold;
					    u_xlatb8 = abs(u_xlat30)<u_xlat8.x;
					    u_xlat18 = u_xlat5.z * DepthThreshold;
					    u_xlatb18 = u_xlat5.x<u_xlat18;
					    u_xlatb8 = u_xlatb18 && u_xlatb8;
					    u_xlat18 = u_xlat6.w * DepthThreshold;
					    u_xlatb18 = u_xlat6.x<u_xlat18;
					    u_xlatb8 = u_xlatb18 && u_xlatb8;
					    u_xlat18 = u_xlat7.w * DepthThreshold;
					    u_xlatb18 = u_xlat7.x<u_xlat18;
					    u_xlatb8 = u_xlatb18 && u_xlatb8;
					    u_xlatb31 = u_xlati31==u_xlati21;
					    u_xlatb4 = u_xlati21==u_xlati4;
					    u_xlatb31 = u_xlatb31 && u_xlatb4;
					    u_xlatb21 = u_xlati21==u_xlati14;
					    u_xlatb21 = u_xlatb21 && u_xlatb31;
					    u_xlatb21 = u_xlatb21 && u_xlatb8;
					    if(u_xlatb21){
					        SV_Target0 = textureLod(_MainTex, u_xlat0.xy, 0.0);
					        gl_FragDepth = 1000.0;
					    } else {
					        u_xlatb0 = u_xlat20>=u_xlat3.w;
					        u_xlatb10.x = abs(u_xlat30)<100000.0;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat3.y = (u_xlatb0) ? abs(u_xlat30) : 100000.0;
					        u_xlatb0 = u_xlat3.w>=u_xlat20;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat3.x = (u_xlatb0) ? abs(u_xlat30) : 100000.0;
					        u_xlatb0 = u_xlat20>=u_xlat5.z;
					        u_xlatb10.xz = lessThan(u_xlat5.xxxx, u_xlat3.yyxx).xz;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat5.y = u_xlat2.z;
					        u_xlat3.z = u_xlat2.x;
					        u_xlat8.xyw = (bool(u_xlatb0)) ? u_xlat5.xyz : u_xlat3.yzw;
					        u_xlatb0 = u_xlat5.z>=u_xlat20;
					        u_xlatb0 = u_xlatb10.z && u_xlatb0;
					        u_xlat3.xyw = (bool(u_xlatb0)) ? u_xlat5.xyz : u_xlat3.xzw;
					        u_xlatb0 = u_xlat20>=u_xlat6.w;
					        u_xlatb10.x = u_xlat6.x<u_xlat8.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat6.yz = u_xlat2.wx;
					        u_xlat8.z = u_xlat2.y;
					        u_xlat9 = (bool(u_xlatb0)) ? u_xlat6.xzyw : u_xlat8;
					        u_xlatb0 = u_xlat6.w>=u_xlat20;
					        u_xlatb10.x = u_xlat6.x<u_xlat3.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat3.z = u_xlat8.z;
					        u_xlat8 = (bool(u_xlatb0)) ? u_xlat6.xzyw : u_xlat3;
					        u_xlatb0 = u_xlat20>=u_xlat7.w;
					        u_xlatb10.x = u_xlat7.x<u_xlat9.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat7.yz = u_xlat4.zw;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat7 : u_xlat9;
					        u_xlatb0 = u_xlat7.w>=u_xlat20;
					        u_xlatb10.x = u_xlat7.x<u_xlat8.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat7 = (bool(u_xlatb0)) ? u_xlat7 : u_xlat8;
					        u_xlat1.yz = VolumetricDepth_TexelSize.xy * u_xlat1.xy + u_xlat2.xy;
					        u_xlat2 = textureLod(VolumetricDepth, u_xlat1.yz, 0.0);
					        u_xlat0.x = (-u_xlat20) + u_xlat2.x;
					        u_xlat1.x = abs(u_xlat0.x);
					        u_xlatb0 = u_xlat20>=u_xlat2.x;
					        u_xlatb10.x = u_xlat1.x<u_xlat4.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat1.w = u_xlat2.x;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat1 : u_xlat4;
					        u_xlatb0 = u_xlat2.x>=u_xlat20;
					        u_xlatb10.x = u_xlat1.x<u_xlat7.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat2 = (bool(u_xlatb0)) ? u_xlat1 : u_xlat7;
					        u_xlat7.y = u_xlat6.z;
					        u_xlat7.z = u_xlat1.z;
					        u_xlat8 = textureLod(VolumetricDepth, u_xlat7.yz, 0.0);
					        u_xlat0.x = (-u_xlat20) + u_xlat8.x;
					        u_xlat7.x = abs(u_xlat0.x);
					        u_xlatb0 = u_xlat20>=u_xlat8.x;
					        u_xlatb10.x = u_xlat7.x<u_xlat4.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat7.w = u_xlat8.x;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat7 : u_xlat4;
					        u_xlatb0 = u_xlat8.x>=u_xlat20;
					        u_xlatb10.x = u_xlat7.x<u_xlat2.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat2 = (bool(u_xlatb0)) ? u_xlat7 : u_xlat2;
					        u_xlat3.y = u_xlat1.y;
					        u_xlat1 = textureLod(VolumetricDepth, u_xlat3.yz, 0.0);
					        u_xlat0.x = (-u_xlat20) + u_xlat1.x;
					        u_xlat3.x = abs(u_xlat0.x);
					        u_xlatb0 = u_xlat20>=u_xlat1.x;
					        u_xlatb10.x = u_xlat3.x<u_xlat4.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat3.w = u_xlat1.x;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat3 : u_xlat4;
					        u_xlatb0 = u_xlat1.x>=u_xlat20;
					        u_xlatb10.x = u_xlat3.x<u_xlat2.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat1 = (bool(u_xlatb0)) ? u_xlat3 : u_xlat2;
					        u_xlat5.w = u_xlat7.z;
					        u_xlat2 = textureLod(VolumetricDepth, u_xlat5.yw, 0.0).yzwx;
					        u_xlat0.x = (-u_xlat20) + u_xlat2.w;
					        u_xlat2.x = abs(u_xlat0.x);
					        u_xlatb0 = u_xlat20>=u_xlat2.w;
					        u_xlatb10.x = u_xlat2.x<u_xlat4.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat2.yz = u_xlat5.yw;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat2 : u_xlat4;
					        u_xlatb0 = u_xlat2.w>=u_xlat20;
					        u_xlatb10.x = u_xlat2.x<u_xlat1.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat1 = (bool(u_xlatb0)) ? u_xlat2 : u_xlat1;
					        u_xlat6.x = u_xlat3.y;
					        u_xlat2 = textureLod(VolumetricDepth, u_xlat6.xy, 0.0);
					        u_xlat0.x = (-u_xlat20) + u_xlat2.x;
					        u_xlatb10.x = u_xlat20>=u_xlat2.x;
					        u_xlatb30 = abs(u_xlat0.x)<u_xlat4.x;
					        u_xlatb10.x = u_xlatb30 && u_xlatb10.x;
					        u_xlat6.z = u_xlat2.x;
					        u_xlat12.xyz = (u_xlatb10.x) ? u_xlat6.xyz : u_xlat4.yzw;
					        u_xlatb10.x = u_xlat2.x>=u_xlat20;
					        u_xlatb0 = abs(u_xlat0.x)<u_xlat1.x;
					        u_xlatb0 = u_xlatb0 && u_xlatb10.x;
					        u_xlat0.xyw = (bool(u_xlatb0)) ? u_xlat6.xyz : u_xlat1.yzw;
					        u_xlat1 = textureLod(_MainTex, u_xlat12.xy, 0.0);
					        u_xlat3 = textureLod(_MainTex, u_xlat0.xy, 0.0);
					        u_xlat0.x = (-u_xlat12.z) + u_xlat0.w;
					        u_xlat10 = u_xlat20 + (-u_xlat12.z);
					        u_xlat0.x = float(1.0) / u_xlat0.x;
					        u_xlat0.x = u_xlat0.x * u_xlat10;
					        u_xlat0.x = clamp(u_xlat0.x, 0.0, 1.0);
					        u_xlat10 = u_xlat0.x * -2.0 + 3.0;
					        u_xlat0.x = u_xlat0.x * u_xlat0.x;
					        u_xlat0.x = u_xlat0.x * u_xlat10;
					        u_xlat0.x = min(u_xlat0.x, 1.0);
					        u_xlat2 = (-u_xlat1) + u_xlat3;
					        SV_Target0 = u_xlat0.xxxx * u_xlat2 + u_xlat1;
					        gl_FragDepth = 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[2];
						vec4 VolumetricDepth_TexelSize;
						vec4 unused_0_2[5];
						float DepthThreshold;
						vec4 unused_0_4[5];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[6];
						vec4 _ZBufferParams;
						vec4 unused_1_2;
					};
					uniform  sampler2D _CameraDepthTexture;
					uniform  sampler2D VolumetricDepth;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					bool u_xlatb0;
					vec4 u_xlat1;
					ivec2 u_xlati1;
					vec4 u_xlat2;
					vec4 u_xlat3;
					vec4 u_xlat4;
					int u_xlati4;
					bool u_xlatb4;
					vec4 u_xlat5;
					vec4 u_xlat6;
					vec4 u_xlat7;
					vec4 u_xlat8;
					bool u_xlatb8;
					vec4 u_xlat9;
					float u_xlat10;
					bvec3 u_xlatb10;
					vec3 u_xlat12;
					int u_xlati14;
					float u_xlat18;
					bool u_xlatb18;
					float u_xlat20;
					vec2 u_xlat21;
					int u_xlati21;
					bool u_xlatb21;
					float u_xlat30;
					bool u_xlatb30;
					int u_xlati31;
					bool u_xlatb31;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = texture(_CameraDepthTexture, u_xlat0.xy);
					    u_xlat20 = _ZBufferParams.x * u_xlat1.x + _ZBufferParams.y;
					    u_xlat20 = float(1.0) / u_xlat20;
					    u_xlat1.xy = VolumetricDepth_TexelSize.xy * vec2(0.5, 0.5);
					    u_xlat21.xy = (-VolumetricDepth_TexelSize.xy) * vec2(0.5, 0.5) + u_xlat0.xy;
					    u_xlat21.xy = u_xlat21.xy / VolumetricDepth_TexelSize.xy;
					    u_xlat21.xy = floor(u_xlat21.xy);
					    u_xlat21.xy = u_xlat21.xy * VolumetricDepth_TexelSize.xy + u_xlat1.xy;
					    u_xlat2.xy = u_xlat0.xy / VolumetricDepth_TexelSize.xy;
					    u_xlat2.xy = floor(u_xlat2.xy);
					    u_xlat2.xy = u_xlat2.xy * VolumetricDepth_TexelSize.xy + u_xlat1.xy;
					    u_xlati1.xy = ivec2(uvec2(notEqual(u_xlat21.xyxx, u_xlat2.xyxx).xy) * 0xFFFFFFFFu);
					    u_xlati1.xy = u_xlati1.xy << ivec2(1);
					    u_xlati1.xy = ivec2(uvec2(u_xlati1.xy) & uvec2(2u, 2u));
					    u_xlati1.xy = u_xlati1.xy + ivec2(int(0xFFFFFFFFu), int(0xFFFFFFFFu));
					    u_xlat1.xy = vec2(u_xlati1.xy);
					    u_xlat3 = textureLod(VolumetricDepth, u_xlat2.xy, 0.0).yzwx;
					    u_xlat30 = (-u_xlat20) + u_xlat3.w;
					    u_xlat4 = (-VolumetricDepth_TexelSize.xyxy) * u_xlat1.xyxy + u_xlat2.xyxy;
					    u_xlat2.zw = u_xlat4.xy;
					    u_xlat5 = textureLod(VolumetricDepth, u_xlat2.zy, 0.0).yzxw;
					    u_xlat21.x = (-u_xlat20) + u_xlat5.z;
					    u_xlat5.x = abs(u_xlat21.x);
					    u_xlat6 = textureLod(VolumetricDepth, u_xlat2.xw, 0.0).ywzx;
					    u_xlat21.x = (-u_xlat20) + u_xlat6.w;
					    u_xlat6.x = abs(u_xlat21.x);
					    u_xlat7 = textureLod(VolumetricDepth, u_xlat4.zw, 0.0).yzwx;
					    u_xlat21.x = (-u_xlat20) + u_xlat7.w;
					    u_xlat7.x = abs(u_xlat21.x);
					    u_xlati21 = int((u_xlat3.w<0.999949992) ? 0xFFFFFFFFu : uint(0));
					    u_xlati31 = int((u_xlat5.z<0.999949992) ? 0xFFFFFFFFu : uint(0));
					    u_xlati4 = int((u_xlat6.w<0.999949992) ? 0xFFFFFFFFu : uint(0));
					    u_xlati14 = int((u_xlat7.w<0.999949992) ? 0xFFFFFFFFu : uint(0));
					    u_xlat8.x = u_xlat3.w * DepthThreshold;
					    u_xlatb8 = abs(u_xlat30)<u_xlat8.x;
					    u_xlat18 = u_xlat5.z * DepthThreshold;
					    u_xlatb18 = u_xlat5.x<u_xlat18;
					    u_xlatb8 = u_xlatb18 && u_xlatb8;
					    u_xlat18 = u_xlat6.w * DepthThreshold;
					    u_xlatb18 = u_xlat6.x<u_xlat18;
					    u_xlatb8 = u_xlatb18 && u_xlatb8;
					    u_xlat18 = u_xlat7.w * DepthThreshold;
					    u_xlatb18 = u_xlat7.x<u_xlat18;
					    u_xlatb8 = u_xlatb18 && u_xlatb8;
					    u_xlatb31 = u_xlati31==u_xlati21;
					    u_xlatb4 = u_xlati21==u_xlati4;
					    u_xlatb31 = u_xlatb31 && u_xlatb4;
					    u_xlatb21 = u_xlati21==u_xlati14;
					    u_xlatb21 = u_xlatb21 && u_xlatb31;
					    u_xlatb21 = u_xlatb21 && u_xlatb8;
					    if(u_xlatb21){
					        SV_Target0 = textureLod(_MainTex, u_xlat0.xy, 0.0);
					        gl_FragDepth = 1000.0;
					    } else {
					        u_xlatb0 = u_xlat20>=u_xlat3.w;
					        u_xlatb10.x = abs(u_xlat30)<100000.0;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat3.y = (u_xlatb0) ? abs(u_xlat30) : 100000.0;
					        u_xlatb0 = u_xlat3.w>=u_xlat20;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat3.x = (u_xlatb0) ? abs(u_xlat30) : 100000.0;
					        u_xlatb0 = u_xlat20>=u_xlat5.z;
					        u_xlatb10.xz = lessThan(u_xlat5.xxxx, u_xlat3.yyxx).xz;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat5.y = u_xlat2.z;
					        u_xlat3.z = u_xlat2.x;
					        u_xlat8.xyw = (bool(u_xlatb0)) ? u_xlat5.xyz : u_xlat3.yzw;
					        u_xlatb0 = u_xlat5.z>=u_xlat20;
					        u_xlatb0 = u_xlatb10.z && u_xlatb0;
					        u_xlat3.xyw = (bool(u_xlatb0)) ? u_xlat5.xyz : u_xlat3.xzw;
					        u_xlatb0 = u_xlat20>=u_xlat6.w;
					        u_xlatb10.x = u_xlat6.x<u_xlat8.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat6.yz = u_xlat2.wx;
					        u_xlat8.z = u_xlat2.y;
					        u_xlat9 = (bool(u_xlatb0)) ? u_xlat6.xzyw : u_xlat8;
					        u_xlatb0 = u_xlat6.w>=u_xlat20;
					        u_xlatb10.x = u_xlat6.x<u_xlat3.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat3.z = u_xlat8.z;
					        u_xlat8 = (bool(u_xlatb0)) ? u_xlat6.xzyw : u_xlat3;
					        u_xlatb0 = u_xlat20>=u_xlat7.w;
					        u_xlatb10.x = u_xlat7.x<u_xlat9.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat7.yz = u_xlat4.zw;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat7 : u_xlat9;
					        u_xlatb0 = u_xlat7.w>=u_xlat20;
					        u_xlatb10.x = u_xlat7.x<u_xlat8.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat7 = (bool(u_xlatb0)) ? u_xlat7 : u_xlat8;
					        u_xlat1.yz = VolumetricDepth_TexelSize.xy * u_xlat1.xy + u_xlat2.xy;
					        u_xlat2 = textureLod(VolumetricDepth, u_xlat1.yz, 0.0);
					        u_xlat0.x = (-u_xlat20) + u_xlat2.x;
					        u_xlat1.x = abs(u_xlat0.x);
					        u_xlatb0 = u_xlat20>=u_xlat2.x;
					        u_xlatb10.x = u_xlat1.x<u_xlat4.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat1.w = u_xlat2.x;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat1 : u_xlat4;
					        u_xlatb0 = u_xlat2.x>=u_xlat20;
					        u_xlatb10.x = u_xlat1.x<u_xlat7.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat2 = (bool(u_xlatb0)) ? u_xlat1 : u_xlat7;
					        u_xlat7.y = u_xlat6.z;
					        u_xlat7.z = u_xlat1.z;
					        u_xlat8 = textureLod(VolumetricDepth, u_xlat7.yz, 0.0);
					        u_xlat0.x = (-u_xlat20) + u_xlat8.x;
					        u_xlat7.x = abs(u_xlat0.x);
					        u_xlatb0 = u_xlat20>=u_xlat8.x;
					        u_xlatb10.x = u_xlat7.x<u_xlat4.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat7.w = u_xlat8.x;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat7 : u_xlat4;
					        u_xlatb0 = u_xlat8.x>=u_xlat20;
					        u_xlatb10.x = u_xlat7.x<u_xlat2.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat2 = (bool(u_xlatb0)) ? u_xlat7 : u_xlat2;
					        u_xlat3.y = u_xlat1.y;
					        u_xlat1 = textureLod(VolumetricDepth, u_xlat3.yz, 0.0);
					        u_xlat0.x = (-u_xlat20) + u_xlat1.x;
					        u_xlat3.x = abs(u_xlat0.x);
					        u_xlatb0 = u_xlat20>=u_xlat1.x;
					        u_xlatb10.x = u_xlat3.x<u_xlat4.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat3.w = u_xlat1.x;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat3 : u_xlat4;
					        u_xlatb0 = u_xlat1.x>=u_xlat20;
					        u_xlatb10.x = u_xlat3.x<u_xlat2.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat1 = (bool(u_xlatb0)) ? u_xlat3 : u_xlat2;
					        u_xlat5.w = u_xlat7.z;
					        u_xlat2 = textureLod(VolumetricDepth, u_xlat5.yw, 0.0).yzwx;
					        u_xlat0.x = (-u_xlat20) + u_xlat2.w;
					        u_xlat2.x = abs(u_xlat0.x);
					        u_xlatb0 = u_xlat20>=u_xlat2.w;
					        u_xlatb10.x = u_xlat2.x<u_xlat4.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat2.yz = u_xlat5.yw;
					        u_xlat4 = (bool(u_xlatb0)) ? u_xlat2 : u_xlat4;
					        u_xlatb0 = u_xlat2.w>=u_xlat20;
					        u_xlatb10.x = u_xlat2.x<u_xlat1.x;
					        u_xlatb0 = u_xlatb10.x && u_xlatb0;
					        u_xlat1 = (bool(u_xlatb0)) ? u_xlat2 : u_xlat1;
					        u_xlat6.x = u_xlat3.y;
					        u_xlat2 = textureLod(VolumetricDepth, u_xlat6.xy, 0.0);
					        u_xlat0.x = (-u_xlat20) + u_xlat2.x;
					        u_xlatb10.x = u_xlat20>=u_xlat2.x;
					        u_xlatb30 = abs(u_xlat0.x)<u_xlat4.x;
					        u_xlatb10.x = u_xlatb30 && u_xlatb10.x;
					        u_xlat6.z = u_xlat2.x;
					        u_xlat12.xyz = (u_xlatb10.x) ? u_xlat6.xyz : u_xlat4.yzw;
					        u_xlatb10.x = u_xlat2.x>=u_xlat20;
					        u_xlatb0 = abs(u_xlat0.x)<u_xlat1.x;
					        u_xlatb0 = u_xlatb0 && u_xlatb10.x;
					        u_xlat0.xyw = (bool(u_xlatb0)) ? u_xlat6.xyz : u_xlat1.yzw;
					        u_xlat1 = textureLod(_MainTex, u_xlat12.xy, 0.0);
					        u_xlat3 = textureLod(_MainTex, u_xlat0.xy, 0.0);
					        u_xlat0.x = (-u_xlat12.z) + u_xlat0.w;
					        u_xlat10 = u_xlat20 + (-u_xlat12.z);
					        u_xlat0.x = float(1.0) / u_xlat0.x;
					        u_xlat0.x = u_xlat0.x * u_xlat10;
					        u_xlat0.x = clamp(u_xlat0.x, 0.0, 1.0);
					        u_xlat10 = u_xlat0.x * -2.0 + 3.0;
					        u_xlat0.x = u_xlat0.x * u_xlat0.x;
					        u_xlat0.x = u_xlat0.x * u_xlat10;
					        u_xlat0.x = min(u_xlat0.x, 1.0);
					        u_xlat2 = (-u_xlat1) + u_xlat3;
					        SV_Target0 = u_xlat0.xxxx * u_xlat2 + u_xlat1;
					        gl_FragDepth = 0.0;
					    }
					    return;
					}"
				}
			}
		}
		Pass {
			ZTest Always
			ZWrite Off
			Cull Off
			GpuProgramID 105464
			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[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_3_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_3_2[2];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					bool u_xlatb4;
					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_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    gl_Position = u_xlat0;
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb4 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb4) ? u_xlat0.x : u_xlat0.y;
					    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 VGlobals {
						vec4 unused_0_0[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_3_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_3_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					bool u_xlatb6;
					int u_xlati7;
					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_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati7 = unity_StereoEyeIndex;
					    u_xlat2.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati7].zw;
					    u_xlat0.xy = u_xlat1.xy * unity_StereoScaleOffset[u_xlati7].xy + u_xlat2.xy;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb6 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb6) ? u_xlat0.x : u_xlat0.y;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					vec4 u_xlat2;
					vec2 u_xlat4;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat6 = dot(u_xlat0.xy, vec2(12.9898005, 78.2330017));
					    u_xlat1 = texture(VolumetricTexture, u_xlat0.xy);
					    u_xlat0.x = sin(u_xlat6);
					    u_xlat0.x = u_xlat0.x * 43758.5469;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat0.x = u_xlat0.x * 0.00065359479 + -0.000326797395;
					    u_xlat0 = u_xlat0.xxxx + u_xlat1;
					    u_xlat1.x = (-u_xlat0.w) + 1.0;
					    u_xlat4.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat2 = texture(_MainTex, u_xlat4.xy);
					    u_xlat0.w = 0.0;
					    SV_Target0 = u_xlat2 * u_xlat1.xxxx + u_xlat0;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					vec4 u_xlat2;
					vec2 u_xlat4;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat6 = dot(u_xlat0.xy, vec2(12.9898005, 78.2330017));
					    u_xlat1 = texture(VolumetricTexture, u_xlat0.xy);
					    u_xlat0.x = sin(u_xlat6);
					    u_xlat0.x = u_xlat0.x * 43758.5469;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat0.x = u_xlat0.x * 0.00065359479 + -0.000326797395;
					    u_xlat0 = u_xlat0.xxxx + u_xlat1;
					    u_xlat1.x = (-u_xlat0.w) + 1.0;
					    u_xlat4.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat2 = texture(_MainTex, u_xlat4.xy);
					    u_xlat0.w = 0.0;
					    SV_Target0 = u_xlat2 * u_xlat1.xxxx + u_xlat0;
					    return;
					}"
				}
			}
		}
		Pass {
			ZTest Always
			ZWrite Off
			Cull Off
			GpuProgramID 135917
			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[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_3_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_3_2[2];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					bool u_xlatb4;
					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_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    gl_Position = u_xlat0;
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb4 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb4) ? u_xlat0.x : u_xlat0.y;
					    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 VGlobals {
						vec4 unused_0_0[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_3_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_3_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					bool u_xlatb6;
					int u_xlati7;
					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_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati7 = unity_StereoEyeIndex;
					    u_xlat2.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati7].zw;
					    u_xlat0.xy = u_xlat1.xy * unity_StereoScaleOffset[u_xlati7].xy + u_xlat2.xy;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb6 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb6) ? u_xlat0.x : u_xlat0.y;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec2 u_xlat0;
					vec4 u_xlat1;
					vec4 u_xlat2;
					vec3 u_xlat3;
					vec2 u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat6.x = dot(u_xlat0.xy, vec2(12.9898005, 78.2330017));
					    u_xlat1 = texture(VolumetricTexture, u_xlat0.xy);
					    u_xlat0.x = sin(u_xlat6.x);
					    u_xlat0.x = u_xlat0.x * 43758.5469;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat3.x = (-u_xlat1.w) + 1.0;
					    u_xlat6.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat2 = texture(_MainTex, u_xlat6.xy);
					    u_xlat3.xyz = u_xlat2.xyz * u_xlat3.xxx + u_xlat1.xyz;
					    SV_Target0.w = u_xlat2.w;
					    SV_Target0.xyz = u_xlat0.xxx * vec3(0.00392156886, 0.00392156886, 0.00392156886) + u_xlat3.xyz;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec2 u_xlat0;
					vec4 u_xlat1;
					vec4 u_xlat2;
					vec3 u_xlat3;
					vec2 u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat6.x = dot(u_xlat0.xy, vec2(12.9898005, 78.2330017));
					    u_xlat1 = texture(VolumetricTexture, u_xlat0.xy);
					    u_xlat0.x = sin(u_xlat6.x);
					    u_xlat0.x = u_xlat0.x * 43758.5469;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat3.x = (-u_xlat1.w) + 1.0;
					    u_xlat6.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat2 = texture(_MainTex, u_xlat6.xy);
					    u_xlat3.xyz = u_xlat2.xyz * u_xlat3.xxx + u_xlat1.xyz;
					    SV_Target0.w = u_xlat2.w;
					    SV_Target0.xyz = u_xlat0.xxx * vec3(0.00392156886, 0.00392156886, 0.00392156886) + u_xlat3.xyz;
					    return;
					}"
				}
			}
		}
		Pass {
			ZTest Always
			ZWrite Off
			Cull Off
			GpuProgramID 218543
			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[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_3_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_3_2[2];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					bool u_xlatb4;
					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_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    gl_Position = u_xlat0;
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb4 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb4) ? u_xlat0.x : u_xlat0.y;
					    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 VGlobals {
						vec4 unused_0_0[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_3_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_3_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					bool u_xlatb6;
					int u_xlati7;
					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_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati7 = unity_StereoEyeIndex;
					    u_xlat2.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati7].zw;
					    u_xlat0.xy = u_xlat1.xy * unity_StereoScaleOffset[u_xlati7].xy + u_xlat2.xy;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb6 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb6) ? u_xlat0.x : u_xlat0.y;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat2;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat0 = texture(_MainTex, u_xlat0.xy);
					    u_xlat1.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = texture(VolumetricTexture, u_xlat1.xy);
					    u_xlat2 = (-u_xlat1.w) + 1.0;
					    u_xlat1.w = 0.0;
					    SV_Target0 = u_xlat0 * vec4(u_xlat2) + u_xlat1;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat2;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat0 = texture(_MainTex, u_xlat0.xy);
					    u_xlat1.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = texture(VolumetricTexture, u_xlat1.xy);
					    u_xlat2 = (-u_xlat1.w) + 1.0;
					    u_xlat1.w = 0.0;
					    SV_Target0 = u_xlat0 * vec4(u_xlat2) + u_xlat1;
					    return;
					}"
				}
			}
		}
		Pass {
			ZTest Always
			ZWrite Off
			Cull Off
			GpuProgramID 285620
			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[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_3_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_3_2[2];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					bool u_xlatb4;
					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_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    gl_Position = u_xlat0;
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb4 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb4) ? u_xlat0.x : u_xlat0.y;
					    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 VGlobals {
						vec4 unused_0_0[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_3_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_3_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					bool u_xlatb6;
					int u_xlati7;
					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_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati7 = unity_StereoEyeIndex;
					    u_xlat2.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati7].zw;
					    u_xlat0.xy = u_xlat1.xy * unity_StereoScaleOffset[u_xlati7].xy + u_xlat2.xy;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb6 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb6) ? u_xlat0.x : u_xlat0.y;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat0 = texture(VolumetricTexture, u_xlat0.xy);
					    u_xlat6 = (-u_xlat0.w) + 1.0;
					    u_xlat1.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat1 = texture(_MainTex, u_xlat1.xy);
					    SV_Target0.xyz = u_xlat1.xyz * vec3(u_xlat6) + u_xlat0.xyz;
					    SV_Target0.w = u_xlat1.w;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat0 = texture(VolumetricTexture, u_xlat0.xy);
					    u_xlat6 = (-u_xlat0.w) + 1.0;
					    u_xlat1.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat1 = texture(_MainTex, u_xlat1.xy);
					    SV_Target0.xyz = u_xlat1.xyz * vec3(u_xlat6) + u_xlat0.xyz;
					    SV_Target0.w = u_xlat1.w;
					    return;
					}"
				}
			}
		}
		Pass {
			ZTest Always
			ZWrite Off
			Cull Off
			GpuProgramID 366817
			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[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_3_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_3_2[2];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					bool u_xlatb4;
					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_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    gl_Position = u_xlat0;
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb4 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb4) ? u_xlat0.x : u_xlat0.y;
					    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 VGlobals {
						vec4 unused_0_0[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_3_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_3_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					bool u_xlatb6;
					int u_xlati7;
					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_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati7 = unity_StereoEyeIndex;
					    u_xlat2.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati7].zw;
					    u_xlat0.xy = u_xlat1.xy * unity_StereoScaleOffset[u_xlati7].xy + u_xlat2.xy;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb6 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb6) ? u_xlat0.x : u_xlat0.y;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat4;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat4 = dot(u_xlat0.xy, vec2(12.9898005, 78.2330017));
					    u_xlat1 = texture(VolumetricTexture, u_xlat0.xy);
					    u_xlat0.x = sin(u_xlat4);
					    u_xlat0.x = u_xlat0.x * 43758.5469;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat0.x = u_xlat0.x * 0.00065359479 + -0.000326797395;
					    u_xlat0 = u_xlat0.xxxx + u_xlat1;
					    u_xlat6 = (-u_xlat0.w) + 1.0;
					    u_xlat1.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat1 = texture(_MainTex, u_xlat1.xy);
					    SV_Target0.xyz = u_xlat1.xyz * vec3(u_xlat6) + u_xlat0.xyz;
					    SV_Target0.w = 1.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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat4;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat4 = dot(u_xlat0.xy, vec2(12.9898005, 78.2330017));
					    u_xlat1 = texture(VolumetricTexture, u_xlat0.xy);
					    u_xlat0.x = sin(u_xlat4);
					    u_xlat0.x = u_xlat0.x * 43758.5469;
					    u_xlat0.x = fract(u_xlat0.x);
					    u_xlat0.x = u_xlat0.x * 0.00065359479 + -0.000326797395;
					    u_xlat0 = u_xlat0.xxxx + u_xlat1;
					    u_xlat6 = (-u_xlat0.w) + 1.0;
					    u_xlat1.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat1 = texture(_MainTex, u_xlat1.xy);
					    SV_Target0.xyz = u_xlat1.xyz * vec3(u_xlat6) + u_xlat0.xyz;
					    SV_Target0.w = 1.0;
					    return;
					}"
				}
			}
		}
		Pass {
			ZTest Always
			ZWrite Off
			Cull Off
			GpuProgramID 457672
			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[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_3_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_3_2[2];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					bool u_xlatb4;
					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_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    gl_Position = u_xlat0;
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb4 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb4) ? u_xlat0.x : u_xlat0.y;
					    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 VGlobals {
						vec4 unused_0_0[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_3_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_3_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					bool u_xlatb6;
					int u_xlati7;
					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_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati7 = unity_StereoEyeIndex;
					    u_xlat2.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati7].zw;
					    u_xlat0.xy = u_xlat1.xy * unity_StereoScaleOffset[u_xlati7].xy + u_xlat2.xy;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb6 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb6) ? u_xlat0.x : u_xlat0.y;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec2 u_xlat1;
					vec4 u_xlat2;
					float u_xlat9;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat0 = texture(_MainTex, u_xlat0.xy);
					    u_xlat1.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat2 = texture(VolumetricTexture, u_xlat1.xy);
					    u_xlat9 = dot(u_xlat1.xy, vec2(12.9898005, 78.2330017));
					    u_xlat9 = sin(u_xlat9);
					    u_xlat9 = u_xlat9 * 43758.5469;
					    u_xlat9 = fract(u_xlat9);
					    u_xlat1.x = (-u_xlat2.w) + 1.0;
					    u_xlat0.xyz = u_xlat0.xyz * u_xlat1.xxx + u_xlat2.xyz;
					    SV_Target0.xyz = vec3(u_xlat9) * vec3(0.00392156886, 0.00392156886, 0.00392156886) + u_xlat0.xyz;
					    SV_Target0.w = 1.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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec2 u_xlat1;
					vec4 u_xlat2;
					float u_xlat9;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat0 = texture(_MainTex, u_xlat0.xy);
					    u_xlat1.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat2 = texture(VolumetricTexture, u_xlat1.xy);
					    u_xlat9 = dot(u_xlat1.xy, vec2(12.9898005, 78.2330017));
					    u_xlat9 = sin(u_xlat9);
					    u_xlat9 = u_xlat9 * 43758.5469;
					    u_xlat9 = fract(u_xlat9);
					    u_xlat1.x = (-u_xlat2.w) + 1.0;
					    u_xlat0.xyz = u_xlat0.xyz * u_xlat1.xxx + u_xlat2.xyz;
					    SV_Target0.xyz = vec3(u_xlat9) * vec3(0.00392156886, 0.00392156886, 0.00392156886) + u_xlat0.xyz;
					    SV_Target0.w = 1.0;
					    return;
					}"
				}
			}
		}
		Pass {
			ZTest Always
			ZWrite Off
			Cull Off
			GpuProgramID 522252
			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[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_3_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_3_2[2];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					bool u_xlatb4;
					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_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    gl_Position = u_xlat0;
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb4 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb4) ? u_xlat0.x : u_xlat0.y;
					    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 VGlobals {
						vec4 unused_0_0[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_3_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_3_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					bool u_xlatb6;
					int u_xlati7;
					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_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati7 = unity_StereoEyeIndex;
					    u_xlat2.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati7].zw;
					    u_xlat0.xy = u_xlat1.xy * unity_StereoScaleOffset[u_xlati7].xy + u_xlat2.xy;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb6 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb6) ? u_xlat0.x : u_xlat0.y;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat0 = texture(_MainTex, u_xlat0.xy);
					    u_xlat1.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = texture(VolumetricTexture, u_xlat1.xy);
					    u_xlat6 = (-u_xlat1.w) + 1.0;
					    SV_Target0.xyz = u_xlat0.xyz * vec3(u_xlat6) + u_xlat1.xyz;
					    SV_Target0.w = 1.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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat0 = texture(_MainTex, u_xlat0.xy);
					    u_xlat1.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = texture(VolumetricTexture, u_xlat1.xy);
					    u_xlat6 = (-u_xlat1.w) + 1.0;
					    SV_Target0.xyz = u_xlat0.xyz * vec3(u_xlat6) + u_xlat1.xyz;
					    SV_Target0.w = 1.0;
					    return;
					}"
				}
			}
		}
		Pass {
			ZTest Always
			ZWrite Off
			Cull Off
			GpuProgramID 542909
			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[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[5];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_3_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_3_2[2];
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					bool u_xlatb4;
					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_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    gl_Position = u_xlat0;
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb4 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb4) ? u_xlat0.x : u_xlat0.y;
					    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 VGlobals {
						vec4 unused_0_0[6];
						vec4 _MainTex_TexelSize;
						vec4 unused_0_2[7];
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[4];
						vec4 _ProjectionParams;
						vec4 unused_1_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_3_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_3_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD2;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					bool u_xlatb6;
					int u_xlati7;
					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_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati7 = unity_StereoEyeIndex;
					    u_xlat2.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati7].zw;
					    u_xlat0.xy = u_xlat1.xy * unity_StereoScaleOffset[u_xlati7].xy + u_xlat2.xy;
					    vs_TEXCOORD0 = u_xlat0;
					    vs_TEXCOORD2.xzw = u_xlat0.xzw;
					    u_xlat0.x = (-u_xlat0.y) + 1.0;
					    u_xlatb6 = _MainTex_TexelSize.y<0.0;
					    vs_TEXCOORD2.y = (u_xlatb6) ? u_xlat0.x : u_xlat0.y;
					    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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat0 = texture(_MainTex, u_xlat0.xy);
					    u_xlat1.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = texture(VolumetricTexture, u_xlat1.xy);
					    u_xlat6 = (-u_xlat1.w) + 1.0;
					    SV_Target0.xyz = u_xlat0.xyz * vec3(u_xlat6) + u_xlat1.xyz;
					    SV_Target0.w = 1.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 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
					uniform  sampler2D VolumetricTexture;
					uniform  sampler2D _MainTex;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD2;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat6;
					void main()
					{
					    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
					    u_xlat0 = texture(_MainTex, u_xlat0.xy);
					    u_xlat1.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
					    u_xlat1 = texture(VolumetricTexture, u_xlat1.xy);
					    u_xlat6 = (-u_xlat1.w) + 1.0;
					    SV_Target0.xyz = u_xlat0.xyz * vec3(u_xlat6) + u_xlat1.xyz;
					    SV_Target0.w = 1.0;
					    return;
					}"
				}
			}
		}
	}
}