output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 \ldots A_{N}
attempt: N = int(input())
  A = list(map(int, input().split()))
  mod = 10**9 + 7
  
  data = [0]
  for i in range(N):
      data.append(data[-1] ^ A[i])
  
  if data[-1] == 0:
      ans = 0
      zero = [int(data[i] == 0) for i in range(N + 1)]
      for i in range(1, N + 1):
          zero[i] += zero[i - 1]
  
      val = {}
      for i in range(N + 1):
          if data[i] != 0:
              if data[i] not in val:
                  val[data[i]] = []
              val[data[i]].append(i)
  
      for v in val:
          B = 0
          W = 1
          for i in range(len(val[v])):
              j = val[v][i]
              if i != len(val[v]) - 1:
                  B += W
                  W += B * (zero[val[v][i + 1]] - zero[j])
                  B %= mod
                  W %= mod
              else:
                  B += W
                  B %= mod
          ans += B
          ans %= mod
  
      n = data.count(0)
      ans += pow(2, n - 2, mod)
      ans %= mod
      print(ans)
  else:
      val = data[-1]
      que = [0] * 2**20
      dp = [0] * (N + 1)
      dp[0] = 1
      que[0] = 1
      for i in range(1, N + 1):
          j = data[i]
          dp[i] = que[j ^ val]
          que[data[i]] += dp[i]
          que[data[i]] %= mod
  
      print(dp[N] % mod)
  
problem_description: Statement
  
  The _beauty_ of a sequence a of length n is defined as a_1 \oplus \cdots
  \oplus a_n, where \oplus denotes the bitwise exclusive or (XOR).
  
  You are given a sequence A of length N. Snuke will insert zero or more
  partitions in A to divide it into some number of non-empty contiguous
  subsequences.
  
  There are 2^{N-1} possible ways to insert partitions. How many of them divide
  A into sequences whose beauties are all equal? Find this count modulo
  10^{9}+7.
samples: [{"input": "3\n    1 2 3", "output": "3\n    \n\nFour ways of dividing A shown below satisfy the condition. The condition is\nnot satisfied only if A is divided into (1),(2),(3).\n\n  * (1,2,3)\n  * (1),(2,3)\n  * (1,2),(3)\n\n* * *"}, {"input": "3\n    1 2 2", "output": "1\n    \n\n* * *"}, {"input": "32\n    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0", "output": "147483634\n    \n\nFind the count modulo 10^{9}+7.\n\n* * *"}, {"input": "24\n    1 2 5 3 3 6 1 1 8 8 0 3 3 4 6 6 4 0 7 2 5 4 6 2", "output": "292"}]