MOD = 998244353 from types import GeneratorType def bootstrap(f, stack=[]): def wrappedfunc(*args, **kwargs): if stack: return f(*args, **kwargs) to = f(*args, **kwargs) while True: if type(to) is GeneratorType: stack.append(to) to = next(to) else: stack.pop() if not stack: break to = stack[-1].send(to) return to return wrappedfunc @bootstrap def dfs(n, p): A = [] for v in G[n]: if v == p: continue yield dfs(v, n) dp2[n] += dp[v][2]*2 dp2[n] %= MOD for i in range(3): dp[n][i+1] += dp[v][i] dp[n][i+1] %= MOD A.append(tuple(dp[v])) for t in A: for i in range(3): dp[n][i+1] -= t[i] dp[n][i+1] %= MOD for i in range(3): dp2[n] += t[i]*dp[n][2-i]%MOD dp2[n] %= MOD for i in range(3): dp[n][i+1] += t[i] dp[n][i+1] %= MOD dp2[n] *= half dp2[n] %= MOD dp[n][0] += 1 dp[n][0] %= MOD yield half = pow(2, -1, MOD) for _ in range(int(input())): N = int(input()) G = [[] for _ in range(N)] for _ in range(N-1): u, v = map(int, input().split()) u, v = u-1, v-1 G[u].append(v) G[v].append(u) dp = [[0]*4 for _ in range(N)] dp2 = [0]*N dfs(0, -1) print(sum(dp2)%MOD)