[[block]]
struct buf0 {
  resolution : vec2<f32>;
};

var<private> gl_FragCoord : vec4<f32>;

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

var<private> map : array<i32, 256>;

var<private> x_GLF_color : vec4<f32>;

fn main_1() {
  var pos : vec2<f32>;
  var ipos : vec2<i32>;
  var i : i32;
  var p : vec2<i32>;
  var canwalk : bool;
  var v : i32;
  var directions : i32;
  var j : i32;
  var d : i32;
  let x_57 : vec4<f32> = gl_FragCoord;
  let x_60 : vec2<f32> = x_7.resolution;
  pos = (vec2<f32>(x_57.x, x_57.y) / x_60);
  let x_63 : f32 = pos.x;
  let x_67 : f32 = pos.y;
  ipos = vec2<i32>(i32((x_63 * 16.0)), i32((x_67 * 16.0)));
  i = 0;
  loop {
    let x_75 : i32 = i;
    if ((x_75 < 256)) {
    } else {
      break;
    }
    let x_78 : i32 = i;
    map[x_78] = 0;

    continuing {
      let x_80 : i32 = i;
      i = (x_80 + 1);
    }
  }
  p = vec2<i32>(0, 0);
  canwalk = true;
  v = 0;
  loop {
    var x_102 : bool;
    var x_122 : bool;
    var x_142 : bool;
    var x_162 : bool;
    var x_103_phi : bool;
    var x_123_phi : bool;
    var x_143_phi : bool;
    var x_163_phi : bool;
    let x_86 : i32 = v;
    v = (x_86 + 1);
    directions = 0;
    let x_89 : i32 = p.x;
    let x_90 : bool = (x_89 > 0);
    x_103_phi = x_90;
    if (x_90) {
      let x_94 : i32 = p.x;
      let x_97 : i32 = p.y;
      let x_101 : i32 = map[((x_94 - 2) + (x_97 * 16))];
      x_102 = (x_101 == 0);
      x_103_phi = x_102;
    }
    let x_103 : bool = x_103_phi;
    if (x_103) {
      let x_106 : i32 = directions;
      directions = (x_106 + 1);
    }
    let x_109 : i32 = p.y;
    let x_110 : bool = (x_109 > 0);
    x_123_phi = x_110;
    if (x_110) {
      let x_114 : i32 = p.x;
      let x_116 : i32 = p.y;
      let x_121 : i32 = map[(x_114 + ((x_116 - 2) * 16))];
      x_122 = (x_121 == 0);
      x_123_phi = x_122;
    }
    let x_123 : bool = x_123_phi;
    if (x_123) {
      let x_126 : i32 = directions;
      directions = (x_126 + 1);
    }
    let x_129 : i32 = p.x;
    let x_130 : bool = (x_129 < 14);
    x_143_phi = x_130;
    if (x_130) {
      let x_134 : i32 = p.x;
      let x_137 : i32 = p.y;
      let x_141 : i32 = map[((x_134 + 2) + (x_137 * 16))];
      x_142 = (x_141 == 0);
      x_143_phi = x_142;
    }
    let x_143 : bool = x_143_phi;
    if (x_143) {
      let x_146 : i32 = directions;
      directions = (x_146 + 1);
    }
    let x_149 : i32 = p.y;
    let x_150 : bool = (x_149 < 14);
    x_163_phi = x_150;
    if (x_150) {
      let x_154 : i32 = p.x;
      let x_156 : i32 = p.y;
      let x_161 : i32 = map[(x_154 + ((x_156 + 2) * 16))];
      x_162 = (x_161 == 0);
      x_163_phi = x_162;
    }
    let x_163 : bool = x_163_phi;
    if (x_163) {
      let x_166 : i32 = directions;
      directions = (x_166 + 1);
    }
    var x_227 : bool;
    var x_240 : bool;
    var x_279 : bool;
    var x_292 : bool;
    var x_331 : bool;
    var x_344 : bool;
    var x_383 : bool;
    var x_396 : bool;
    var x_228_phi : bool;
    var x_241_phi : bool;
    var x_280_phi : bool;
    var x_293_phi : bool;
    var x_332_phi : bool;
    var x_345_phi : bool;
    var x_384_phi : bool;
    var x_397_phi : bool;
    let x_168 : i32 = directions;
    if ((x_168 == 0)) {
      canwalk = false;
      i = 0;
      loop {
        let x_177 : i32 = i;
        if ((x_177 < 8)) {
        } else {
          break;
        }
        j = 0;
        loop {
          let x_184 : i32 = j;
          if ((x_184 < 8)) {
          } else {
            break;
          }
          let x_187 : i32 = j;
          let x_189 : i32 = i;
          let x_194 : i32 = map[((x_187 * 2) + ((x_189 * 2) * 16))];
          if ((x_194 == 0)) {
            let x_198 : i32 = j;
            p.x = (x_198 * 2);
            let x_201 : i32 = i;
            p.y = (x_201 * 2);
            canwalk = true;
          }

          continuing {
            let x_204 : i32 = j;
            j = (x_204 + 1);
          }
        }

        continuing {
          let x_206 : i32 = i;
          i = (x_206 + 1);
        }
      }
      let x_209 : i32 = p.x;
      let x_211 : i32 = p.y;
      map[(x_209 + (x_211 * 16))] = 1;
    } else {
      let x_215 : i32 = v;
      let x_216 : i32 = directions;
      d = (x_215 % x_216);
      let x_218 : i32 = directions;
      let x_219 : i32 = v;
      v = (x_219 + x_218);
      let x_221 : i32 = d;
      let x_222 : bool = (x_221 >= 0);
      x_228_phi = x_222;
      if (x_222) {
        let x_226 : i32 = p.x;
        x_227 = (x_226 > 0);
        x_228_phi = x_227;
      }
      let x_228 : bool = x_228_phi;
      x_241_phi = x_228;
      if (x_228) {
        let x_232 : i32 = p.x;
        let x_235 : i32 = p.y;
        let x_239 : i32 = map[((x_232 - 2) + (x_235 * 16))];
        x_240 = (x_239 == 0);
        x_241_phi = x_240;
      }
      let x_241 : bool = x_241_phi;
      if (x_241) {
        let x_244 : i32 = d;
        d = (x_244 - 1);
        let x_247 : i32 = p.x;
        let x_249 : i32 = p.y;
        map[(x_247 + (x_249 * 16))] = 1;
        let x_254 : i32 = p.x;
        let x_257 : i32 = p.y;
        map[((x_254 - 1) + (x_257 * 16))] = 1;
        let x_262 : i32 = p.x;
        let x_265 : i32 = p.y;
        map[((x_262 - 2) + (x_265 * 16))] = 1;
        let x_270 : i32 = p.x;
        p.x = (x_270 - 2);
      }
      let x_273 : i32 = d;
      let x_274 : bool = (x_273 >= 0);
      x_280_phi = x_274;
      if (x_274) {
        let x_278 : i32 = p.y;
        x_279 = (x_278 > 0);
        x_280_phi = x_279;
      }
      let x_280 : bool = x_280_phi;
      x_293_phi = x_280;
      if (x_280) {
        let x_284 : i32 = p.x;
        let x_286 : i32 = p.y;
        let x_291 : i32 = map[(x_284 + ((x_286 - 2) * 16))];
        x_292 = (x_291 == 0);
        x_293_phi = x_292;
      }
      let x_293 : bool = x_293_phi;
      if (x_293) {
        let x_296 : i32 = d;
        d = (x_296 - 1);
        let x_299 : i32 = p.x;
        let x_301 : i32 = p.y;
        map[(x_299 + (x_301 * 16))] = 1;
        let x_306 : i32 = p.x;
        let x_308 : i32 = p.y;
        map[(x_306 + ((x_308 - 1) * 16))] = 1;
        let x_314 : i32 = p.x;
        let x_316 : i32 = p.y;
        map[(x_314 + ((x_316 - 2) * 16))] = 1;
        let x_322 : i32 = p.y;
        p.y = (x_322 - 2);
      }
      let x_325 : i32 = d;
      let x_326 : bool = (x_325 >= 0);
      x_332_phi = x_326;
      if (x_326) {
        let x_330 : i32 = p.x;
        x_331 = (x_330 < 14);
        x_332_phi = x_331;
      }
      let x_332 : bool = x_332_phi;
      x_345_phi = x_332;
      if (x_332) {
        let x_336 : i32 = p.x;
        let x_339 : i32 = p.y;
        let x_343 : i32 = map[((x_336 + 2) + (x_339 * 16))];
        x_344 = (x_343 == 0);
        x_345_phi = x_344;
      }
      let x_345 : bool = x_345_phi;
      if (x_345) {
        let x_348 : i32 = d;
        d = (x_348 - 1);
        let x_351 : i32 = p.x;
        let x_353 : i32 = p.y;
        map[(x_351 + (x_353 * 16))] = 1;
        let x_358 : i32 = p.x;
        let x_361 : i32 = p.y;
        map[((x_358 + 1) + (x_361 * 16))] = 1;
        let x_366 : i32 = p.x;
        let x_369 : i32 = p.y;
        map[((x_366 + 2) + (x_369 * 16))] = 1;
        let x_374 : i32 = p.x;
        p.x = (x_374 + 2);
      }
      let x_377 : i32 = d;
      let x_378 : bool = (x_377 >= 0);
      x_384_phi = x_378;
      if (x_378) {
        let x_382 : i32 = p.y;
        x_383 = (x_382 < 14);
        x_384_phi = x_383;
      }
      let x_384 : bool = x_384_phi;
      x_397_phi = x_384;
      if (x_384) {
        let x_388 : i32 = p.x;
        let x_390 : i32 = p.y;
        let x_395 : i32 = map[(x_388 + ((x_390 + 2) * 16))];
        x_396 = (x_395 == 0);
        x_397_phi = x_396;
      }
      let x_397 : bool = x_397_phi;
      if (x_397) {
        let x_400 : i32 = d;
        d = (x_400 - 1);
        let x_403 : i32 = p.x;
        let x_405 : i32 = p.y;
        map[(x_403 + (x_405 * 16))] = 1;
        let x_410 : i32 = p.x;
        let x_412 : i32 = p.y;
        map[(x_410 + ((x_412 + 1) * 16))] = 1;
        let x_418 : i32 = p.x;
        let x_420 : i32 = p.y;
        map[(x_418 + ((x_420 + 2) * 16))] = 1;
        let x_426 : i32 = p.y;
        p.y = (x_426 + 2);
      }
    }
    let x_430 : i32 = ipos.y;
    let x_433 : i32 = ipos.x;
    let x_436 : i32 = map[((x_430 * 16) + x_433)];
    if ((x_436 == 1)) {
      x_GLF_color = vec4<f32>(1.0, 1.0, 1.0, 1.0);
      return;
    }

    continuing {
      let x_440 : bool = canwalk;
      if (x_440) {
      } else {
        break;
      }
    }
  }
  x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 1.0);
  return;
}

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

[[stage(fragment)]]
fn main([[builtin(position)]] gl_FragCoord_param : vec4<f32>) -> main_out {
  gl_FragCoord = gl_FragCoord_param;
  main_1();
  return main_out(x_GLF_color);
}
