var<private> x_GLF_global_loop_count : i32;

var<private> x_GLF_color : vec4<f32>;

fn main_1() {
  var m23 : mat2x3<f32>;
  var m24 : mat2x4<f32>;
  var m32 : mat3x2<f32>;
  var m33 : mat3x3<f32>;
  var m34 : mat3x4<f32>;
  var m42 : mat4x2<f32>;
  var m43 : mat4x3<f32>;
  var m44 : mat4x4<f32>;
  var i : i32;
  var i_1 : i32;
  var i_2 : i32;
  var i_3 : i32;
  var i_4 : i32;
  var i_5 : i32;
  var i_6 : i32;
  var i_7 : i32;
  var i_8 : i32;
  var i_9 : i32;
  var i_10 : i32;
  var i_11 : i32;
  var i_12 : i32;
  var i_13 : i32;
  var i_14 : i32;
  var i_15 : i32;
  var i_16 : i32;
  var i_17 : i32;
  var i_18 : i32;
  var i_19 : i32;
  var i_20 : i32;
  var i_21 : i32;
  var i_22 : i32;
  var i_23 : i32;
  var i_24 : i32;
  var i_25 : i32;
  var i_26 : i32;
  var i_27 : i32;
  var i_28 : i32;
  var i_29 : i32;
  var i_30 : i32;
  var i_31 : i32;
  var i_32 : i32;
  var i_33 : i32;
  var i_34 : i32;
  var i_35 : i32;
  var i_36 : i32;
  var i_37 : i32;
  var sum : f32;
  var r : i32;
  x_GLF_global_loop_count = 0;
  m23 = mat2x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0));
  m24 = mat2x4<f32>(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0));
  m32 = mat3x2<f32>(vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0));
  m33 = mat3x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0));
  m34 = mat3x4<f32>(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0));
  m42 = mat4x2<f32>(vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0));
  m43 = mat4x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0));
  m44 = mat4x4<f32>(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0));
  i = 0;
  loop {
    let x_105 : i32 = i;
    if ((x_105 < 1)) {
    } else {
      break;
    }
    i_1 = 0;
    loop {
      let x_112 : i32 = i_1;
      if ((x_112 < 1)) {
      } else {
        break;
      }
      i_2 = 0;
      loop {
        let x_119 : i32 = i_2;
        if ((x_119 < 1)) {
        } else {
          break;
        }
        i_3 = 0;
        loop {
          let x_126 : i32 = i_3;
          if ((x_126 < 1)) {
          } else {
            break;
          }
          i_4 = 0;
          loop {
            let x_133 : i32 = i_4;
            if ((x_133 < 1)) {
            } else {
              break;
            }
            i_5 = 0;
            loop {
              let x_140 : i32 = i_5;
              if ((x_140 < 1)) {
              } else {
                break;
              }
              i_6 = 0;
              loop {
                let x_147 : i32 = i_6;
                if ((x_147 < 1)) {
                } else {
                  break;
                }
                i_7 = 0;
                loop {
                  let x_154 : i32 = i_7;
                  if ((x_154 < 1)) {
                  } else {
                    break;
                  }
                  i_8 = 0;
                  loop {
                    let x_161 : i32 = i_8;
                    if ((x_161 < 1)) {
                    } else {
                      break;
                    }
                    i_9 = 0;
                    loop {
                      let x_168 : i32 = i_9;
                      if ((x_168 < 1)) {
                      } else {
                        break;
                      }
                      i_10 = 0;
                      loop {
                        let x_175 : i32 = i_10;
                        if ((x_175 < 1)) {
                        } else {
                          break;
                        }
                        i_11 = 0;
                        loop {
                          let x_182 : i32 = i_11;
                          if ((x_182 < 1)) {
                          } else {
                            break;
                          }
                          i_12 = 0;
                          loop {
                            let x_189 : i32 = i_12;
                            if ((x_189 < 1)) {
                            } else {
                              break;
                            }
                            i_13 = 0;
                            loop {
                              let x_196 : i32 = i_13;
                              if ((x_196 < 1)) {
                              } else {
                                break;
                              }
                              i_14 = 0;
                              loop {
                                let x_203 : i32 = i_14;
                                if ((x_203 < 1)) {
                                } else {
                                  break;
                                }
                                i_15 = 0;
                                loop {
                                  let x_210 : i32 = i_15;
                                  if ((x_210 < 1)) {
                                  } else {
                                    break;
                                  }
                                  i_16 = 0;
                                  loop {
                                    let x_217 : i32 = i_16;
                                    if ((x_217 < 1)) {
                                    } else {
                                      break;
                                    }
                                    i_17 = 0;
                                    loop {
                                      let x_224 : i32 = i_17;
                                      if ((x_224 < 1)) {
                                      } else {
                                        break;
                                      }
                                      i_18 = 0;
                                      loop {
                                        let x_231 : i32 = i_18;
                                        if ((x_231 < 1)) {
                                        } else {
                                          break;
                                        }
                                        i_19 = 0;
                                        loop {
                                          let x_238 : i32 = i_19;
                                          if ((x_238 < 1)) {
                                          } else {
                                            break;
                                          }
                                          i_20 = 0;
                                          loop {
                                            let x_245 : i32 = i_20;
                                            if ((x_245 < 1)) {
                                            } else {
                                              break;
                                            }
                                            i_21 = 0;
                                            loop {
                                              let x_252 : i32 = i_21;
                                              if ((x_252 < 1)) {
                                              } else {
                                                break;
                                              }
                                              i_22 = 0;
                                              loop {
                                                let x_259 : i32 = i_22;
                                                if ((x_259 < 1)) {
                                                } else {
                                                  break;
                                                }
                                                i_23 = 0;
                                                loop {
                                                  let x_266 : i32 = i_23;
                                                  if ((x_266 < 1)) {
                                                  } else {
                                                    break;
                                                  }
                                                  i_24 = 0;
                                                  loop {
                                                    let x_273 : i32 = i_24;
                                                    if ((x_273 < 1)) {
                                                    } else {
                                                      break;
                                                    }
                                                    i_25 = 0;
                                                    loop {
                                                      let x_280 : i32 = i_25;
                                                      if ((x_280 < 1)) {
                                                      } else {
                                                        break;
                                                      }
                                                      i_26 = 0;
                                                      loop {
                                                        let x_287 : i32 = i_26;
                                                        if ((x_287 < 1)) {
                                                        } else {
                                                          break;
                                                        }
                                                        i_27 = 0;
                                                        loop {
                                                          let x_294 : i32 = i_27;
                                                          if ((x_294 < 1)) {
                                                          } else {
                                                            break;
                                                          }
                                                          i_28 = 0;
                                                          loop {
                                                            let x_301 : i32 = i_28;
                                                            if ((x_301 < 1)) {
                                                            } else {
                                                              break;
                                                            }
                                                            i_29 = 0;
                                                            loop {
                                                              let x_308 : i32 = i_29;
                                                              if ((x_308 < 1)) {
                                                              } else {
                                                                break;
                                                              }
                                                              i_30 = 0;
                                                              loop {
                                                                let x_315 : i32 = i_30;
                                                                if ((x_315 < 1)) {
                                                                } else {
                                                                  break;
                                                                }
                                                                i_31 = 0;
                                                                loop {
                                                                  let x_322 : i32 = i_31;
                                                                  if ((x_322 < 1)) {
                                                                  } else {
                                                                    break;
                                                                  }
                                                                  i_32 = 0;
                                                                  loop {
                                                                    let x_329 : i32 = i_32;
                                                                    if ((x_329 < 1)) {
                                                                    } else {
                                                                      break;
                                                                    }
                                                                    i_33 = 0;
                                                                    loop {
                                                                      let x_336 : i32 = i_33;
                                                                      if ((x_336 < 1)) {
                                                                      } else {
                                                                        break;
                                                                      }
                                                                      i_34 = 0;
                                                                      loop {
                                                                        let x_343 : i32 = i_34;
                                                                        if ((x_343 < 1)) {
                                                                        } else {
                                                                          break;
                                                                        }
                                                                        i_35 = 0;
                                                                        loop {
                                                                          let x_350 : i32 = i_35;
                                                                          if ((x_350 < 1)) {
                                                                          } else {
                                                                            break;
                                                                          }
                                                                          i_36 = 0;
                                                                          loop {
                                                                            let x_357 : i32 = i_36;
                                                                            if ((x_357 < 1)) {
                                                                            } else {
                                                                              break;
                                                                            }
                                                                            i_37 = 0;
                                                                            loop {
                                                                              let x_364 : i32 = i_37;
                                                                              if ((x_364 < 1)) {
                                                                              } else {
                                                                                break;
                                                                              }
                                                                              loop {
                                                                                let x_371 : i32 = x_GLF_global_loop_count;
                                                                                x_GLF_global_loop_count = (x_371 + 1);

                                                                                continuing {
                                                                                  let x_373 : i32 = x_GLF_global_loop_count;
                                                                                  break if !(x_373 < 98);
                                                                                }
                                                                              }
                                                                              let x_375 : i32 = i_37;
                                                                              let x_376 : i32 = i_37;
                                                                              m23[x_375][x_376] = 1.0;
                                                                              let x_378 : i32 = i_37;
                                                                              let x_379 : i32 = i_37;
                                                                              m24[x_378][x_379] = 1.0;
                                                                              let x_381 : i32 = i_37;
                                                                              let x_382 : i32 = i_37;
                                                                              m32[x_381][x_382] = 1.0;
                                                                              let x_384 : i32 = i_37;
                                                                              let x_385 : i32 = i_37;
                                                                              m33[x_384][x_385] = 1.0;
                                                                              let x_387 : i32 = i_37;
                                                                              let x_388 : i32 = i_37;
                                                                              m34[x_387][x_388] = 1.0;
                                                                              let x_390 : i32 = i_37;
                                                                              let x_391 : i32 = i_37;
                                                                              m42[x_390][x_391] = 1.0;
                                                                              let x_393 : i32 = i_37;
                                                                              let x_394 : i32 = i_37;
                                                                              m43[x_393][x_394] = 1.0;
                                                                              let x_396 : i32 = i_37;
                                                                              let x_397 : i32 = i_37;
                                                                              m44[x_396][x_397] = 1.0;

                                                                              continuing {
                                                                                let x_399 : i32 = i_37;
                                                                                i_37 = (x_399 + 1);
                                                                              }
                                                                            }

                                                                            continuing {
                                                                              let x_401 : i32 = i_36;
                                                                              i_36 = (x_401 + 1);
                                                                            }
                                                                          }

                                                                          continuing {
                                                                            let x_403 : i32 = i_35;
                                                                            i_35 = (x_403 + 1);
                                                                          }
                                                                        }

                                                                        continuing {
                                                                          let x_405 : i32 = i_34;
                                                                          i_34 = (x_405 + 1);
                                                                        }
                                                                      }

                                                                      continuing {
                                                                        let x_407 : i32 = i_33;
                                                                        i_33 = (x_407 + 1);
                                                                      }
                                                                    }

                                                                    continuing {
                                                                      let x_409 : i32 = i_32;
                                                                      i_32 = (x_409 + 1);
                                                                    }
                                                                  }

                                                                  continuing {
                                                                    let x_411 : i32 = i_31;
                                                                    i_31 = (x_411 + 1);
                                                                  }
                                                                }

                                                                continuing {
                                                                  let x_413 : i32 = i_30;
                                                                  i_30 = (x_413 + 1);
                                                                }
                                                              }

                                                              continuing {
                                                                let x_415 : i32 = i_29;
                                                                i_29 = (x_415 + 1);
                                                              }
                                                            }

                                                            continuing {
                                                              let x_417 : i32 = i_28;
                                                              i_28 = (x_417 + 1);
                                                            }
                                                          }

                                                          continuing {
                                                            let x_419 : i32 = i_27;
                                                            i_27 = (x_419 + 1);
                                                          }
                                                        }

                                                        continuing {
                                                          let x_421 : i32 = i_26;
                                                          i_26 = (x_421 + 1);
                                                        }
                                                      }

                                                      continuing {
                                                        let x_423 : i32 = i_25;
                                                        i_25 = (x_423 + 1);
                                                      }
                                                    }

                                                    continuing {
                                                      let x_425 : i32 = i_24;
                                                      i_24 = (x_425 + 1);
                                                    }
                                                  }

                                                  continuing {
                                                    let x_427 : i32 = i_23;
                                                    i_23 = (x_427 + 1);
                                                  }
                                                }

                                                continuing {
                                                  let x_429 : i32 = i_22;
                                                  i_22 = (x_429 + 1);
                                                }
                                              }

                                              continuing {
                                                let x_431 : i32 = i_21;
                                                i_21 = (x_431 + 1);
                                              }
                                            }

                                            continuing {
                                              let x_433 : i32 = i_20;
                                              i_20 = (x_433 + 1);
                                            }
                                          }

                                          continuing {
                                            let x_435 : i32 = i_19;
                                            i_19 = (x_435 + 1);
                                          }
                                        }

                                        continuing {
                                          let x_437 : i32 = i_18;
                                          i_18 = (x_437 + 1);
                                        }
                                      }

                                      continuing {
                                        let x_439 : i32 = i_17;
                                        i_17 = (x_439 + 1);
                                      }
                                    }

                                    continuing {
                                      let x_441 : i32 = i_16;
                                      i_16 = (x_441 + 1);
                                    }
                                  }

                                  continuing {
                                    let x_443 : i32 = i_15;
                                    i_15 = (x_443 + 1);
                                  }
                                }

                                continuing {
                                  let x_445 : i32 = i_14;
                                  i_14 = (x_445 + 1);
                                }
                              }

                              continuing {
                                let x_447 : i32 = i_13;
                                i_13 = (x_447 + 1);
                              }
                            }

                            continuing {
                              let x_449 : i32 = i_12;
                              i_12 = (x_449 + 1);
                            }
                          }

                          continuing {
                            let x_451 : i32 = i_11;
                            i_11 = (x_451 + 1);
                          }
                        }

                        continuing {
                          let x_453 : i32 = i_10;
                          i_10 = (x_453 + 1);
                        }
                      }

                      continuing {
                        let x_455 : i32 = i_9;
                        i_9 = (x_455 + 1);
                      }
                    }

                    continuing {
                      let x_457 : i32 = i_8;
                      i_8 = (x_457 + 1);
                    }
                  }

                  continuing {
                    let x_459 : i32 = i_7;
                    i_7 = (x_459 + 1);
                  }
                }

                continuing {
                  let x_461 : i32 = i_6;
                  i_6 = (x_461 + 1);
                }
              }

              continuing {
                let x_463 : i32 = i_5;
                i_5 = (x_463 + 1);
              }
            }

            continuing {
              let x_465 : i32 = i_4;
              i_4 = (x_465 + 1);
            }
          }

          continuing {
            let x_467 : i32 = i_3;
            i_3 = (x_467 + 1);
          }
        }

        continuing {
          let x_469 : i32 = i_2;
          i_2 = (x_469 + 1);
        }
      }

      continuing {
        let x_471 : i32 = i_1;
        i_1 = (x_471 + 1);
      }
    }

    continuing {
      let x_473 : i32 = i;
      i = (x_473 + 1);
    }
  }
  sum = 0.0;
  r = 0;
  loop {
    let x_479 : i32 = x_GLF_global_loop_count;
    if ((x_479 < 100)) {
    } else {
      break;
    }
    let x_482 : i32 = x_GLF_global_loop_count;
    x_GLF_global_loop_count = (x_482 + 1);
    let x_484 : i32 = r;
    let x_486 : f32 = m23[0][x_484];
    let x_487 : f32 = sum;
    sum = (x_487 + x_486);
    let x_489 : i32 = r;
    let x_491 : f32 = m24[0][x_489];
    let x_492 : f32 = sum;
    sum = (x_492 + x_491);
    let x_494 : i32 = r;
    let x_496 : f32 = m32[0][x_494];
    let x_497 : f32 = sum;
    sum = (x_497 + x_496);
    let x_499 : i32 = r;
    let x_501 : f32 = m33[0][x_499];
    let x_502 : f32 = sum;
    sum = (x_502 + x_501);
    let x_504 : i32 = r;
    let x_506 : f32 = m34[0][x_504];
    let x_507 : f32 = sum;
    sum = (x_507 + x_506);
    let x_509 : i32 = r;
    let x_511 : f32 = m42[0][x_509];
    let x_512 : f32 = sum;
    sum = (x_512 + x_511);
    let x_514 : i32 = r;
    let x_516 : f32 = m43[0][x_514];
    let x_517 : f32 = sum;
    sum = (x_517 + x_516);
    let x_519 : i32 = r;
    let x_521 : f32 = m44[0][x_519];
    let x_522 : f32 = sum;
    sum = (x_522 + x_521);

    continuing {
      let x_524 : i32 = r;
      r = (x_524 + 1);
    }
  }
  let x_526 : f32 = sum;
  if ((x_526 == 8.0)) {
    x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
  } else {
    x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
  }
  return;
}

struct main_out {
  @location(0)
  x_GLF_color_1 : vec4<f32>,
}

@fragment
fn main() -> main_out {
  main_1();
  return main_out(x_GLF_color);
}
