import sys from collections import defaultdict MOD = 10**9 + 7 def main(): N, *rest = map(int, sys.stdin.read().split()) A = rest[:N] # Compute prefix_xor array prefix_xor = [0] * (N + 1) for i in range(1, N + 1): prefix_xor[i] = prefix_xor[i - 1] ^ A[i - 1] # Extract Q = prefix_xor[1..N] Q = prefix_xor[1:] target = Q[-1] if Q else 0 last = defaultdict(int) current_total = 0 res = 0 for i in range(len(Q)): current_value = Q[i] new_sub = (current_total + 1 - last[current_value]) % MOD if current_value == target: res = (res + new_sub) % MOD last[current_value] = (last[current_value] + new_sub) % MOD current_total = (current_total + new_sub) % MOD print(res % MOD) if __name__ == "__main__": main()