#include<bits/stdc++.h>
using namespace std;
#define ll long long int
vector<long int> vect[100001];
ll val[100001];
ll rem[100001];
ll res[100001];
vector<long int> leaf;
long int n;
ll gcd(ll x,ll y){ // finding gcd of x and y.
if(y==0)
return x;
return gcd(y,x%y);
}
// calculating the required answer for node (leaf) when the gcd of value of all the node from root to that node is x.
ll cal(ll x,long int node){
ll y=rem[node];
x=gcd(x,y);
return y-x; // required answer would be maximum of (multiple of x)%m.
}
// performing dfs in the tree where parent[x]=y and g is gcd of value of all the nodes from root to x.
void dfs(long int x,long int y,ll g){
g=gcd(g,val[x]);
long int sz=vect[x].size();
for(long int i=0;i<sz;++i){
if(vect[x][i]==y)
continue;
dfs(vect[x][i],x,g);
}
if(sz==1){ // sz=1 means it is a leaf node as it is connected to only 1 node.
if(x!=1){
leaf.push_back(x);
res[x]=cal(g,x); // res array to store answer for each leaf node.
}
}
else if(sz==0 && n==1){
leaf.push_back(x);
res[x]=cal(g,x);
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
//freopen("input12.txt","r",stdin);
//freopen("output12.txt","w",stdout);
int t;
cin>> t;
while(t--){
//long int n;
cin>> n;
for(long int i=1;i<=n;++i)
vect[i].clear();
leaf.clear();
long int x,y;
for(long int i=1;i<n;++i){
cin>> x>> y;
vect[x].push_back(y); // vect is used to construct adjacency matrix of the given tree.
vect[y].push_back(x);
}
for(long int i=1;i<=n;++i)
cin>> val[i]; // val array to store value of each node.
for(long int i=1;i<=n;++i)
cin>> rem[i]; // rem array to store m of each node.
dfs(1,1,val[1]);
sort(leaf.begin(),leaf.end()); // leaf vector to store leaf nodes.
long int sz=leaf.size();
for(long int i=0;i<sz;++i)
cout<< res[leaf[i]]<<" "; // output the answer for each leaf node in increasing order of leaf node number.
cout<<"\n";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAoKdmVjdG9yPGxvbmcgaW50PiB2ZWN0WzEwMDAwMV07CmxsIHZhbFsxMDAwMDFdOwpsbCByZW1bMTAwMDAxXTsKbGwgcmVzWzEwMDAwMV07CnZlY3Rvcjxsb25nIGludD4gbGVhZjsKbG9uZyBpbnQgbjsKCmxsIGdjZChsbCB4LGxsIHkpewkJCQkJCQkvLyBmaW5kaW5nIGdjZCBvZiB4IGFuZCB5LgogICAgaWYoeT09MCkKICAgICAgICByZXR1cm4geDsKICAgIHJldHVybiBnY2QoeSx4JXkpOwp9CgovLyBjYWxjdWxhdGluZyB0aGUgcmVxdWlyZWQgYW5zd2VyIGZvciBub2RlIChsZWFmKSB3aGVuIHRoZSBnY2Qgb2YgdmFsdWUgb2YgYWxsIHRoZSBub2RlIGZyb20gcm9vdCB0byB0aGF0IG5vZGUgaXMgeC4KCmxsIGNhbChsbCB4LGxvbmcgaW50IG5vZGUpewogICAgbGwgeT1yZW1bbm9kZV07CiAgICB4PWdjZCh4LHkpOwogICAgcmV0dXJuIHkteDsJCQkJCQkJCS8vIHJlcXVpcmVkIGFuc3dlciB3b3VsZCBiZSBtYXhpbXVtIG9mIChtdWx0aXBsZSBvZiB4KSVtLgp9CgovLyBwZXJmb3JtaW5nIGRmcyBpbiB0aGUgdHJlZSB3aGVyZSBwYXJlbnRbeF09eSBhbmQgZyBpcyBnY2Qgb2YgdmFsdWUgb2YgYWxsIHRoZSBub2RlcyBmcm9tIHJvb3QgdG8geC4KCnZvaWQgZGZzKGxvbmcgaW50IHgsbG9uZyBpbnQgeSxsbCBnKXsKICAgIGc9Z2NkKGcsdmFsW3hdKTsKICAgIGxvbmcgaW50IHN6PXZlY3RbeF0uc2l6ZSgpOwogICAgZm9yKGxvbmcgaW50IGk9MDtpPHN6OysraSl7CiAgICAgICAgaWYodmVjdFt4XVtpXT09eSkKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgZGZzKHZlY3RbeF1baV0seCxnKTsKICAgIH0KICAgIGlmKHN6PT0xKXsJCQkJCQkJLy8gc3o9MSBtZWFucyBpdCBpcyBhIGxlYWYgbm9kZSBhcyBpdCBpcyBjb25uZWN0ZWQgdG8gb25seSAxIG5vZGUuCiAgICAgICAgaWYoeCE9MSl7CiAgICAgICAgICAgIGxlYWYucHVzaF9iYWNrKHgpOwogICAgICAgICAgICByZXNbeF09Y2FsKGcseCk7CQkJCQkvLyByZXMgYXJyYXkgdG8gc3RvcmUgYW5zd2VyIGZvciBlYWNoIGxlYWYgbm9kZS4KICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKHN6PT0wICYmIG49PTEpewogICAgICAgIGxlYWYucHVzaF9iYWNrKHgpOwogICAgICAgIHJlc1t4XT1jYWwoZyx4KTsKICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIC8vZnJlb3BlbigiaW5wdXQxMi50eHQiLCJyIixzdGRpbik7CiAgICAvL2ZyZW9wZW4oIm91dHB1dDEyLnR4dCIsInciLHN0ZG91dCk7CiAgICBpbnQgdDsKICAgIGNpbj4+IHQ7CiAgICB3aGlsZSh0LS0pewogICAgICAgIC8vbG9uZyBpbnQgbjsKICAgICAgICBjaW4+PiBuOwogICAgICAgIGZvcihsb25nIGludCBpPTE7aTw9bjsrK2kpCiAgICAgICAgICAgIHZlY3RbaV0uY2xlYXIoKTsKICAgICAgICBsZWFmLmNsZWFyKCk7CiAgICAgICAgbG9uZyBpbnQgeCx5OwogICAgICAgIGZvcihsb25nIGludCBpPTE7aTxuOysraSl7CiAgICAgICAgICAgIGNpbj4+IHg+PiB5OwogICAgICAgICAgICB2ZWN0W3hdLnB1c2hfYmFjayh5KTsJCQkJLy8gdmVjdCBpcyB1c2VkIHRvIGNvbnN0cnVjdCBhZGphY2VuY3kgbWF0cml4IG9mIHRoZSBnaXZlbiB0cmVlLgogICAgICAgICAgICB2ZWN0W3ldLnB1c2hfYmFjayh4KTsKICAgICAgICB9CiAgICAgICAgZm9yKGxvbmcgaW50IGk9MTtpPD1uOysraSkKICAgICAgICAgICAgY2luPj4gdmFsW2ldOwkJCQkJLy8gdmFsIGFycmF5IHRvIHN0b3JlIHZhbHVlIG9mIGVhY2ggbm9kZS4KICAgICAgICBmb3IobG9uZyBpbnQgaT0xO2k8PW47KytpKQogICAgICAgICAgICBjaW4+PiByZW1baV07CQkJCQkvLyByZW0gYXJyYXkgdG8gc3RvcmUgbSBvZiBlYWNoIG5vZGUuCiAgICAgICAgZGZzKDEsMSx2YWxbMV0pOwogICAgICAgIHNvcnQobGVhZi5iZWdpbigpLGxlYWYuZW5kKCkpOwkJCQkvLyBsZWFmIHZlY3RvciB0byBzdG9yZSBsZWFmIG5vZGVzLgogICAgICAgIGxvbmcgaW50IHN6PWxlYWYuc2l6ZSgpOwogICAgICAgIGZvcihsb25nIGludCBpPTA7aTxzejsrK2kpCiAgICAgICAgICAgIGNvdXQ8PCByZXNbbGVhZltpXV08PCIgIjsJCQkJLy8gb3V0cHV0IHRoZSBhbnN3ZXIgZm9yIGVhY2ggbGVhZiBub2RlIGluIGluY3JlYXNpbmcgb3JkZXIgb2YgbGVhZiBub2RlIG51bWJlci4KICAgICAgICBjb3V0PDwiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0=