#include <bits/stdc++.h>
using namespace std;
const long long linf = 1LL << 62;
const int iinf = 1000000009;
const double dinf = 1e17;
const int Mod = 1e9 + 9;
const int maxn = 1000005;
int n;
long long a, b[maxn];
long long dp[3][maxn];
void solve() {
  ios::sync_with_stdio(false);
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a, b[i] = __builtin_popcountll(a);
  long long suf = 0;
  dp[0][n + 1] = 1;
  long long res = 0;
  for (int i = n; i >= 1; i--) {
    long long sum = 0, mx = 0, ret = 0;
    for (int j = i; j <= min(n, i + 64); j++) {
      sum += b[j];
      mx = max(b[j], mx);
      if (mx > sum - mx && sum % 2 == 0) ret--;
    }
    suf += b[i];
    if (suf & 1)
      ret += dp[1][i + 1];
    else
      ret += dp[0][i + 1];
    res += ret;
    dp[0][i] = dp[0][i + 1];
    dp[1][i] = dp[1][i + 1];
    if (suf & 1)
      dp[1][i]++;
    else
      dp[0][i]++;
  }
  cout << res << endl;
}
int main() {
  int t = 1;
  for (int i = 1; i <= t; i++) solve();
  return 0;
}
