#version 450
uniform vec4 pc0_h[31];
uniform vec4 pc3_h[1];
uniform vec4 pc4_h[1];
uniform vec4 pc2_h[46];
uniform vec4 pc1_h[2];
uniform vec4 pc6_h[1];
uniform vec4 pc5_h[3];
uniform vec4 pc7_h[10];
uniform vec4 pu_h[3];
uniform sampler2D ps6;
uniform sampler2D ps0;
uniform sampler2D ps1;
uniform sampler2D ps2;
uniform sampler2D ps3;
uniform sampler2DArray ps8;
uniform sampler2D ps4;
uniform sampler2D ps5;
uniform sampler2D ps7;
layout(location = 1) in vec4 in_TEXCOORD11;
layout(location = 3) in vec4 in_TEXCOORD7;
layout(location = 4) in vec4 in_TEXCOORD8;
layout(location = 0) out vec4 out_Target0;
bool IsForceSampleDepth(){
return true;
}
float DepthbufferFetchES2_R11G11B10(){
return 0.0;
}
void main(){
float f0;
(f0 = pu_h[2].x);
float f1;
(f1 = pu_h[1].x);
float f2;
(f2 = pu_h[0].x);
vec3 v3;
(v3.xyz = pc3_h[0].xyz);
float f4;
(f4 = pc1_h[0].x);
float f5;
(f5 = pc0_h[28].x);
vec3 v6;
(v6.xyz = pc0_h[19].xyz);
float f7;
(f7 = pc0_h[18].x);
float f8;
(f8 = pc0_h[17].x);
vec3 v9;
(v9.xyz = pc0_h[9].xyz);
vec4 v10;
(v10.xyzw = gl_FragCoord);
(v10.w = (1.0 / gl_FragCoord.w));
vec4 v11;
float f12;
float f13;
vec3 v14;
vec3 v15;
vec3 v16;
(v16.xyz = vec3(0.0, 0.0, 0.0));
vec4 v17;
vec3 v18;
(v18.xy = ((((gl_FragCoord.xy + (-pc0_h[30].xy)) * pc0_h[15].zw) + vec2(-0.5, -
0.5)) * vec2(2.0, -2.0)));
(v18.z = gl_FragCoord.z);
vec4 v19;
(v19.w = 1.0);
(v19.xyz = v18);
(v17.xyzw = (v19 * v10.wwww));
vec3 v20;
(v20.xyz = (in_TEXCOORD8.xyz + (-pc0_h[10].xyz)));
vec3 v21;
(v21.xyz = normalize((-in_TEXCOORD8.xyz)));
vec3 v22;
float f23;
(f23 = (pc7_h[4].x * f7));
float f24;
(f24 = (f23 * 0.1));
float f25;
(f25 = (f7 * -0.0044999998));
vec2 v26;
(v26.xy = (vec2(f25) + (v20.xy / pc7_h[4].yy)));
vec2 v27;
(v27.x = f24);
(v27.y = f24);
vec2 v28;
(v28.xy = ((texture(ps3, (v27 + v26)).xy * vec2(2.0, 2.0)) + vec2(-1.0, -1.0)));
vec4 v29;
(v29.w = 1.0);
(v29.xy = v28);
(v29.z = sqrt(clamp((1.0 + (-dot(v28, v28))), 0.0, 1.0)));
vec2 v30;
(v30.x = (f23 * -0.1));
(v30.y = f24);
vec2 v31;
(v31.xy = ((texture(ps3, (v30 + (v26 + vec2(0.86486101, 0.148384)))).xy *
vec2(2.0, 2.0)) + vec2(-1.0, -1.0)));
vec4 v32;
(v32.w = 1.0);
(v32.xy = v31);
(v32.z = sqrt(clamp((1.0 + (-dot(v31, v31))), 0.0, 1.0)));
float f33;
(f33 = (((pc5_h[1].w + -3.0) * 0.30000001) + 1.0));
float f34;
float f35;
(f35 = length(in_TEXCOORD8.xyz));
(f34 = (1.0 + (-(1.0 + (-clamp((f35 / pc7_h[4].w), 0.0, 1.0))))));
vec3 v36;
float f37;
(f37 = length((in_TEXCOORD8.xyz * vec3(0.0, 0.0, 1.0))));
(v36.xyz = mix(mix(vec3(0.0, 0.0, 1.0), mix(vec3(0.0, 0.0, 1.0), (vec3(0.25,
0.25, 0.25) * (v29.xyz + v32.xyz)), vec3((pc7_h[4].z * f33))), vec3(f34)),
vec3(0.0, 0.0, 1.0), vec3(min(max((1.0 + (-(1.0 + (-clamp(((f37 + -1000.0) /
3000.0), 0.0, 1.0))))), 0.0), 0.94999999))));
float f38;
(f38 = (v36.z + 1.0));
float f39;
(f39 = (pc7_h[5].x * f7));
float f40;
(f40 = (f39 * 0.1));
vec2 v41;
(v41.xy = (vec2(f25) + (v20.xy / pc7_h[5].yy)));
vec2 v42;
(v42.x = f40);
(v42.y = f40);
vec2 v43;
(v43.xy = ((texture(ps2, (v42 + v41)).xy * vec2(2.0, 2.0)) + vec2(-1.0, -1.0)));
vec4 v44;
(v44.w = 1.0);
(v44.xy = v43);
(v44.z = sqrt(clamp((1.0 + (-dot(v43, v43))), 0.0, 1.0)));
vec2 v45;
(v45.x = (f39 * -0.1));
(v45.y = f40);
vec2 v46;
(v46.xy = ((texture(ps2, (v45 + (v41 + vec2(0.86486101, 0.148384)))).xy *
vec2(2.0, 2.0)) + vec2(-1.0, -1.0)));
vec4 v47;
(v47.w = 1.0);
(v47.xy = v46);
(v47.z = sqrt(clamp((1.0 + (-dot(v46, v46))), 0.0, 1.0)));
vec3 v48;
(v48.xyz = mix(mix(vec3(0.0, 0.0, 1.0), (vec3(0.25, 0.25, 0.25) * (v44.xyz +
v47.xyz)), vec3((pc7_h[5].z * f33))), vec3(0.0, 0.0, 1.0), vec3(f34)));
vec2 v49;
(v49.xy = (v48.xy * vec2(-1.0, -1.0)));
vec3 v50;
(v50.xy = v36.xy);
(v50.z = f38);
vec3 v51;
(v51.xy = v49);
(v51.z = v48.z);
vec3 v52;
(v52.xy = v36.xy);
(v52.z = f38);
vec3 v53;
(v53.xy = v49);
(v53.z = v48.z);
vec3 v54;
(v54.xyz = ((v52 * vec3(dot(v50, v51))) + (-(vec3(f38) * v53))));
vec3 v55;
float f56;
(f56 = length(v54));
(v55.xyz = (v54 / vec3(f56)));
float f57;
(f57 = dot(in_TEXCOORD11.xyz, v21));
float f58;
(f58 = max(abs((1.0 + (-max(0.0, f57)))), 9.9999997e-05));
float f59;
(f59 = pow(f58, 9.0));
float f60;
(f60 = (((f58 <= 0.0)) ? (0.0) : (f59)));
float f61;
(f61 = ((f60 * 0.95999998) + 0.039999999));
float f62;
(f62 = pow(f61, 1.5));
float f63;
(f63 = (((f61 <= 0.0)) ? (0.0) : (f62)));
vec3 v64;
(v64.xyz = mix(v55, vec3(0.0, 0.0, 1.0), vec3(f63)));
vec4 v65;
(v65.xyzw = texture(ps1, ((v20.xy + (-pc5_h[2].xy)) / pc5_h[2].zz)));
vec3 v66;
(v66.xyz = mix(v64, vec3(0.0, 0.0, 1.0), v65.xxx));
float f67;
(f67 = (v66.z + 1.0));
vec2 v68;
(v68.x = v65.y);
(v68.y = v65.z);
vec3 v69;
(v69.xy = v68);
(v69.z = pc7_h[5].w);
vec2 v70;
(v70.x = v65.y);
(v70.y = v65.z);
vec3 v71;
(v71.xy = v70);
(v71.z = pc7_h[5].w);
vec2 v72;
(v72.x = v65.y);
(v72.y = v65.z);
vec3 v73;
(v73.xy = v72);
(v73.z = pc7_h[5].w);
vec3 v74;
(v74.xyz = (v73 / vec3(sqrt(dot(v69, v71)))));
vec2 v75;
(v75.xy = (v74.xy * vec2(-1.0, -1.0)));
vec3 v76;
(v76.xy = v66.xy);
(v76.z = f67);
vec3 v77;
(v77.xy = v75);
(v77.z = v74.z);
vec3 v78;
(v78.xy = v66.xy);
(v78.z = f67);
vec3 v79;
(v79.xy = v75);
(v79.z = v74.z);
vec3 v80;
(v80.xyz = ((v78 * vec3(dot(v76, v77))) + (-(vec3(f67) * v79))));
vec3 v81;
float f82;
(f82 = length(v80));
(v81.xyz = (v80 / vec3(f82)));
vec3 v83;
(v83.xyz = (((pc5_h[2].w >= 0.5)) ? (v81) : (v64)));
vec3 v84;
(v84.xyz = in_TEXCOORD8.xyz);
float f85;
(f85 = pc5_h[0].x);
vec3 v86;
(v86.xyz = v83);
if ((pc5_h[0].x > 0.001))
{
vec3 v87;
float f88;
float f89;
(f89 = length((v84 * vec3(1.0, 1.0, 0.30000001))));
(f88 = (1.0 + (-clamp((f89 / 2000.0), 0.0, 1.0))));
if ((f88 > 9.9999997e-05))
{
float f90;
(f90 = mix(1.0, 3.0, f85));
vec2 v91;
float f92;
float f93;
(f92 = 0.0);
vec2 v94;
(v94.xy = ((v20.xy / vec2(256.0, 256.0)) * vec2(10.0, 10.0)));
vec2 v95;
(v95.xy = floor(v94));
(v91.xy = vec2(0.0, 0.0));
(f93 = -2.0);
for (; (f93 <= 2.0); )
{
(f92 = -2.0);
for (; (f92 <= 2.0); )
{
vec2 v96;
vec2 v97;
(v97.x = f93);
(v97.y = f92);
vec2 v98;
(v98.xy = (v95 + v97));
vec3 v99;
(v99.xyz = fract((v98.xyx * vec3(0.12, 0.30000001, 0.69999999))));
vec3 v100;
(v100.xyz = (v99 + vec3(dot(v99, (v99.yzx + vec3(19.190001, 19.190001,
19.190001))))));
vec2 v101;
(v101.xy = fract(((v100.xy + v100.yz) * v100.zy)));
vec2 v102;
(v102.xy = fract((vec2((0.2 * f7)) + v101)));
vec2 v103;
(v103.xy = ((v98 + v101) + (-v94)));
(v96.xy = v103);
float f104;
(f104 = length(v96));
vec2 v105;
vec2 v106;
(v106.xy = (v103 / vec2(f104)));
(v105.xy = (((f104 > 9.9999997e-05)) ? (v106) : (vec2(0.0, 0.0))));
(v96.xy = v105);
float f107;
(f107 = ((f104 + (-((3.0 * f90) * v102.x))) + 0.0099999998));
(v91.xy = (v91 + ((vec2(0.5, 0.5) * v105) * vec2(((((sin((30.0 * f107)) *
smoothstep(-0.60000002, -0.30000001, f107)) * smoothstep(0.0, -0.30000001, f107)) /
0.02) * pow((1.0 + (-v102.x)), 15.0))))));
(f92 = (f92 + 1.0));
}
(f93 = (f93 + 1.0));
}
vec2 v108;
(v108.xy = (v91 / vec2(25.0, 25.0)));
(v91.xy = v108);
vec3 v109;
(v109.xy = v108);
(v109.z = sqrt(max((1.0 + (-dot(v108, v108))), 0.0)));
vec3 v110;
(v110.xyz = mix(vec3(0.0, 0.0, 1.0), v109, vec3(f85)));
float f111;
(f111 = (v83.z + 1.0));
vec3 v112;
(v112.xy = v83.xy);
(v112.z = f111);
vec3 v113;
(v113.xy = (-v110.xy));
(v113.z = v110.z);
(v87.xyz = normalize(mix(v83, ((v112 * vec3(dot(v112, v113))) + (-(v113 *
vec3(f111)))), vec3(f88))));
}
else
{
(v87.xyz = v83);
}
(v86.xyz = v87);
}
vec3 v114;
(v114.xyz = normalize(v86));
vec3 v115;
(v115.xyz = (v9 + (-v20)));
float f116;
(f116 = length(v115));
vec3 v117;
float f118;
(f118 = length(pc6_h[0].xyz));
(v117.xyz = ((pc6_h[0].xyz / vec3(f118)) * vec3(-1.0, -1.0, -1.0)));
float f119;
(f119 = clamp((dot((v115 / vec3(f116)), v117) * -1.0), 0.0, 1.0));
float f120;
(f120 = (((f119 + (-f119)) * f119) + 1.0));
(v22.xyz = (vec3((clamp((((dot(v114, (pc6_h[0].xyz * vec3(-1.0, -1.0, -1.0))) * -
1.0) + 0.5) / 2.25), 0.0, 1.0) * (1.0 / (f120 * f120)))) * pc7_h[0].xyz));
vec2 v121;
(v121.xy = (((v17.xy / v17.ww) * pc0_h[29].xy) + pc0_h[29].wz));
float f122;
bool b123;
(b123 = IsForceSampleDepth());
if (b123)
{
(f122 = textureLod(ps7, v121, 0.0).x);
}
else
{
float f124;
(f124 = DepthbufferFetchES2_R11G11B10());
(f122 = f124);
}
float f125;
(f125 = (((f122 * pc0_h[8].x) + pc0_h[8].y) + (1.0 / ((f122 * pc0_h[8].z) + (-
pc0_h[8].w)))));
float f126;
if ((pc0_h[7].w < 1.0))
{
(f126 = v17.w);
}
else
{
(f126 = (((v17.z * pc0_h[8].x) + pc0_h[8].y) + (1.0 / ((v17.z * pc0_h[8].z) +
(-pc0_h[8].w)))));
}
float f127;
(f127 = (f125 / f126));
float f128;
(f128 = (((f127 + -1.0) * v115.z) / pc7_h[6].x));
float f129;
(f129 = pow(f128, pc7_h[6].y));
float f130;
(f130 = (((f128 <= 0.0)) ? (0.0) : (f129)));
vec3 v131;
(v131.xyz = mix(pc7_h[2].xyz, pc7_h[1].xyz, vec3(clamp(clamp(f130, 0.0, 1.0),
0.0, 1.0))));
float f132;
if ((pc0_h[7].w < 1.0))
{
(f132 = v17.w);
}
else
{
(f132 = (((v17.z * pc0_h[8].x) + pc0_h[8].y) + (1.0 / ((v17.z * pc0_h[8].z) +
(-pc0_h[8].w)))));
}
float f133;
(f133 = ((f125 + (-f132)) / pc7_h[6].x));
float f134;
(f134 = pow(f133, pc7_h[6].y));
float f135;
(f135 = (((f133 <= 0.0)) ? (0.0) : (f134)));
float f136;
(f136 = clamp((f135 + pc7_h[6].z), 0.0, 1.0));
float f137;
(f137 = clamp((0.69999999 + (-f136)), 0.0, 1.0));
float f138;
(f138 = (f7 * pc7_h[6].w));
vec3 v139;
(v139.xyz = ((((vec3(f127) * (v20 + (-v9))) + v9) + (-v3)) / pc7_h[7].xxx));
vec2 v140;
(v140.x = (f138 * -0.059999999));
(v140.y = (f138 * -0.029999999));
vec2 v141;
(v141.xy = (v83.xy * pc7_h[7].yy));
vec4 v142;
(v142.xyzw = texture(ps0, ((v140 + v139.xy) + v141)));
vec2 v143;
(v143.x = (f138 * 0.059999999));
(v143.y = (f138 * 0.029999999));
vec3 v144;
(v144.xyz = (texture(ps0, (v141 + (v143 + (v139.xy * vec2(1.5, 1.5))))).xyz *
vec3(10.0, 10.0, 10.0)));
float f145;
(f145 = pow(v144.x, 1.4));
float f146;
(f146 = (((v144.x <= 0.0)) ? (0.0) : (f145)));
float f147;
(f147 = pow(v144.y, 1.4));
float f148;
(f148 = (((v144.y <= 0.0)) ? (0.0) : (f147)));
vec2 v149;
(v149.x = f146);
(v149.y = f148);
float f150;
(f150 = pow(v144.z, 1.4));
float f151;
(f151 = (((v144.z <= 0.0)) ? (0.0) : (f150)));
vec3 v152;
(v152.xy = v149);
(v152.z = f151);
vec3 v153;
(v153.xyz = min(v142.xyz, v152));
float f154;
(f154 = dot(v153, vec3(0.30000001, 0.58999997, 0.11)));
vec3 v155;
(v155.x = f154);
(v155.y = f154);
(v155.z = f154);
vec3 v156;
(v156.xyz = (v131 + (((vec3(f137) * (mix(v153, v155, vec3(((1.0 + sin((3.141593 *
f7))) * 0.5))) * pc7_h[7].zzz)) * vec3(0.1, 0.1, 0.1)) * vec3((1.0 + (-f34))))));
float f157;
(f157 = max(abs((1.0 + (-max(0.0, dot(v114, v21))))), 9.9999997e-05));
float f158;
(f158 = pow(f157, 5.0));
float f159;
(f159 = (((f157 <= 0.0)) ? (0.0) : (f158)));
float f160;
(f160 = mix(pc7_h[8].w, pc7_h[8].z, f159));
float f161;
(f161 = (1.0 + (-clamp(f57, 0.0, 1.0))));
float f162;
(f162 = pow(f161, 3.0));
float f163;
(f163 = (((f161 <= 0.0)) ? (0.0) : (f162)));
float f164;
(f164 = pow(f163, 5.0));
float f165;
(f165 = (((f163 <= 0.0)) ? (0.0) : (f164)));
vec3 v166;
(v166.xyz = ((pc7_h[3].xyz * vec3((f165 * (1.0 + (-clamp(v117.z, 0.0, 1.0)))))) *
pc7_h[9].xxx));
vec3 v167;
float f168;
(f168 = length(v114));
(v167.xyz = (v114 / vec3(f168)));
vec3 v169;
(v169.xyz = ((((vec3(dot(v21, v167)) * v167) * vec3(2.0, 2.0, 2.0)) + (-v21)) *
vec3(-1.0, -1.0, -1.0)));
vec2 v170;
(v170.x = v169.x);
(v170.y = v169.y);
vec3 v171;
(v171.xy = v170);
(v171.z = abs(v169.z));
vec3 v172;
(v172.xyz = (-v171));
vec3 v173;
float f174;
(f174 = length(v172));
(v173.xyz = ((v172 / vec3(f174)) * vec3(1.0, 1.0, -1.0)));
vec2 v175;
(v175.x = ((1.0 + (atan(v173.x, (-v173.y)) / 3.141593)) / 2.0));
(v175.y = (acos(v173.z) / 3.141593));
vec4 v176;
(v176.xyz = v166);
(v176.w = pc7_h[9].y);
vec4 v177;
(v177.w = 0.0);
(v177.xyz = textureLod(ps6, (v175 * vec2(1.0, 2.0)), 0.0).xyz);
(v16.xyz = v114);
vec3 v178;
(v178.xyz = clamp(v156, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)));
float f179;
(f179 = max(0.015625, clamp(f160, 0.0, 1.0)));
float f180;
(f180 = clamp(f136, 0.0, 1.0));
float f181;
(f181 = clamp(pc7_h[8].x, 0.0, 1.0));
vec4 v182;
(v182.xyzw = v176);
(v182.xyz = clamp(v166, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)));
(v15.xyz = v182.xyz);
float f183;
(f183 = max(0.015625, clamp(f160, 0.0, 1.0)));
(v14.xyz = vec3(0.0, 0.0, 0.0));
float f184;
(f184 = (0.079999998 * clamp(pc7_h[8].y, 0.0, 1.0)));
vec3 v185;
(v185.xyz = vec3(f184));
vec4 v186;
(v186.xyzw = ((vec4(f183) * vec4(-1.0, -0.0275, -0.57200003, 0.022)) + vec4(1.0,
0.0425, 1.04, -0.039999999)));
vec2 v187;
(v187.xy = ((vec2(-1.04, 1.04) * vec2(((min((v186.x * v186.x), exp2((-9.2799997 *
max(dot(v114, v21), 0.0)))) * v186.x) + v186.y))) + v186.zw));
vec3 v188;
(v188.xyz = ((vec3(f184) * v187.xxx) + vec3((clamp((50.0 * f184), 0.0, 1.0) *
v187.y))));
(f13 = 0.0);
(f12 = 1.0);
if (bool(f0))
{
vec3 v189;
vec3 v190;
vec4 v191;
(v191.w = 1.0);
(v191.xyz = v114);
(v190.x = dot(pc0_h[21], v191));
(v190.y = dot(pc0_h[22], v191));
(v190.z = dot(pc0_h[23], v191));
vec4 v192;
(v192.xyzw = (v114.xyzz * v114.yzzx));
(v189.x = dot(pc0_h[24], v192));
(v189.y = dot(pc0_h[25], v192));
(v189.z = dot(pc0_h[26], v192));
vec3 v193;
(v193.xyz = (max(vec3(0.0, 0.0, 0.0), ((v190 + v189) + (pc0_h[27].xyz *
vec3(((v114.x * v114.x) + (-(v114.y * v114.y))))))) * pc0_h[20].xyz));
(v14.xyz = (v193 * v178));
(f13 = dot(v193, vec3(0.30000001, 0.58999997, 0.11)));
}
float f194;
(f194 = min(1.0, (f13 * 2.0)));
(v14.xyz = (v14 + (mix(v6, vec3(0.0, 0.0, 0.0), vec3((f194 * f194))) * v178)));
bool b195;
(b195 = (f2 > 0.0));
float f196;
vec4 v197;
float f198;
float f199;
vec4 v200;
(v200.xyzw = vec4(1.0, 1.0, 65504.0, 1.0));
(f199 = pc2_h[1].w);
(v197.xyzw = vec4(0.0, 0.0, 0.0, 0.0));
int i201;
(i201 = (((pc2_h[3].w == 2.0)) ? (1) : (0)));
int i202;
(i202 = ((b195) ? (0) : (i201)));
vec4 v203;
(v203.w = 1.0);
(v203.x = v17.x);
(v203.y = v17.y);
(v203.z = v17.w);
vec4 v204;
(v204.xyzw = (pc2_h[(8 + (i202 * 4))] + ((pc2_h[(7 + (i202 * 4))] * v203.zzzz) +
((pc2_h[(6 + (i202 * 4))] * v203.yyyy) + (pc2_h[(5 + (i202 * 4))] * v17.xxxx)))));
(v197.xyzw = v204);
(f198 = float(i202));
float f205;
(f205 = min(v204.z, 0.99998999));
(f196 = 1.0);
if ((((((pc2_h[3].w > 0.0) && (v204.x > 0.0)) && (v204.x < 1.0)) && (v204.y >
0.0)) && (v204.y < 1.0)))
{
vec2 v206;
(v206.xy = ((v204.xy * pc2_h[2].xy) + vec2(-0.5, -0.5)));
vec2 v207;
(v207.xy = fract(v206));
vec2 v208;
(v208.xy = ((floor(v206) + vec2(0.5, 0.5)) * pc2_h[2].zw));
vec3 v209;
(v209.xy = v208);
(v209.z = f198);
vec4 v210;
(v210.xyzw = clamp(((textureGatherOffset(ps8, v209, ivec2(-1, -1)) *
vec4(f199)) + (-vec4(((f205 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec3 v211;
(v211.xy = v208);
(v211.z = f198);
vec4 v212;
(v212.xyzw = clamp(((textureGatherOffset(ps8, v211, ivec2(1, -1)) * vec4(f199))
+ (-vec4(((f205 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0,
1.0)));
vec3 v213;
(v213.xy = v208);
(v213.z = f198);
vec4 v214;
(v214.xyzw = clamp(((textureGatherOffset(ps8, v213, ivec2(-1, 1)) * vec4(f199))
+ (-vec4(((f205 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0,
1.0)));
vec3 v215;
(v215.xy = v208);
(v215.z = f198);
vec4 v216;
(v216.xyzw = clamp(((textureGatherOffset(ps8, v215, ivec2(1, 1)) * vec4(f199))
+ (-vec4(((f205 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0,
1.0)));
vec4 v217;
(v217.x = (v210.w * (1.0 + (-v207.x))));
(v217.y = (v210.x * (1.0 + (-v207.x))));
(v217.z = (v214.w * (1.0 + (-v207.x))));
(v217.w = (v214.x * (1.0 + (-v207.x))));
(v217.x = (v217.x + v210.z));
(v217.y = (v217.y + v210.y));
(v217.z = (v217.z + v214.z));
(v217.w = (v217.w + v214.y));
(v217.x = (v217.x + v212.w));
(v217.y = (v217.y + v212.x));
(v217.z = (v217.z + v216.w));
(v217.w = (v217.w + v216.x));
(v217.x = (v217.x + (v212.z * v207.x)));
(v217.y = (v217.y + (v212.y * v207.x)));
(v217.z = (v217.z + (v216.z * v207.x)));
(v217.w = (v217.w + (v216.y * v207.x)));
vec4 v218;
(v218.yz = vec2(1.0, 1.0));
(v218.x = (1.0 + (-v207.y)));
(v218.w = v207.y);
(f196 = dot(v217, (v218 * vec4(0.1111111, 0.1111111, 0.1111111, 0.1111111))));
}
vec3 v219;
(v219.z = 0.0099999998);
(v219.xy = pc2_h[4].ww);
vec3 v220;
(v220.xyz = clamp((min(v204.xyz, (vec3(1.0, 1.0, 1.0) + (-v204.xyz))) / v219),
vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)));
float f221;
(f221 = length((vec3(1.0, 1.0, 1.0) + (-(v220 * v220)))));
vec4 v222;
(v222.z = 0.0);
(v222.x = f196);
(v222.y = f196);
(v222.w = clamp(f221, 0.0, 1.0));
(v200.xyzw = v222);
(v200.x = mix(f196, 1.0, v222.w));
if ((pc2_h[4].x > 0.0))
{
float f223;
int i224;
(i224 = -1);
vec4 v225;
(v225.xyzw = (pc2_h[24] + ((pc2_h[23] * v20.zzzz) + ((pc2_h[22] * v20.yyyy) +
(pc2_h[21] * v20.xxxx)))));
(v197.xyzw = v225);
if (((((((v225.x > pc2_h[37].x) && (v225.x < pc2_h[37].z)) && (v225.y >
pc2_h[37].y)) && (v225.y < pc2_h[37].w)) && (v225.z > 0.0)) && (v225.z < 1.0)))
{
(i224 = 0);
}
else
{
vec4 v226;
(v226.xyzw = (pc2_h[28] + ((pc2_h[27] * v20.zzzz) + ((pc2_h[26] * v20.yyyy) +
(pc2_h[25] * v20.xxxx)))));
(v197.xyzw = v226);
if (((((((v226.x > pc2_h[38].x) && (v226.x < pc2_h[38].z)) && (v226.y >
pc2_h[38].y)) && (v226.y < pc2_h[38].w)) && (v226.z > 0.0)) && (v226.z < 1.0)))
{
(i224 = 1);
}
}
(f223 = 1.0);
(f196 = 1.0);
if ((i224 >= 0))
{
float f227;
(f227 = min(v197.z, 0.99998999));
(f198 = (pc2_h[45][i224] + pc2_h[3].w));
vec4 v228;
(v228.zw = vec2(0.0, 0.0));
(v228.x = pc2_h[(41 + i224)].x);
(v228.y = pc2_h[(41 + i224)].y);
vec4 v229;
(v229.xyzw = (v197 + v228));
(v197.xyzw = v229);
(v200.z = (float(i224) + 1.0));
vec2 v230;
(v230.xy = ((v229.xy * pc2_h[2].xy) + vec2(-0.5, -0.5)));
vec2 v231;
(v231.xy = fract(v230));
vec2 v232;
(v232.xy = ((floor(v230) + vec2(0.5, 0.5)) * pc2_h[2].zw));
vec3 v233;
(v233.xy = v232);
(v233.z = f198);
vec4 v234;
(v234.xyzw = clamp(((textureGatherOffset(ps8, v233, ivec2(-1, -1)) *
vec4(f199)) + (-vec4(((f227 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec3 v235;
(v235.xy = v232);
(v235.z = f198);
vec4 v236;
(v236.xyzw = clamp(((textureGatherOffset(ps8, v235, ivec2(1, -1)) *
vec4(f199)) + (-vec4(((f227 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec3 v237;
(v237.xy = v232);
(v237.z = f198);
vec4 v238;
(v238.xyzw = clamp(((textureGatherOffset(ps8, v237, ivec2(-1, 1)) *
vec4(f199)) + (-vec4(((f227 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec3 v239;
(v239.xy = v232);
(v239.z = f198);
vec4 v240;
(v240.xyzw = clamp(((textureGatherOffset(ps8, v239, ivec2(1, 1)) *
vec4(f199)) + (-vec4(((f227 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec4 v241;
(v241.x = (v234.w * (1.0 + (-v231.x))));
(v241.y = (v234.x * (1.0 + (-v231.x))));
(v241.z = (v238.w * (1.0 + (-v231.x))));
(v241.w = (v238.x * (1.0 + (-v231.x))));
(v241.x = (v241.x + v234.z));
(v241.y = (v241.y + v234.y));
(v241.z = (v241.z + v238.z));
(v241.w = (v241.w + v238.y));
(v241.x = (v241.x + v236.w));
(v241.y = (v241.y + v236.x));
(v241.z = (v241.z + v240.w));
(v241.w = (v241.w + v240.x));
(v241.x = (v241.x + (v236.z * v231.x)));
(v241.y = (v241.y + (v236.y * v231.x)));
(v241.z = (v241.z + (v240.z * v231.x)));
(v241.w = (v241.w + (v240.y * v231.x)));
vec4 v242;
(v242.yz = vec2(1.0, 1.0));
(v242.x = (1.0 + (-v231.y)));
(v242.w = v231.y);
(f196 = dot(v241, (v242 * vec4(0.1111111, 0.1111111, 0.1111111,
0.1111111))));
(f223 = 0.0);
if ((float(i224) == (pc2_h[4].x + -1.0)))
{
vec3 v243;
(v243.xyz = v229.xyz);
float f244;
if (((((((v229.x > 0.89999998) || (v229.x < 0.1)) || (v229.y > 0.89999998))
|| (v229.y < 0.1)) || (v229.z > 0.89999998)) || (v229.z < 0.1)))
{
vec3 v245;
(v245.xyz = ((v243 + vec3(-0.89999998, -0.89999998, -0.89999998)) /
vec3(0.1, 0.1, 0.1)));
vec3 v246;
(v246.xyz = (v243 / vec3(0.1, 0.1, 0.1)));
(f244 = min((1.0 + (-clamp(max(v245.z, max(v245.x, v245.y)), 0.0, 1.0))),
clamp(min(v246.z, min(v246.y, v246.x)), 0.0, 1.0)));
}
else
{
(f244 = 1.0);
}
(f223 = (1.0 + (-f244)));
}
}
float f247;
(f247 = mix(f196, 1.0, f223));
(f196 = f247);
(v200.x = min(v200.x, f247));
}
else
{
(v200.x = min(v200.x, 1.0));
}
(f12 = v200.x);
vec3 v248;
(v248.xyz = pc2_h[1].xyz);
float f249;
(f249 = max(0.0, dot(v114, pc2_h[1].xyz)));
vec3 v250;
(v250.xyz = (pc2_h[0].xyz * vec3(3.141593, 3.141593, 3.141593)));
float f251;
(f251 = max(max(pc2_h[0].x, pc2_h[0].y), pc2_h[0].z));
if ((f251 > 0.0))
{
vec4 v252;
vec3 v253;
(v253.xyz = (v178 * vec3(0.3183099, 0.3183099, 0.3183099)));
float f254;
(f254 = f249);
float f255;
float f256;
float f257;
(f257 = dot(v21, v248));
float f258;
(f258 = inversesqrt((2.0 + (2.0 * f257))));
float f259;
(f259 = min(0.99989998, clamp(((f249 + dot(v114, v21)) * f258), 0.0, 1.0)));
(f256 = f259);
float f260;
(f260 = clamp((f258 + (f258 * f257)), 0.0, 1.0));
(f255 = f260);
float f261;
(f261 = clamp((abs(clamp(dot(v114, v21), 0.0, 1.0)) + 0.0099999998), 0.0,
1.0));
if ((f181 != 0.0))
{
float f262;
(f262 = f259);
float f263;
(f263 = f260);
float f264;
(f264 = f249);
bool b265;
(b265 = true);
if ((f181 > 0.0))
{
float f266;
(f266 = sqrt((1.0 + (-(f181 * f181)))));
float f267;
(f267 = (((2.0 * f249) * f261) + (-f257)));
if ((f267 >= f266))
{
(f262 = 1.0);
(f263 = abs(f261));
}
else
{
float f268;
(f268 = (f181 * inversesqrt((1.0 + (-(f267 * f267))))));
float f269;
(f269 = (f268 * (f261 + (-(f267 * f249)))));
float f270;
(f270 = (f268 * ((((2.0 * f261) * f261) + -1.0) + (-(f267 * f257)))));
float f271;
(f271 = sqrt(clamp(((((1.0 + (-(f249 * f249))) + (-(f261 * f261))) + (-
(f257 * f257))) + (((2.0 * f249) * f261) * f257)), 0.0, 1.0)));
float f272;
(f272 = (f268 * f271));
float f273;
(f273 = (((f268 * f271) * 2.0) * f261));
float f274;
(f274 = (((f249 * f266) + f261) + f269));
float f275;
(f275 = (((f257 * f266) + 1.0) + f270));
float f276;
(f276 = (f272 * f275));
float f277;
(f277 = (f274 * f275));
float f278;
(f278 = (f273 * f274));
float f279;
(f279 = (f277 * ((-0.5 * f276) + ((0.25 * f273) * f274))));
float f280;
(f280 = (((f276 * f276) + (f278 * (f278 + (-(2.0 * f276))))) + (f274 *
(((((f249 * f266) + f261) * f275) * f275) + (f277 * ((-0.5 * (f275 + (f257 *
f266))) + -0.5))))));
float f281;
(f281 = ((2.0 * f279) / ((f280 * f280) + (f279 * f279))));
float f282;
(f282 = (f281 * f280));
float f283;
(f283 = (1.0 + (-(f281 * f279))));
float f284;
(f284 = ((f249 * f266) + ((f283 * f269) + (f282 * f272))));
(f264 = f284);
float f285;
(f285 = ((f257 * f266) + ((f283 * f270) + (f282 * f273))));
float f286;
(f286 = inversesqrt(((2.0 * f285) + 2.0)));
(f262 = clamp(((f284 + f261) * f286), 0.0, 1.0));
(f263 = clamp((f286 + (f286 * f285)), 0.0, 1.0));
(b265 = false);
}
}
if (b265)
{
(b265 = false);
}
(f256 = f262);
(f255 = f263);
(f254 = f264);
}
float f287;
float f288;
(f288 = (f179 * f179));
(f287 = (f288 * f288));
float f289;
(f289 = min(0.99989998, f256));
float f290;
(f290 = ((((f289 * f287) + (-f289)) * f289) + 1.0));
float f291;
(f291 = sqrt(f287));
float f292;
float f293;
(f293 = (1.0 + (-f255)));
float f294;
(f294 = (f293 * f293));
(f292 = ((f294 * f294) * f293));
float f295;
(f295 = min(1.0, (f179 * 2.0)));
float f296;
(f296 = dot(v114, v21));
float f297;
(f297 = dot(v21, v248));
float f298;
(f298 = inversesqrt((2.0 + (2.0 * f297))));
float f299;
(f299 = min(0.99900001, clamp(((f249 + f296) * f298), 0.0, 1.0)));
float f300;
(f300 = (f295 * f295));
float f301;
(f301 = (f299 * f300));
float f302;
(f302 = (f300 / (clamp((abs((1.0 + (-(f299 * f299)))) + 6.1035164e-05), 0.0,
1.0) + (f301 * f301))));
float f303;
(f303 = clamp((abs(f296) + 0.0099999998), 0.0, 1.0));
float f304;
(f304 = (f295 * f295));
float f305;
float f306;
(f306 = (1.0 + (-clamp((f298 + (f298 * f297)), 0.0, 1.0))));
float f307;
(f307 = (f306 * f306));
(f305 = ((f307 * f307) * f306));
float f308;
(f308 = max(max(v250.x, v250.y), max(v250.z, 9.9999997e-05)));
vec3 v309;
(v309.x = (v250.x / f308));
(v309.y = (v250.y / f308));
(v309.z = (v250.z / f308));
vec3 v310;
(v310.xyz = (v14 + ((vec3((f12 * f249)) * (v250 * ((vec3(1.0, 1.0, 1.0) + v309)
* vec3(0.5, 0.5, 0.5)))) * (v253 + (clamp((((vec3(((f287 / ((3.141593 * f290) *
f290)) * (0.5 * (1.0 / ((f254 * ((f261 * (1.0 + (-f291))) + f291)) + (f261 * ((f254
* (1.0 + (-f291))) + f291))))))) * (vec3((clamp((50.0 * v185.y), 0.0, 1.0) * f292))
+ (vec3((1.0 + (-f292))) * v185))) + clamp((vec3(((min((f302 * f302), 2048.0) /
3.141593) * (0.5 * (1.0 / ((f249 * ((f303 * (1.0 + (-f304))) + f304)) + (f303 *
((f249 * (1.0 + (-f304))) + f304))))))) * (vec3((clamp((50.0 * v15.y), 0.0, 1.0) *
f305)) + (vec3((1.0 + (-f305))) * v15))), vec3(0.0, 0.0, 0.0), vec3(65504.0,
65504.0, 65504.0))) / vec3(5.0, 5.0, 5.0)), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0,
1.0)) * vec3(5.0, 5.0, 5.0))))));
(v14.xyz = v310);
(v252.xyzw = vec4(0.0, 0.0, 0.0, 0.0));
if ((f1 > 0.0))
{
float f311;
(f311 = float((pc4_h[0].y > 0.0)));
float f312;
float f313;
(f313 = pc4_h[0].y);
(f312 = ((bool(f311)) ? (f313) : (f5)));
float f314;
(f314 = ((min(f4, f312) + -1.0) + (-(1.0 + (-(1.2 * log2(max(f183,
9.9999997e-05))))))));
vec4 v315;
(v315.xyzw = vec4(0.0, 0.0, 0.0, 0.0));
if ((f1 == 1.0))
{
(v315.xyzw = textureLod(ps4, (((v17.xy / v17.ww) * pc0_h[29].xy) +
pc0_h[29].wz), f314));
}
(v252.xyzw = v315);
}
else
{
if ((pc1_h[1].z > 0.0))
{
vec4 v316;
(v316.xyzw = vec4(0.0, 0.0, 0.0, 0.0));
float f317;
(f317 = length(in_TEXCOORD8.xy));
float f318;
(f318 = (max(pc1_h[1].z, (f317 * pc1_h[1].x)) + (-f317)));
vec3 v319;
(v319 = reflect((-v21), v16));
vec3 v320;
(v320.xyz = (in_TEXCOORD8.xyz + (normalize(v319) * vec3(f318))));
vec4 v321;
vec4 v322;
vec4 v323;
vec4 v324;
(v324.xyzw = ((pc0_h[0].wwww * pc0_h[14]) + ((pc0_h[0].zzzz * pc0_h[13]) +
((pc0_h[0].yyyy * pc0_h[12]) + (pc0_h[0].xxxx * pc0_h[11])))));
(v321.xyzw = v324);
(v324.xyzw = (pc0_h[1].xxxx * pc0_h[11]));
vec4 v325;
(v325.xyzw = ((pc0_h[1].wwww * pc0_h[14]) + ((pc0_h[1].zzzz * pc0_h[13]) +
((pc0_h[1].yyyy * pc0_h[12]) + v324))));
(v322.xyzw = v325);
(v325.xyzw = (pc0_h[2].xxxx * pc0_h[11]));
vec4 v326;
(v326.xyzw = ((pc0_h[2].wwww * pc0_h[14]) + ((pc0_h[2].zzzz * pc0_h[13]) +
((pc0_h[2].yyyy * pc0_h[12]) + v325))));
(v323.xyzw = v326);
(v326.xyzw = (pc0_h[3].xxxx * pc0_h[11]));
vec4 v327;
(v327.xyzw = (((pc0_h[3].wwww * pc0_h[14]) + ((pc0_h[3].zzzz * pc0_h[13]) +
((pc0_h[3].yyyy * pc0_h[12]) + v326))) + ((v323 * v320.zzzz) + ((v322 * v320.yyyy)
+ (v321 * v320.xxxx)))));
vec3 v328;
(v328.xyz = (v327.xyz / v327.www));
vec2 v329;
(v329.x = (0.5 + (0.5 * v328.x)));
(v329.y = (0.5 + (-(0.5 * v328.y))));
vec2 v330;
(v330.xy = (((v329 * pc0_h[15].xy) + pc0_h[30].xy) * pc0_h[16].zw));
vec4 v331;
(v331.xyzw = texture(ps5, v330));
(v316.xyzw = v331);
(v316.w = 1.0);
vec2 v332;
(v332.xy = abs(((v330 * vec2(2.0, 2.0)) + vec2(-1.0, -1.0))));
float f333;
(f333 = clamp(((1.0 + (-max((v332.x + -0.1), v332.y))) * 5.0), 0.0, 1.0));
bvec3 v334;
(v334.xyz = isnan(v331.xyz));
vec3 v335;
if (v334.x)
{
(v335.x = 0.0);
}
else
{
(v335.x = v316.x);
}
if (v334.y)
{
(v335.y = 0.0);
}
else
{
(v335.y = v316.y);
}
if (v334.z)
{
(v335.z = 0.0);
}
else
{
(v335.z = v316.z);
}
(v316.xyz = v335);
(v316.w = (pc1_h[1].w * f333));
(v252.xyzw = v316);
}
}
(v14.xyz = (v310 + (mix(v177.xyz, v252.xyz, vec3(clamp(v252.w, 0.0, 1.0))) *
v188)));
}
vec3 v336;
(v336.xyz = (v14 + max(v22, vec3(0.0, 0.0, 0.0))));
(v14.xyz = v336);
bool b337;
(b337 = any(not(not(isinf(v336)))));
bool b338;
(b338 = any(isnan(v336)));
if ((b337 || b338))
{
(v14.xyz = vec3(0.0, 0.0, 0.0));
}
vec4 v339;
(v339.xyz = ((v14 * in_TEXCOORD7.www) + in_TEXCOORD7.xyz));
(v339.w = f180);
(v11.xyzw = v339);
(v11.xyz = (v339.xyz * vec3(f8)));
(out_Target0.xyzw = v11);
}