//// BEGIN COMPILER 0 INFO LOG ////

//// END COMPILER 0 INFO LOG ////


//// BEGIN COMPILER 0 OBJ CODE ////
#extension GL_ARB_gpu_shader5 : enable
uniform vec3 _uiResolution;
uniform float _uiTime;
uniform float _uiTimeDelta;
uniform int _uiFrame;
uniform float _uiFrameRate;
uniform float _uiChannelTime[4];
uniform vec3 _uiChannelResolution[4];
uniform vec4 _uiMouse;
uniform sampler2D _uiChannel0;
uniform sampler2D _uiChannel1;
uniform sampler2D _uiChannel2;
uniform sampler2D _uiChannel3;
uniform vec4 _uiDate;
uniform float _uiSampleRate;
struct _uChannel {
vec3 _uresolution;
float _utime;
};
uniform _uChannel _uiChannel[4];
void _umainImage(out vec4 _ufragColor, in vec2 _ufragCoord);
void main(){
vec4 _ucolor = vec4(0.0, 0.0, 0.0, 1.0);
_umainImage(_ucolor, gl_FragCoord.xy);
(_ucolor.w = 1.0);
(gl_FragColor = _ucolor);
}
mat2 _urot(in float _uth){
float _ucs = cos(_uth);
float _usi = sin(_uth);
return mat2(_ucs, (-_usi), _usi, _ucs);
}
float _uVoronesque(in vec3 _up){
vec3 _ui = floor((_up + dot(_up, vec3(0.33333299, 0.33333299, 0.33333299))));
(_up -= (_ui - dot(_ui, vec3(0.166666, 0.166666, 0.166666))));
vec3 _ui1 = step(0.0, (_up - _up.yzx));
vec3 _ui2 = max(_ui1, (1.0 - _ui1.zxy));
(_ui1 = min(_ui1, (1.0 - _ui1.zxy)));
vec3 _up1 = ((_up - _ui1) + 0.166666);
vec3 _up2 = ((_up - _ui2) + 0.33333299);
vec3 _up3 = (_up - 0.5);
vec3 _urnd = vec3(7.0, 157.0, 113.0);
vec4 _uv = max((0.5 - vec4(dot(_up, _up), dot(_up1, _up1), dot(_up2, _up2), dot(_up3, _up3))), 0.0);
vec4 _ud = vec4(dot(_ui, _urnd), dot((_ui + _ui1), _urnd), dot((_ui + _ui2), _urnd), dot((_ui + 1.0), _urnd));
(_ud = ((fract((sin(_ud) * 262144.0)) * _uv) * 2.0));
((((_uv.x = max(_ud.x, _ud.y)), (_uv.y = max(_ud.z, _ud.w))), (_uv.z = max(min(_ud.x, _ud.y), min(_ud.z, _ud.w)))), (_uv.w = min(_uv.x, _uv.y)));
return (max(_uv.x, _uv.y) - max(_uv.z, _uv.w));
}
void _umainImage(out vec4 _ufragColor, in vec2 _ufragCoord){
vec2 _uuv = (((_ufragCoord.xy - (_uiResolution.xy * 0.5)) / _uiResolution.y) + vec2((0.5 * cos((_uiTime * 0.5))), (0.25 * sin((_uiTime * 0.5)))));
vec3 _urd = normalize(vec3(_uuv, 1.0));
(_urd.xy *= _urot((sin((_uiTime * 0.25)) * 0.5)));
(_urd.xz *= _urot((sin((_uiTime * 0.25)) * 0.5)));
vec3 _ucol = vec3(0.0, 0.0, 0.0);
vec2 _uscale = vec2(0.75, 1.0);
float _upower = 6.0;
float _usDist = max(dot(pow((abs(_urd.xy) * _uscale), vec2(_upower)), vec2(1.0, 1.0)), 1e-16);
(_usDist = (1.0 / pow(_usDist, (1.0 / _upower))));
vec3 _usp = (vec3(0.0, 0.0, (_uiTime * 2.0)) + (_urd * _usDist));
vec3 _usn = normalize(((-sign(_usp)) * vec3(pow((abs(_usp.xy) * _uscale), vec2((_upower - 1.0))), 0.0)));
float _uc = _uVoronesque((_usp * 2.5));
vec3 _ugr = ((vec3(_uVoronesque(((_usp - vec3(0.025, 0.0, 0.0)) * 2.5)), _uVoronesque(((_usp - vec3(0.0, 0.025, 0.0)) * 2.5)), _uVoronesque(((_usp - vec3(0.0, 0.0, 0.025)) * 2.5))) - _uc) / 0.025);
(_ugr -= (_usn * dot(_usn, _ugr)));
(_usn = normalize((_usn + (_ugr * 0.1))));
vec3 _ulp = vec3(0.0, 0.0, ((_uiTime * 2.0) + 3.0));
vec3 _uld = (_ulp - _usp);
float _udist = max(length(_uld), 0.001);
(_uld /= _udist);
float _uatten = min((1.0 / max(((0.75 + (_udist * 0.25)) + ((_udist * _udist) * 0.050000001)), 0.001)), 1.0);
float _udiff = max(dot(_usn, _uld), 0.0);
float _uspec = pow(max(dot(reflect((-_uld), _usn), (-_urd)), 0.0), 16.0);
float _uref = _uVoronesque(((_usp + (reflect(_urd, _usn) * 0.5)) * 2.5));
vec3 _uobjCol = vec3(min((_uc * 1.5), 1.0), pow(_uc, 2.5), pow(_uc, 12.0));
(_ucol = ((((_uobjCol * (((vec3(1.0, 0.97000003, 0.92000002) * _udiff) + (_uref * 0.5)) + 0.25)) + ((vec3(1.0, 0.80000001, 0.89999998) * _uref) * 0.30000001)) + (vec3(1.0, 0.89999998, 0.69999999) * _uspec)) * _uatten));
(_ufragColor = vec4(min(_ucol, 1.0), 1.0));
}

//// END COMPILER 0 OBJ CODE ////


