#version 450

flat in int   i1;
flat in ivec2 i2;
flat in ivec3 i3;
flat in ivec4 i4;

flat in uint  u1;
flat in uvec2 u2;
flat in uvec3 u3;
flat in uvec4 u4;

in float f1;
in vec2  f2;
in vec3  f3;
in vec4  f4;

out vec4 fragColor;

void main()
{
	ivec4 idata = ivec4(0);
	idata.x     += floatBitsToInt(f1);
	idata.xy    += floatBitsToInt(f2);
	idata.xyz   += floatBitsToInt(f3);
	idata       += floatBitsToInt(f4);

	uvec4 udata = uvec4(0);
	udata.x     += floatBitsToUint(f1);
	udata.xy    += floatBitsToUint(f2);
	udata.xyz   += floatBitsToUint(f3);
	udata       += floatBitsToUint(f4);

	vec4 fdata = vec4(0.0);
	fdata.x     += intBitsToFloat(i1);
	fdata.xy    += intBitsToFloat(i2);
	fdata.xyz   += intBitsToFloat(i3);
	fdata       += intBitsToFloat(i4);
    fdata.x     += uintBitsToFloat(u1);
	fdata.xy    += uintBitsToFloat(u2);
	fdata.xyz   += uintBitsToFloat(u3);
	fdata       += uintBitsToFloat(u4);

    fragColor = (idata == udata) ? fdata : fdata + vec4(0.2);
}