#include <bits/stdc++.h>
using namespace std;
int N_MAX = 300000;
int M_MAX = 60;
int p = 1000000007;
int main() {
  int n, i, j;
  int s[M_MAX], t1[M_MAX], t0[M_MAX];
  long long u, res = 0;
  long long a[N_MAX];
  cin >> n;
  for (i = 0; i < n; i++) cin >> a[i];
  fill(s, s + M_MAX, 0);
  fill(t1, t1 + M_MAX, 0);
  fill(t0, t0 + M_MAX, 0);
  for (i = n - 2; i >= 0; i--) {
    u = a[i + 1];
    for (j = 0; j < M_MAX; j++) {
      if (u % 2 == 0)
        t0[j]++;
      else
        t1[j]++;
      u >>= 1;
    }
    u = a[i];
    for (j = 0; j < M_MAX; j++) {
      if (u % 2 == 0)
        s[j] += t1[j];
      else
        s[j] += t0[j];
      u >>= 1;
    }
  }
  u = 1;
  for (j = 0; j < M_MAX; j++) {
    res += (u * s[j]) % p;
    res %= p;
    u <<= 1;
    u %= p;
  }
  cout << res << endl;
  return 0;
}
