For problem statement at 1000-1999/1700-1799/1730-1739/1731/problemC.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1730-1739/1731/verifierC.go ends with All 20 tests passed can you fix the verifier? ```go
package main
import (
"bytes"
"io"
"math/bits"
"os"
"strconv"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
idx := 0
nextInt := func() int {
for idx < len(data) && (data[idx] < '0' || data[idx] > '9') {
idx++
}
val := 0
for idx < len(data) && data[idx] >= '0' && data[idx] <= '9' {
val = val*10 + int(data[idx]-'0')
idx++
}
return val
}
t := nextInt()
const maxX = 1 << 18
squares := make([]int, 0, 512)
for i := 0; i*i < maxX; i++ {
squares = append(squares, i*i)
}
cnt := make([]int, maxX)
var out bytes.Buffer
for ; t > 0; t-- {
n := nextInt()
limit := 1 << bits.Len(uint(n))
m := 0
for m < len(squares) && squares[m] < limit {
m++
}
used := make([]int, 0, n+1)
cnt[0] = 1
used = append(used, 0)
px := 0
var squareSubarrays int64
for i := 0; i < n; i++ {
px ^= nextInt()
for j := 0; j < m; j++ {
squareSubarrays += int64(cnt[px^squares[j]])
}
if cnt[px] == 0 {
used = append(used, px)
}
cnt[px]++
}
total := int64(n) * int64(n+1) / 2
out.WriteString(strconv.FormatInt(total-squareSubarrays, 10))
out.WriteByte('\n')
for _, v := range used {
cnt[v] = 0
}
}
os.Stdout.Write(out.Bytes())
}
```