#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
void er2(long long n) {
string r;
while(n!=0) {
r = r+string(1,'0'+n%2);
n/=2;
}
int l = r.length();
for(int i = 0; i < l; i++) {
cout << r[l-i-1];
}
if(l == 0) {
cout << "0"<< endl;
} else
{
cout << endl;
};
}
vector<int> er(long long n) {
vector<int> r;
int c=-1;
while(n!=0) {
c++;
if(n%2 == 1) {
r.push_back(c);
}
n/=2;
}
return r;
}
int main(int argc, char** argv) {
int s;
cin >> s;
long long ret[s];
for(int index = 0; index < s; index++) {
int n;
cin >> n;
int a[n];
long long ret2 = 0;
for(int i = 0; i < n+1; i++) {
cin >> a[i];
}
int last = 0;
for(int i = 1; i <= pow(2,n); i++) {
vector<int> ks = er(i);
int f=0;
for(int j = 0; j < ks.size(); j++) {
f=f^a[ks[j]];
}
if(last == f) {
ret2++;
}
last = f;
}
ret[index] = ret2;
}
for(int i = 0; i < s; i++) {
er2(ret[i]);
}
return 0;
}