#version 310 es
precision mediump float;

struct Inner {
  ivec3 a;
  int b;
  uvec3 c;
  uint d;
  vec3 e;
  float f;
  mat2x3 g;
  mat3x2 h;
  ivec4 i[4];
};

layout(binding = 0) buffer S_1 {
  Inner arr[];
} s;
void tint_symbol(uint idx) {
  s.arr[idx].a = ivec3(0, 0, 0);
  s.arr[idx].b = 0;
  s.arr[idx].c = uvec3(0u, 0u, 0u);
  s.arr[idx].d = 0u;
  s.arr[idx].e = vec3(0.0f, 0.0f, 0.0f);
  s.arr[idx].f = 0.0f;
  s.arr[idx].g = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
  s.arr[idx].h = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
  ivec4 tint_symbol_1[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
  s.arr[idx].i = tint_symbol_1;
}

layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void main() {
  tint_symbol(gl_LocalInvocationIndex);
  return;
}
