DZY Loves Connecting

Accepts: 16
Submissions: 169
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)
Problem Description
DZY has an unrooted tree consisting of $n$ nodes labeled from $1$ to $n$. DZY likes connected sets on the tree. A connected set $S$ is a set of nodes, such that every two nodes $u,v$ in $S$ can be connected by a path on the tree, and the path should only contain nodes from $S$. Obviously, a set consisting of a single node is also considered a connected set. The size of a connected set is defined by the number of nodes which it contains. DZY wants to know the sum of the sizes of all the connected sets. Can you help him count it? The answer may be large. Please output modulo $10^9 + 7$.
Input
First line contains $t$ denoting the number of testcases. $t$ testcases follow. In each testcase, first line contains $n$. In lines $2 \sim n$, $i$th line contains $p_i$, meaning there is an edge between node $i$ and node $p_i$. ($1\le p_i \le i-1,2\le i\le n$) ($n\ge 1$£¬ sum of $n$ in all testcases does not exceed $200000$)
Output
Output one line for each testcase, modulo $10^9 + 7$.
Sample Input
2
1
5
1
2
2
3
Sample Output
1
42
Hint
In the second sample, the 4 edges are (1,2),(2,3),(2,4),(3,5). All the connected sets are {1},{2},{3},{4},{5},{1,2},{2,3},{2,4},{3,5},{1,2,3},{1,2,4},{2,3,4},{2,3,5},{1,2,3,4},{1,2,3,5},{2,3,4,5},{1,2,3,4,5}. If you need a larger stack size, please use #pragma comment(linker, "/STACK:102400000,102400000") and submit your solution using C++.