struct Array {
  values : array<i32, 2>;
};

struct buf0 {
  zero : i32;
};

[[group(0), binding(0)]] var<uniform> x_7 : buf0;

var<private> x_GLF_color : vec4<f32>;

fn main_1() {
  var a : Array;
  var b : Array;
  var one : f32;
  let x_10 : i32 = x_7.zero;
  a.values[x_10] = 1;
  let x_35 : Array = a;
  b = x_35;
  one = 0.0;
  let x_11 : i32 = x_7.zero;
  let x_12 : i32 = b.values[x_11];
  if ((x_12 == 1)) {
    one = 1.0;
  }
  let x_41 : f32 = one;
  x_GLF_color = vec4<f32>(x_41, 0.0, 0.0, 1.0);
  return;
}

struct main_out {
  [[location(0)]]
  x_GLF_color_1 : vec4<f32>;
};

[[stage(fragment)]]
fn main() -> main_out {
  main_1();
  return main_out(x_GLF_color);
}
