#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAXN = 100000;
const int LOG = 18;
int n, k;
vector<pair<int,int>> adj[MAXN+1];
int parent_[MAXN+1], depth[MAXN+1];
int up[MAXN+1][LOG];
ll net[MAXN+1], sumv[MAXN+1];
int res[MAXN+1]; // res[edge_id]
// 1) DFS to compute parent_, depth, tin/tout if needed, but here just parent/depth
void dfs1(int u,int p){
parent_[u]=p;
for(auto &e:adj[u]){
int v=e.first, id=e.second;
if(v==p) continue;
depth[v]=depth[u]+1;
dfs1(v,u);
}
}
// 2) LCA via binary lifting
int lca(int a,int b){
if(depth[a]<depth[b]) swap(a,b);
int diff=depth[a]-depth[b];
for(int j=0;j<LOG;j++){
if(diff&(1<<j)) a=up[a][j];
}
if(a==b) return a;
for(int j=LOG-1;j>=0;j--){
if(up[a][j]!=up[b][j]){
a=up[a][j];
b=up[b][j];
}
}
return parent_[a];
}
// 3) DFS to accumulate net[] into sumv[], and record edge results
void dfs2(int u,int p){
sumv[u] = net[u];
for(auto &e:adj[u]){
int v=e.first, id=e.second;
if(v==p) continue;
dfs2(v,u);
sumv[u] += sumv[v];
res[id] = sumv[v]; // edge u-v (id) is used sumv[v] times
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>n;
for(int i=0;i<n-1;i++){
int u,v;
cin>>u>>v;
adj[u].push_back({v,i});
adj[v].push_back({u,i});
}
// build parent_ and depth by rooting at 1
depth[1]=0;
dfs1(1,0);
// build up table: up[v][0] = parent_[v]
for(int v=1;v<=n;v++){
up[v][0] = parent_[v];
}
for(int j=1;j<LOG;j++){
for(int v=1;v<=n;v++){
int w = up[v][j-1];
up[v][j] = w ? up[w][j-1] : 0;
}
}
// read k queries, do net-difference
cin>>k;
while(k--){
int a,b;
cin>>a>>b;
int c = lca(a,b);
net[a] += 1;
net[b] += 1;
net[c] -= 2;
}
// accumulate and fill res[]
dfs2(1,0);
// output edge answers in input order
for(int i=0;i<n-1;i++){
cout<<res[i]<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKY29uc3QgaW50IE1BWE4gPSAxMDAwMDA7CmNvbnN0IGludCBMT0cgID0gMTg7CgppbnQgbiwgazsKdmVjdG9yPHBhaXI8aW50LGludD4+IGFkaltNQVhOKzFdOwppbnQgcGFyZW50X1tNQVhOKzFdLCBkZXB0aFtNQVhOKzFdOwppbnQgdXBbTUFYTisxXVtMT0ddOwpsbCBuZXRbTUFYTisxXSwgc3VtdltNQVhOKzFdOwppbnQgcmVzW01BWE4rMV07ICAvLyByZXNbZWRnZV9pZF0KCi8vIDEpIERGUyB0byBjb21wdXRlIHBhcmVudF8sIGRlcHRoLCB0aW4vdG91dCBpZiBuZWVkZWQsIGJ1dCBoZXJlIGp1c3QgcGFyZW50L2RlcHRoCnZvaWQgZGZzMShpbnQgdSxpbnQgcCl7CiAgICBwYXJlbnRfW3VdPXA7CiAgICBmb3IoYXV0byAmZTphZGpbdV0pewogICAgICAgIGludCB2PWUuZmlyc3QsIGlkPWUuc2Vjb25kOwogICAgICAgIGlmKHY9PXApIGNvbnRpbnVlOwogICAgICAgIGRlcHRoW3ZdPWRlcHRoW3VdKzE7CiAgICAgICAgZGZzMSh2LHUpOwogICAgfQp9CgovLyAyKSBMQ0EgdmlhIGJpbmFyeSBsaWZ0aW5nCmludCBsY2EoaW50IGEsaW50IGIpewogICAgaWYoZGVwdGhbYV08ZGVwdGhbYl0pIHN3YXAoYSxiKTsKICAgIGludCBkaWZmPWRlcHRoW2FdLWRlcHRoW2JdOwogICAgZm9yKGludCBqPTA7ajxMT0c7aisrKXsKICAgICAgICBpZihkaWZmJigxPDxqKSkgYT11cFthXVtqXTsKICAgIH0KICAgIGlmKGE9PWIpIHJldHVybiBhOwogICAgZm9yKGludCBqPUxPRy0xO2o+PTA7ai0tKXsKICAgICAgICBpZih1cFthXVtqXSE9dXBbYl1bal0pewogICAgICAgICAgICBhPXVwW2FdW2pdOwogICAgICAgICAgICBiPXVwW2JdW2pdOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBwYXJlbnRfW2FdOwp9CgovLyAzKSBERlMgdG8gYWNjdW11bGF0ZSBuZXRbXSBpbnRvIHN1bXZbXSwgYW5kIHJlY29yZCBlZGdlIHJlc3VsdHMKdm9pZCBkZnMyKGludCB1LGludCBwKXsKICAgIHN1bXZbdV0gPSBuZXRbdV07CiAgICBmb3IoYXV0byAmZTphZGpbdV0pewogICAgICAgIGludCB2PWUuZmlyc3QsIGlkPWUuc2Vjb25kOwogICAgICAgIGlmKHY9PXApIGNvbnRpbnVlOwogICAgICAgIGRmczIodix1KTsKICAgICAgICBzdW12W3VdICs9IHN1bXZbdl07CiAgICAgICAgcmVzW2lkXSA9IHN1bXZbdl07IC8vIGVkZ2UgdS12IChpZCkgaXMgdXNlZCBzdW12W3ZdIHRpbWVzCiAgICB9Cn0KCmludCBtYWluKCl7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGNpbj4+bjsKICAgIGZvcihpbnQgaT0wO2k8bi0xO2krKyl7CiAgICAgICAgaW50IHUsdjsKICAgICAgICBjaW4+PnU+PnY7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh7dixpfSk7CiAgICAgICAgYWRqW3ZdLnB1c2hfYmFjayh7dSxpfSk7CiAgICB9CgogICAgLy8gYnVpbGQgcGFyZW50XyBhbmQgZGVwdGggYnkgcm9vdGluZyBhdCAxCiAgICBkZXB0aFsxXT0wOwogICAgZGZzMSgxLDApOwoKICAgIC8vIGJ1aWxkIHVwIHRhYmxlOiB1cFt2XVswXSA9IHBhcmVudF9bdl0KICAgIGZvcihpbnQgdj0xO3Y8PW47disrKXsKICAgICAgICB1cFt2XVswXSA9IHBhcmVudF9bdl07CiAgICB9CiAgICBmb3IoaW50IGo9MTtqPExPRztqKyspewogICAgICAgIGZvcihpbnQgdj0xO3Y8PW47disrKXsKICAgICAgICAgICAgaW50IHcgPSB1cFt2XVtqLTFdOwogICAgICAgICAgICB1cFt2XVtqXSA9IHcgPyB1cFt3XVtqLTFdIDogMDsKICAgICAgICB9CiAgICB9CgogICAgLy8gcmVhZCBrIHF1ZXJpZXMsIGRvIG5ldC1kaWZmZXJlbmNlCiAgICBjaW4+Pms7CiAgICB3aGlsZShrLS0pewogICAgICAgIGludCBhLGI7CiAgICAgICAgY2luPj5hPj5iOwogICAgICAgIGludCBjID0gbGNhKGEsYik7CiAgICAgICAgbmV0W2FdICs9IDE7CiAgICAgICAgbmV0W2JdICs9IDE7CiAgICAgICAgbmV0W2NdIC09IDI7CiAgICB9CgogICAgLy8gYWNjdW11bGF0ZSBhbmQgZmlsbCByZXNbXQogICAgZGZzMigxLDApOwoKICAgIC8vIG91dHB1dCBlZGdlIGFuc3dlcnMgaW4gaW5wdXQgb3JkZXIKICAgIGZvcihpbnQgaT0wO2k8bi0xO2krKyl7CiAgICAgICAgY291dDw8cmVzW2ldPDwiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0K