#version 110

uniform float blend;
uniform vec4 u;
uniform bool p;

varying vec2 t;

void main()
{
    float blendscale = 1.789;

    vec4 w = u;
    vec4 w_undef;       // test undef
    vec4 w_dep = u;     // test dependent swizzles
    vec4 w_reorder = u; // test reordering
    vec4 w2 = u;
    vec4 w_flow = u;    // test flowControl

    w_reorder.z = blendscale;

    w.wy = t;

    w_reorder.x = blendscale;

    w2.xyzw = u.zwxy;

    w_reorder.y = blendscale;

    w_dep.xy = w2.xz;
    w_dep.zw = t;

    w_undef.xy = u.zw;

    if (p)
        w_flow.x = t.x;
    else
        w_flow.x = t.y;

    gl_FragColor = mix(w_reorder, w_undef, w * w2 * w_dep * w_flow);

    vec2 c = t;
    vec4 rep = vec4(0.0, 0.0, 0.0, 1.0);

    if (c.x < 0.0)
        c.x *= -1.0;

    if (c.x <= 1.0)
        rep.x = 3.4;

    gl_FragColor += rep;
}
