include<bits/stdc++.h>
using namespace std;
define int long long
int T; signed main(){ cin>>T; while(T--){ int n; cin>>n; vector odd,even; int maxn=0; for(int i=1;i<=n;i++){ int x; cin>>x; if(x%2==1) { maxn=max(maxn,x); odd.push_back(x); } else even.push_back(x); } sort(odd.begin(),odd.end(),greater()); sort(even.begin(),even.end(),greater()); vector sum(even.size()+10,0); for(int i=1;i<=(int)even.size();i++){ sum[i]=sum[i-1]+even[i-1]; } if(odd.size()==0){ for(int i=1;i<=n;i++){ cout<<0<<" "; } cout<<endl; continue; } for(int k=1;k<=n;k++){ int r=min((int)even.size(),k-1); if(r<0) { cout<<0<<" "; continue; } int last=k-1-r; int ans=0,ok=0; if(last%2==0){ if(last<=(int)odd.size()-1){ ans=maxn+sum[r]; ok=1; } } else{ if(r<=(int)even.size()-1 && last<=(int)odd.size()){ ans=maxn+sum[r]; ok=1; } } if(ok){ cout<<ans<<" "; } else{ r-=1; if(r<0){ cout<<0<<" "; continue; } last=k-1-r; if(last%2==0){ if(last<=(int)odd.size()-1){ ans=maxn+sum[r]; ok=1; } } else{ if(r<=(int)even.size()-1 && last<=(int)odd.size()){ ans=maxn+sum[r]; ok=1; } } cout<<ans<<" ";
} } cout<<endl; } return 0; }



