#include <algorithm>
#include <cstdio>
#include <cmath>
#include <iostream>
#include <queue>
#include <set>
#include <stack>
#include <map>
#include <vector>

#define ll long long
#define si(n) scanf("%d", &n)
#define sc(n) scanf("%c", &n)
#define sl(n) scanf("%lld", &n)
#define sd(n) scanf("%lf", &n)

#define INF (int)1e9
#define LINF (long long)1e18
#define EPS 1e-9

#define gcd __gcd

using namespace std;

#define forall(i,a,b) for(int i=a;i<b;i++)
#define foreach(v, c) for(typeof((c).begin())v=(c).begin();v!=(c).end();++v)

#ifdef DEBUG
#define debug(args...) {cerr<<#args<<" = "; dbg,args; cerr<<endl;}
#else
#define debug(args...) {args;}// Just strip off all debug tokens
#endif
struct debugger {
  template<typename T>
  debugger& operator , (const T& v) {    
    cerr << v << ", ";    
    return *this;    
  }
} dbg;

#define Max(x, y) ((x) > (y) ? (x) : (y))
#define Min(x, y) ((x) > (y) ? (x) : (y))

ll lef[300000];
ll rig[300000];
map <ll, ll> cnt;

ll find(ll* str, const vector <ll>& arr, ll st, ll en, ll curr, ll ind) {
  if (en - st == 0) {
    str[ind] = curr;
    return (ind + 1);
  }
  for (ll j = st + 1; j <= en; ++ j) {
    ll tot = 0;
    for (ll k = st; k < j; ++ k) tot += arr[k];
    ll xx = curr ^ tot;
    ind = find(str, arr, j, en, xx, ind);
  }
  return ind;
}

ll fun(const vector <ll>& arr, ll st, ll en) {
  if (en - st <= 1) return 0;
  if (en - st == 2) {
    if ((arr[st] ^ arr[st + 1]) == 0) return 1;
    else return 0;
  }
  ll mid = (st + en) / 2;
  vector <ll> nxt(en - st - 1);
  for (ll i = st; i < mid - 1; ++ i) nxt[i - st] = arr[i];
  nxt[mid - st - 1] = arr[mid - 1] + arr[mid];
  for (ll i = mid + 1; i < en; ++ i) nxt[i - st - 1] = arr[i];
  ll tot = fun(nxt, 0, en - st - 1);
  ll c1 = find(lef, arr, st, mid, 0, 0);
  ll c2 = find(rig, arr, mid, en, 0, 0);
  cnt.clear();
  for (ll i = 0; i < c1; ++ i) cnt[lef[i]] ++;
  for (ll i = 0; i < c2; ++ i) tot += cnt[rig[i]];
  return tot;
}

int main() {
  ll n;
  cin >> n;
  vector <ll> arr(n);
  for (ll i = 0; i < n; ++ i) cin >> arr[i];
  cout << fun(arr, 0, n) << endl;
  return 0;
}