#include <iostream>
int readLine(){
int lineL, bit, fib=1, num=0;
std::cin>>lineL;
for(int t= 0; t<lineL; t++){
std::cin>>bit;
if(bit == 0){
fib+=fib;
}
else{
fib+=fib;
num+=fib;
}
}
return num;
}
int* readInTab(){
int lenght;
std::cin>>lenght;
int* tab = new int[lenght];
for(int t= 0; t<lenght; t++){
std::cin>>tab[t];
}
return tab;
}
int* resize(int* rtab, int end){
int* tab = new int[end];
delete rtab;
return tab;
}
int* multiply(int* tab, int times){
std::cout<<"-----------\n";
int i=0, end = times;
bool move = false, next = false;
std::cout<<"-----------\n";
int* rtab = new int[end];
std::cout<<"-----------\n";
for(int t = 0; t<times; t++){
std::cout<<"-------^^^^-\n";
do{
std::cout<<"-----------\n";
if(&rtab[t+i] == nullptr){
end++;
rtab = resize(rtab,end);
}
if(move == false){
if(tab[t]+rtab[t]==2){
move = true;
i++;
}
else{
rtab[t]=1;
}
}
if(move == true){
if(tab[t]+rtab[t]<=1){
rtab[t+i]=0;
i++;
}else {
rtab[t+i]=1;
next = true;
}
}
}while(next!=true);
i=0;
}
end++;
resize(rtab,end);
rtab[end]=9;
return rtab;
}
void loop()
{
int num = readLine();
std::cout<<num;
int* tab = readInTab();
int* rtab = multiply(tab,num);
for(int t; rtab[t] != 9; t++)
{
std::cout<<rtab[t];
}
delete tab;
delete rtab;
}
int main(){
int rep;
std::cin>> rep;
for(int t=0; t<rep;t++){
loop();
}
return 0;
}