你获得了一串 n 个宝石,从左到右排成了一行,其中每颗宝石有自己独特的价值,第 i 颗宝石价值为 vi。如果把这串宝石全部卖出去,可以获得所有宝石价值的总和这么多的钱财。
但是聪明的你发现,宝石内部的能量是不稳定的!对于宝石的某个区间 [l,r](l<r),可以从左右两端向内部施加一次碰撞,来改变宝石的能量分布,使得 [l,r] 内部的所有宝石的价值都变为 vl⊕vr,其中 ⊕ 是二进制异或运算。注意,由于只有一个宝石时无法碰撞,所以要求选择的区间 l<r。
你可以任意决定碰撞操作的位置、顺序和次数,请问你能获得的最大价值是多少?
第一行,一个整数 t (1≤t≤105),表示测试数据的组数。
对于每组测试数据:
第一行输入一个整数 n (1≤n≤105),表示宝石的个数;第二行包含 n 个整数 vi (1≤vi<231),表示第 i 个宝石的价值。
保证所有同一测试点内的 n 总和不超过 105。
对每组测试数据,输出一行整数,表示你能获得的最大价值。
输入样例
7
2
1 2
2
6 2
3
3 5 2
4
2 6 4 12
6
15 1 4 8 2 16
2
9 10
3
24 25 13
输出样例
6
8
21
56
186
19
72