CF2066C Bitwise Slides
Description
You are given an array $ a_1, a_2, \ldots, a_n $ . Also, you are given three variables $ P,Q,R $ , initially equal to zero.
You need to process all the numbers $ a_1, a_2, \ldots, a_n $ , in the order from $ 1 $ to $ n $ . When processing the next $ a_i $ , you must perform exactly one of the three actions of your choice:
1. $ P := P \oplus a_i $
2. $ Q := Q \oplus a_i $
3. $ R := R \oplus a_i $
$ \oplus $ denotes the bitwise XOR operation.
When performing actions, you must follow the main rule: it is necessary that after each action, all three numbers $ P,Q,R $ are not pairwise distinct.
There are a total of $ 3^n $ ways to perform all $ n $ actions. How many of them do not violate the main rule? Since the answer can be quite large, find it modulo $ 10^9 + 7 $ .
Input Format
Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 10^4 $ ). The description of the test cases follows.
The first line of each test case contains an integer $ n $ ( $ 1 \le n \le 2 \cdot 10^5 $ ) — the length of the array $ a $ .
The second line of each test case contains $ n $ integers $ a_1, a_2, \ldots, a_n $ ( $ 1 \le a_i \le 10^9 $ ) — the elements of the array $ a $ .
It is guaranteed that the sum of the values of $ n $ for all test cases does not exceed $ 2 \cdot 10^5 $ .
Output Format
For each test case, output the number of ways to perform all $ n $ actions without violating the main rule, modulo $ 10^9 + 7 $ .
Explanation/Hint
In the first test case, there are 3 valid sequences of operations: PPP, QQQ, RRR.
In the second test case, there are 9 valid sequences of operations: PPPP, PPPQ, PPPR, QQQP, QQQQ, QQQR, RRRP, RRRQ, RRRR.