# [a, b, c]で計算してみると、a+b+c+ab+bc+ca+abcになる、つまり対称形 # ということは順番によらない # 3つで順番を変えても変わらないなら、Aのすべての順番を自由に変えても変わらないはず # 期待値は無視して、最初から順番に計算すればよいか T = int(input()) mod = 10**9+7 for t in range(T): N = int(input()) A = list(map(int, input().split())) calc = A[0] for i in range(1, N): calc = calc+A[i]+calc*A[i] calc %= mod print(calc)