#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sd(x) scanf("%d", &(x))
#define pii pair<int, int>
#define F first
#define S second
#define all(c) ((c).begin()), ((c).end())
#define sz(x) ((int)(x).size())
#define ld long double
template<class T,class U>
ostream& operator<<(ostream& os,const pair<T,U>& p){
os<<"("<<p.first<<", "<<p.second<<")";
return os;
}
template<class T>
ostream& operator <<(ostream& os,const vector<T>& v){
os<<"{";
for(int i = 0;i < (int)v.size(); i++){
if(i)os<<", ";
os<<v[i];
}
os<<"}";
return os;
}
#ifdef LOCAL
#define cerr cout
#else
#endif
#define TRACE
#ifdef TRACE
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
cerr << name << " : " << arg1 << std::endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
const char* comma = strchr(names + 1, ',');cerr.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...);
}
#else
#define trace(...)
#endif
int main(){
int t; sd(t);
int sumn = 0;
while(t--){
int n; sd(n);
sumn += n;
vector<vector<int>> adj(n);
vector<int> tree(n);
set<pii> edges;
for(int i = 1; i < n; i++){
int u, v;
sd(u); sd(v);
if(u > v) swap(u, v);
assert(!edges.count({u, v}));
edges.insert({u, v});
assert(min(u, v) >= 1 && max(u, v) <= n && u != v);
u--; v--;
adj[u].push_back(v);
adj[v].push_back(u);
}
vector<int> par(n, -1);
vector<int> vis(n, 0);
function<int(int, int)> dfs = [&](int s, int p){
par[s] = p;
vis[s] = 1;
tree[s] = 1;
for(int v : adj[s]) if(v != p) tree[s] += dfs(v, s);
return tree[s];
};
dfs(0, -1);
for(int i = 0; i < n; i++) assert(vis[i]);
int mx = 0, smx = 0;
for(int v : adj[0]){
if(tree[v] > mx){
smx = mx;
mx = tree[v];
} else if(tree[v] > smx) smx = tree[v];
}
for(int i = 0; i < n; i++){
int mx = 0, smx = 0;
for(int j : adj[i]){
int v = j == par[i] ? n - tree[i] : tree[j];
if(v > mx){
smx = mx;
mx = v;
} else if(v > smx) smx = v;
}
printf((n % 2 == 0 && 2 * mx <= n) ? "1" : "0");
}
printf("\n");
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHNkKHgpIHNjYW5mKCIlZCIsICYoeCkpCiNkZWZpbmUgcGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiNkZWZpbmUgYWxsKGMpICgoYykuYmVnaW4oKSksICgoYykuZW5kKCkpCiNkZWZpbmUgc3ooeCkgKChpbnQpKHgpLnNpemUoKSkKI2RlZmluZSBsZCBsb25nIGRvdWJsZQoKdGVtcGxhdGU8Y2xhc3MgVCxjbGFzcyBVPgpvc3RyZWFtJiBvcGVyYXRvcjw8KG9zdHJlYW0mIG9zLGNvbnN0IHBhaXI8VCxVPiYgcCl7Cglvczw8IigiPDxwLmZpcnN0PDwiLCAiPDxwLnNlY29uZDw8IikiOwoJcmV0dXJuIG9zOwp9Cgp0ZW1wbGF0ZTxjbGFzcyBUPgpvc3RyZWFtJiBvcGVyYXRvciA8PChvc3RyZWFtJiBvcyxjb25zdCB2ZWN0b3I8VD4mIHYpewoJb3M8PCJ7IjsKCWZvcihpbnQgaSA9IDA7aSA8IChpbnQpdi5zaXplKCk7IGkrKyl7CgkJaWYoaSlvczw8IiwgIjsKCQlvczw8dltpXTsKCX0KCW9zPDwifSI7CglyZXR1cm4gb3M7Cn0KCiNpZmRlZiBMT0NBTAojZGVmaW5lIGNlcnIgY291dAojZWxzZQojZW5kaWYKCiNkZWZpbmUgVFJBQ0UKCiNpZmRlZiBUUkFDRQojZGVmaW5lIHRyYWNlKC4uLikgX19mKCNfX1ZBX0FSR1NfXywgX19WQV9BUkdTX18pCnRlbXBsYXRlIDx0eXBlbmFtZSBBcmcxPgp2b2lkIF9fZihjb25zdCBjaGFyKiBuYW1lLCBBcmcxJiYgYXJnMSl7CgljZXJyIDw8IG5hbWUgPDwgIiA6ICIgPDwgYXJnMSA8PCBzdGQ6OmVuZGw7Cn0KdGVtcGxhdGUgPHR5cGVuYW1lIEFyZzEsIHR5cGVuYW1lLi4uIEFyZ3M+CnZvaWQgX19mKGNvbnN0IGNoYXIqIG5hbWVzLCBBcmcxJiYgYXJnMSwgQXJncyYmLi4uIGFyZ3MpewoJY29uc3QgY2hhciogY29tbWEgPSBzdHJjaHIobmFtZXMgKyAxLCAnLCcpO2NlcnIud3JpdGUobmFtZXMsIGNvbW1hIC0gbmFtZXMpIDw8ICIgOiAiIDw8IGFyZzE8PCIgfCAiO19fZihjb21tYSsxLCBhcmdzLi4uKTsKfQojZWxzZQojZGVmaW5lIHRyYWNlKC4uLikKI2VuZGlmCgppbnQgbWFpbigpewogICAgaW50IHQ7IHNkKHQpOwogICAgaW50IHN1bW4gPSAwOwogICAgd2hpbGUodC0tKXsKICAgICAgICBpbnQgbjsgc2Qobik7CiAgICAgICAgc3VtbiArPSBuOwogICAgICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gYWRqKG4pOwogICAgICAgIHZlY3RvcjxpbnQ+IHRyZWUobik7CiAgICAgICAgc2V0PHBpaT4gZWRnZXM7CiAgICAgICAgZm9yKGludCBpID0gMTsgaSA8IG47IGkrKyl7CiAgICAgICAgICAgIGludCB1LCB2OwogICAgICAgICAgICBzZCh1KTsgc2Qodik7CiAgICAgICAgICAgIGlmKHUgPiB2KSBzd2FwKHUsIHYpOwogICAgICAgICAgICBhc3NlcnQoIWVkZ2VzLmNvdW50KHt1LCB2fSkpOwogICAgICAgICAgICBlZGdlcy5pbnNlcnQoe3UsIHZ9KTsKICAgICAgICAgICAgYXNzZXJ0KG1pbih1LCB2KSA+PSAxICYmIG1heCh1LCB2KSA8PSBuICYmIHUgIT0gdik7CiAgICAgICAgICAgIHUtLTsgdi0tOwogICAgICAgICAgICBhZGpbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgICAgIH0KICAgICAgICB2ZWN0b3I8aW50PiBwYXIobiwgLTEpOwogICAgICAgIHZlY3RvcjxpbnQ+IHZpcyhuLCAwKTsKICAgICAgICBmdW5jdGlvbjxpbnQoaW50LCBpbnQpPiBkZnMgPSBbJl0oaW50IHMsIGludCBwKXsKICAgICAgICAgICAgcGFyW3NdID0gcDsKICAgICAgICAgICAgdmlzW3NdID0gMTsKICAgICAgICAgICAgdHJlZVtzXSA9IDE7CiAgICAgICAgICAgIGZvcihpbnQgdiA6IGFkaltzXSkgaWYodiAhPSBwKSB0cmVlW3NdICs9IGRmcyh2LCBzKTsKICAgICAgICAgICAgcmV0dXJuIHRyZWVbc107CiAgICAgICAgfTsKICAgICAgICBkZnMoMCwgLTEpOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIGFzc2VydCh2aXNbaV0pOwogICAgICAgIGludCBteCA9IDAsIHNteCA9IDA7CiAgICAgICAgZm9yKGludCB2IDogYWRqWzBdKXsKICAgICAgICAgICAgaWYodHJlZVt2XSA+IG14KXsKICAgICAgICAgICAgICAgIHNteCA9IG14OwogICAgICAgICAgICAgICAgbXggPSB0cmVlW3ZdOwogICAgICAgICAgICB9IGVsc2UgaWYodHJlZVt2XSA+IHNteCkgc214ID0gdHJlZVt2XTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgICAgIGludCBteCA9IDAsIHNteCA9IDA7CiAgICAgICAgICAgIGZvcihpbnQgaiA6IGFkaltpXSl7CiAgICAgICAgICAgICAgICBpbnQgdiA9IGogPT0gcGFyW2ldID8gbiAtIHRyZWVbaV0gOiB0cmVlW2pdOwogICAgICAgICAgICAgICAgaWYodiA+IG14KXsKICAgICAgICAgICAgICAgICAgICBzbXggPSBteDsKICAgICAgICAgICAgICAgICAgICBteCA9IHY7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYodiA+IHNteCkgc214ID0gdjsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmludGYoKG4gJSAyICA9PSAwICYmIDIgKiBteCA8PSBuKSA/ICIxIiA6ICIwIik7CiAgICAgICAgfQogICAgICAgIHByaW50ZigiXG4iKTsKICAgIH0KfQ==