text: #version 120
  vec2 xll_matrixindex_mf2x2_i (mat2 m, int i) { vec2 v; v.x=m[0][i]; v.y=m[1][i]; return v; }
  vec3 xll_matrixindex_mf3x3_i (mat3 m, int i) { vec3 v; v.x=m[0][i]; v.y=m[1][i]; v.z=m[2][i]; return v; }
  vec4 xll_matrixindex_mf4x4_i (mat4 m, int i) { vec4 v; v.x=m[0][i]; v.y=m[1][i]; v.z=m[2][i]; v.w=m[3][i]; return v; }
  #line 5
  #line 9
  #line 15
  uniform float val;
  #line 9
  vec2 mat_downcast( in mat3x2 m ) {
      mat2 m22 = mat2( m);
      return xll_matrixindex_mf2x2_i (m22, 0).xx;
  }
  #line 5
  void vec_downcast( in vec2 f ) {
  }
  #line 1
  void vec_upcast( in vec4 f ) {
  }
  #line 16
  vec4 xlat_main(  ) {
      vec_upcast( vec4( vec2( 0.0), 0.0, 0.0));
      #line 19
      vec_downcast( vec2( vec4( 1.0)));
      mat4 m = mat4( val);
      mat4x2 m2 = mat4x2( m);
      #line 23
      mat2 m3 = mat2( m2);
      mat2 m5 = (m3 + mat2( m2));
      #line 27
      return vec4( (vec2( xll_matrixindex_mf4x4_i (m, 3)) * mat_downcast( mat3x2( m2))), 0.0, 0.0);
  }
  void main() {
      vec4 xl_retval;
      xl_retval = xlat_main( );
      gl_FragData[0] = vec4(xl_retval);
  }
  
  // uniforms:
  // val:<none> type 9 arrsize 0
  