
[numthreads(1, 1, 1)]
void main() {
  int j = int(0);
  {
    uint2 tint_loop_idx = (4294967295u).xx;
    int i = int(0);
    while(true) {
      if (all((tint_loop_idx == (0u).xx))) {
        break;
      }
      if ((i < int(2))) {
      } else {
        break;
      }
      bool tint_continue = false;
      switch(i) {
        case int(0):
        {
          bool tint_continue_1 = false;
          switch(j) {
            case int(0):
            {
              tint_continue_1 = true;
              break;
            }
            default:
            {
              break;
            }
          }
          if (tint_continue_1) {
            tint_continue = true;
            break;
          }
          break;
        }
        default:
        {
          break;
        }
      }
      if (tint_continue) {
        {
          uint tint_low_inc = (tint_loop_idx.x - 1u);
          tint_loop_idx.x = tint_low_inc;
          uint tint_carry = uint((tint_low_inc == 4294967295u));
          tint_loop_idx.y = (tint_loop_idx.y - tint_carry);
          i = asint((asuint(i) + asuint(int(2))));
        }
        continue;
      }
      {
        uint tint_low_inc = (tint_loop_idx.x - 1u);
        tint_loop_idx.x = tint_low_inc;
        uint tint_carry = uint((tint_low_inc == 4294967295u));
        tint_loop_idx.y = (tint_loop_idx.y - tint_carry);
        i = asint((asuint(i) + asuint(int(2))));
      }
    }
  }
}

