编程题
### 问题描述
在维多利亚的魔法世界中,小然是一名新晋魔法师。他在研究一种古老神秘的魔法阵,该魔法阵由一个长度为 $M $ 的数字序列构成,这个序列被称为“良序”。一个序列被定义为良序的条件是,对于序列中的每一对数字 $(i, j)$(满足 $1 \leq i < j \leq M$),都满足以下神秘公式:
$$
A_i \mid A_j = (A_i \oplus A_j) + A_j
$$
其中 $\mid$ 表示位或运算,$\oplus$ 表示位异或运算。
注意:当 $M=1$ 时我们仍然视为一个“良序”。
小然现在在研究一种神秘的魔法阵,这个魔法阵由一个大小为 $N$ 的排列 $P$ 构成。这个排列中的每一个数字都是从 $1$ 到 $N$ 的整数,且每个整数都只出现一次。小然想知道,这个魔法阵中有多少个良序子序列。由于答案可能会非常大,所以请你帮助小然计算出这个数目模 $10^9 + 7$ 的结果。
### 输入格式
输入的第一行包含一个整数 $T$,表示测试用例的数量。
接下来的每个测试用例首先包含一个整数 $N$,表示排列的长度。
然后一行包含 $N$ 个由空格隔开的整数,表示排列 $P$ 的元素 $P_1, P_2, \ldots, P_N$。
### 输出格式
对于每个测试用例,输出一行,包含一个整数,表示 $P$ 中良序子序列的数量模 $10^9 + 7$ 的结果。
### 样例输入
```text
4
3
1 2 3
4
3 4 2 1
4
2 3 4 1
5
4 5 2 1 3
```
### 样例输出
```text
3
6
5
6
```
### 说明
在第一个测试用例中:良序子阵为 $[1], [2], [3]$。
在第二个测试用例中:良序子阵为 $[3], [4], [2], [1], [3, 2], [3, 1]$。
### 评测数据范围
$1 \leq T \leq 2000$,$1 \leq N \leq 10^5$,$1 \leq P_i \leq N$。
保证 $P$ 是一个排列。所有测试用例的 $N$ 之和不会超过 $2 \times 10^5$。