#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define pii pair<int,int>
#define vi vector<int>
#define vii vector<pii>
#define F first
#define S second
#define pb push_back
#define pob pop_back
#define mp make_pair
#define rep(i,a,b) for(int i=a;i<b;i++)
#define repd(i,a,b) for(int i=a;i>=b;i--)
#define read(n) cin>>n
#define print(n) cout<<n<<" ";
#define lowBound(v,x) lower_bound(v.begin(),v.end(),x)-v.begin()
#define upBound(v,x) upper_bound(v.begin(),v.end(),x)-v.begin()
#define all(v) v.begin(),v.end()
#define endl "\n"
int mod=1e9+7;
void sol(){
int n;
cin>>n;
map<int,int> m1,m2,m3;
int k = n-1;
int w,t=0;
if(k%2==0){
w=k/2;
t=0;
}else{
w=(k-1)/2;
t=1;
}
rep(i,1,n+1){
int j=i+1;
while(j<=n && m1[i]<w){
cout<<1<<" ";
m1[i]++;
m3[j]++;
j++;
}
while(j<=n && m2[i]<t){
cout<<0<<" ";
m2[i]++;
m2[j]++;
j++;
}
while(j<=n){
cout<<-1<<" ";
m1[j]++;
m3[i]++;
j++;
}
}
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
ll t=1;
read(t);
while(t--){
sol();
cout<<"\n";
}
return 0;
}
/*
_______________________________________Input size Expected time complexity____________________________
n = 10 O(n!)
n = 20 O(2n)
n = 500 O(n3)
n = 5000 O(n2)
n = 106 O(n log n) or O(n)
n is large O(1) or O(log n)
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogCiNkZWZpbmUJCQkJCQlpbnQgCQkJCQlsb25nIGxvbmcKI2RlZmluZQkJCQkJCWxsIAkJCQkJCWxvbmcgbG9uZwojZGVmaW5lCQkJCQkJcGlpIAkJCQkJcGFpcjxpbnQsaW50PgojZGVmaW5lCQkJCQkJdmkgCSAJCQkJCXZlY3RvcjxpbnQ+CiNkZWZpbmUJCQkJCQl2aWkJCQkJCQl2ZWN0b3I8cGlpPiAgCiNkZWZpbmUJCQkJCQlGCQkJCQkJZmlyc3QKI2RlZmluZQkJCQkJCVMgCQkJCQkJc2Vjb25kCiNkZWZpbmUJCQkJCQlwYgkJCQkJCXB1c2hfYmFjawojZGVmaW5lCQkJCQkJcG9iCQkJCQkJcG9wX2JhY2sKI2RlZmluZQkJCQkJCW1wCQkJCQkJbWFrZV9wYWlyCiNkZWZpbmUJCQkJCQlyZXAoaSxhLGIpCQkJCWZvcihpbnQgaT1hO2k8YjtpKyspCiNkZWZpbmUJCQkJCQlyZXBkKGksYSxiKQkJCQlmb3IoaW50IGk9YTtpPj1iO2ktLSkKI2RlZmluZQkJCQkJCXJlYWQobikJCQkJCWNpbj4+biAKI2RlZmluZQkJCQkJCXByaW50KG4pCQkJCWNvdXQ8PG48PCIgIjsKI2RlZmluZQkJCQkJCWxvd0JvdW5kKHYseCkJCQlsb3dlcl9ib3VuZCh2LmJlZ2luKCksdi5lbmQoKSx4KS12LmJlZ2luKCkKI2RlZmluZQkJCQkJCXVwQm91bmQodix4KQkJCXVwcGVyX2JvdW5kKHYuYmVnaW4oKSx2LmVuZCgpLHgpLXYuYmVnaW4oKQojZGVmaW5lCQkJCQkJYWxsKHYpCQkJCQl2LmJlZ2luKCksdi5lbmQoKQojZGVmaW5lCQkJCQkJZW5kbAkJCQkJIlxuIiAKaW50IG1vZD0xZTkrNzsgCgp2b2lkIHNvbCgpewogICAgaW50IG47CiAgICBjaW4+Pm47CiAgICBtYXA8aW50LGludD4gbTEsbTIsbTM7CiAgICBpbnQgayA9IG4tMTsKICAgIGludCB3LHQ9MDsKICAgIGlmKGslMj09MCl7CiAgICAJdz1rLzI7CiAgICAJdD0wOwogICAgfWVsc2V7CiAgICAJdz0oay0xKS8yOwogICAgCXQ9MTsKICAgIH0KICAgIHJlcChpLDEsbisxKXsKICAgIAlpbnQgaj1pKzE7CiAgICAJd2hpbGUoajw9biAmJiBtMVtpXTx3KXsKICAgIAkJY291dDw8MTw8IiAiOwogICAgCQltMVtpXSsrOwogICAgCQltM1tqXSsrOwogICAgCQlqKys7CiAgICAJfQogICAgCXdoaWxlKGo8PW4gJiYgbTJbaV08dCl7CiAgICAJCWNvdXQ8PDA8PCIgIjsKICAgIAkJbTJbaV0rKzsKICAgIAkJbTJbal0rKzsKICAgIAkJaisrOwogICAgCX0KICAgIAl3aGlsZShqPD1uKXsKICAgIAkJY291dDw8LTE8PCIgIjsKICAgIAkJbTFbal0rKzsKICAgIAkJbTNbaV0rKzsKICAgIAkJaisrOwogICAgCX0KICAgIH0KfQogCnNpZ25lZCBtYWluKCl7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWNpbi50aWUoMCk7CglsbCB0PTE7CglyZWFkKHQpOwoJd2hpbGUodC0tKXsKCQlzb2woKTsKCQljb3V0PDwiXG4iOwoJfQoJcmV0dXJuIDA7Cn0KIAogCiAKLyoKIApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19JbnB1dCBzaXplIEV4cGVjdGVkIHRpbWUgY29tcGxleGl0eV9fX19fX19fX19fX19fX19fX19fX19fX19fX18KbiA9IDEwIAkJCQlPKG4hKQpuID0gMjAgCQkJCU8oMm4pCm4gPSA1MDAgCQkJTyhuMykKbiA9IDUwMDAgCQkJTyhuMikKbiA9IDEwNiAJCQlPKG4gbG9nIG4pIG9yIE8obikKbiBpcyBsYXJnZSAJCQlPKDEpIG9yIE8obG9nIG4pCiov