#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long ans = 0;
  char ch = getchar();
  while (!isdigit(ch)) ch = getchar();
  while (isdigit(ch)) ans = (ans << 3) + (ans << 1) + (ch ^ 48), ch = getchar();
  return ans;
}
int n;
long long a[300005], sum[300005], sum1[300005], sum2[300005], ans = 0;
inline long long lowbit(long long x) { return x & -x; }
inline int calc(long long x) {
  int ret = 0;
  while (x) x -= lowbit(x), ++ret;
  return ret;
}
int main() {
  n = read(), sum2[0] = 1;
  for (int i = 1; i <= n; ++i) sum[i] = sum[i - 1] + (a[i] = calc(read()));
  for (int i = 1; i <= n; ++i) sum1[i] = sum1[i - 1] + (sum[i] & 1);
  for (int i = 1; i <= n; ++i) sum2[i] = sum2[i - 1] + ((sum[i] & 1) ^ 1);
  for (int r = 1; r <= n; ++r) {
    long long maxn = a[r];
    int low = max(1, r - 64);
    for (int l = r; l >= low; --l) {
      maxn = max(maxn, a[l]);
      if ((maxn << 1) <= (sum[r] - sum[l - 1]) &&
          (sum[r] & 1) == (sum[l - 1] & 1))
        ++ans;
    }
    if (low == 1) continue;
    ans += sum[r] & 1 ? sum1[low - 2] : sum2[low - 2];
  }
  cout << ans;
  return 0;
}
