struct S {
  data : i32,
}

struct strided_arr {
  @size(16)
  el : i32,
}

type Arr = array<strided_arr, 3u>;

struct buf0 {
  x_GLF_uniform_int_values : Arr,
}

@group(0) @binding(0) var<uniform> x_9 : buf0;

var<private> x_GLF_color : vec4<f32>;

fn func_struct_S_i11_i1_(s : ptr<function, S>, x : ptr<function, i32>) {
  let x_103 : i32 = x_9.x_GLF_uniform_int_values[1].el;
  let x_105 : i32 = x_9.x_GLF_uniform_int_values[0].el;
  if ((x_103 == x_105)) {
    return;
  }
  let x_109 : i32 = *(x);
  (*(s)).data = x_109;
  return;
}

fn main_1() {
  var i : i32;
  var arr : array<S, 10u>;
  var index : i32;
  var param : S;
  var param_1 : i32;
  var param_2 : S;
  var param_3 : i32;
  i = 0;
  loop {
    let x_43 : i32 = i;
    if ((x_43 < 10)) {
    } else {
      break;
    }
    let x_46 : i32 = i;
    arr[x_46].data = 0;

    continuing {
      let x_48 : i32 = i;
      i = (x_48 + 1);
    }
  }
  let x_51 : i32 = x_9.x_GLF_uniform_int_values[1].el;
  let x_53 : i32 = x_9.x_GLF_uniform_int_values[0].el;
  if ((x_51 == x_53)) {
    let x_58 : i32 = index;
    let x_60 : S = arr[x_58];
    param = x_60;
    let x_61 : i32 = index;
    param_1 = x_61;
    func_struct_S_i11_i1_(&(param), &(param_1));
    let x_63 : S = param;
    arr[x_58] = x_63;
  } else {
    let x_66 : i32 = x_9.x_GLF_uniform_int_values[0].el;
    let x_68 : S = arr[x_66];
    param_2 = x_68;
    let x_70 : i32 = x_9.x_GLF_uniform_int_values[1].el;
    param_3 = x_70;
    func_struct_S_i11_i1_(&(param_2), &(param_3));
    let x_72 : S = param_2;
    arr[x_66] = x_72;
  }
  let x_75 : i32 = x_9.x_GLF_uniform_int_values[0].el;
  let x_77 : i32 = arr[x_75].data;
  let x_79 : i32 = x_9.x_GLF_uniform_int_values[1].el;
  if ((x_77 == x_79)) {
    let x_85 : i32 = x_9.x_GLF_uniform_int_values[1].el;
    let x_88 : i32 = x_9.x_GLF_uniform_int_values[0].el;
    let x_91 : i32 = x_9.x_GLF_uniform_int_values[0].el;
    let x_94 : i32 = x_9.x_GLF_uniform_int_values[1].el;
    x_GLF_color = vec4<f32>(f32(x_85), f32(x_88), f32(x_91), f32(x_94));
  } else {
    let x_98 : i32 = x_9.x_GLF_uniform_int_values[0].el;
    let x_99 : f32 = f32(x_98);
    x_GLF_color = vec4<f32>(x_99, x_99, x_99, x_99);
  }
  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);
}