#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 3e5+10,mod = 1e9+7;
ll s[N];
ll a[N];
ll l[N][2],r[N][2];
int check(int x)
{
for(int i=30;i>=0;i--)
{
if((x>>i)&1) return i;
}
}
void slove()
{
ll sum=0;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
s[i]=s[i-1]^a[i];
}
for(int i=0;i<=30;i++)
{
l[i][1]=l[i][0]=0;
r[i][1]=r[i][0]=0;
}
for(int i=1;i<=n;i++)
{
for(int j=0;j<=30;j++)
{
l[j][0]=1;
if((s[i]>>j)&1) r[j][1]++;
else r[j][0]++;
}
}
for(int i=1;i<=n;i++)
{
int x=check(a[i]);
sum+=l[x][1]*r[x][1];
sum+=l[x][0]*r[x][0];
cout << x << "\n";
cout << l[x][0] << " " << l[x][1] << " " << r[x][0] << " " << r[x][1] << "\n";
for(int j=0;j<=30;j++)
{
if((s[i]>>j)&1) r[j][1]--;
else r[j][0]--;
}
for(int j=0;j<=30;j++)
{
if((s[i]>>j)&1) l[j][1]++;
else l[j][0]++;
}
}
cout<<sum<<"\n";
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t=1;
cin>>t;
while(t--)
slove();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CmNvbnN0IGludCBOID0gM2U1KzEwLG1vZCA9IDFlOSs3OwpsbCBzW05dOwpsbCBhW05dOwpsbCBsW05dWzJdLHJbTl1bMl07CmludCBjaGVjayhpbnQgeCkKewogICAgIGZvcihpbnQgaT0zMDtpPj0wO2ktLSkKICAgICB7CiAgICAgICAgICBpZigoeD4+aSkmMSkgcmV0dXJuIGk7CiAgICAgfQp9CnZvaWQgc2xvdmUoKQp7CiAgICBsbCBzdW09MDsKICAgIGludCBuOwogICAgY2luPj5uOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgY2luPj5hW2ldOwogICAgICAgIHNbaV09c1tpLTFdXmFbaV07CiAgICB9CiAgICBmb3IoaW50IGk9MDtpPD0zMDtpKyspCiAgICB7CiAgICAgICAgbFtpXVsxXT1sW2ldWzBdPTA7CiAgICAgICAgcltpXVsxXT1yW2ldWzBdPTA7CiAgICB9CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBmb3IoaW50IGo9MDtqPD0zMDtqKyspCiAgICAgICAgewogICAgICAgICAgICBsW2pdWzBdPTE7CiAgICAgICAgICAgIGlmKChzW2ldPj5qKSYxKSByW2pdWzFdKys7CiAgICAgICAgICAgIGVsc2UgcltqXVswXSsrOwogICAgICAgIH0KICAgIH0KICAgIAogICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgaW50IHg9Y2hlY2soYVtpXSk7CiAgICAgICAgc3VtKz1sW3hdWzFdKnJbeF1bMV07CiAgICAgICAgc3VtKz1sW3hdWzBdKnJbeF1bMF07CiAgICAgICAgCiAgICAgICAgY291dCA8PCB4IDw8ICJcbiI7CiAgICAgICAgY291dCA8PCBsW3hdWzBdIDw8ICIgIiA8PCBsW3hdWzFdIDw8ICIgIiA8PCByW3hdWzBdIDw8ICIgIiA8PCByW3hdWzFdIDw8ICJcbiI7CiAgICAgICAgZm9yKGludCBqPTA7ajw9MzA7aisrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoKHNbaV0+PmopJjEpIHJbal1bMV0tLTsKICAgICAgICAgICAgZWxzZSByW2pdWzBdLS07CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaj0wO2o8PTMwO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKChzW2ldPj5qKSYxKSBsW2pdWzFdKys7CiAgICAgICAgICAgIGVsc2UgbFtqXVswXSsrOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PHN1bTw8IlxuIjsKfQppbnQgbWFpbigpCnsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBjb3V0LnRpZShudWxscHRyKTsKICAgIGludCB0PTE7CiAgICBjaW4+PnQ7CiAgICB3aGlsZSh0LS0pCiAgICBzbG92ZSgpOwogICAgcmV0dXJuIDA7Cn0=