For problem statement at 0-999/300-399/340-349/341/problemD.txt this is a correct solution, but verifier at 0-999/300-399/340-349/341/verifierD.go ends with All 125 tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"os"
"strconv"
)
var bit [2][2][1005][1005]uint64
var n int
func update_bit(x, y int, v uint64) {
if x > n || y > n {
return
}
px := x % 2
py := y % 2
for i := x; i <= n; i += i & -i {
for j := y; j <= n; j += j & -j {
bit[px][py][i][j] ^= v
}
}
}
func query_bit(x, y int) uint64 {
if x == 0 || y == 0 {
return 0
}
px := x % 2
py := y % 2
var ans uint64 = 0
for i := x; i > 0; i -= i & -i {
for j := y; j > 0; j -= j & -j {
ans ^= bit[px][py][i][j]
}
}
return ans
}
var buffer []byte = make([]byte, 65536)
var pos, bufLen int
func nextByte() byte {
if pos >= bufLen {
pos = 0
var err error
bufLen, err = os.Stdin.Read(buffer)
if err != nil || bufLen == 0 {
return 0
}
}
b := buffer[pos]
pos++
return b
}
func readInt() int {
var c byte
for {
c = nextByte()
if c >= '0' && c <= '9' {
break
}
if c == 0 {
return 0
}
}
var res int
for c >= '0' && c <= '9' {
res = res*10 + int(c-'0')
c = nextByte()
}
return res
}
func readUint64() uint64 {
var c byte
for {
c = nextByte()
if c >= '0' && c <= '9' {
break
}
if c == 0 {
return 0
}
}
var res uint64
for c >= '0' && c <= '9' {
res = res*10 + uint64(c-'0')
c = nextByte()
}
return res
}
func main() {
n = readInt()
if n == 0 {
return
}
m := readInt()
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
for i := 0; i < m; i++ {
op := readInt()
if op == 1 {
x0 := readInt()
y0 := readInt()
x1 := readInt()
y1 := readInt()
ans := query_bit(x1, y1) ^ query_bit(x0-1, y1) ^ query_bit(x1, y0-1) ^ query_bit(x0-1, y0-1)
out.WriteString(strconv.FormatUint(ans, 10))
out.WriteByte('\n')
} else if op == 2 {
x0 := readInt()
y0 := readInt()
x1 := readInt()
y1 := readInt()
v := readUint64()
update_bit(x0, y0, v)
update_bit(x1+1, y0, v)
update_bit(x0, y1+1, v)
update_bit(x1+1, y1+1, v)
}
}
}
```