#include <bits/stdc++.h>
using namespace std;
const long long infll = (1LL << 60) - 1;
const int inf = (1 << 30) - 1;
long long gcd(long long x, long long y) {
  long long r = x % y;
  if (r == 0)
    return y;
  else
    return gcd(y, r);
}
long long lcm(long long x, long long y) { return x * y / gcd(x, y); }
long long getnum(vector<int> &x) {
  int y = 0;
  for (size_t i = 0; i < 60; i++) {
    y += (1ll << i) * x[i];
  }
  return y;
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int n, dm = 60;
  cin >> n;
  vector<long long> a(n);
  vector<vector<int> > s(dm);
  vector<int> ss(60, 0);
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < dm; i++) {
    s[i].push_back((a[0] >> i) % 2);
    for (int j = 1; j < n; j++) {
      int d = (a[j] >> i) % 2;
      s[i].push_back(s[i][j - 1] + d);
    }
  }
  for (int i = 0; i < n - 1; i++) {
    for (int j = 0; j < dm; j++) {
      if ((a[i] >> j) % 2)
        ss[j] += (n - 1 - i) - (s[j][n - 1] - s[j][i]);
      else
        ss[j] += (s[j][n - 1] - s[j][i]);
    }
  }
  long long d = 1e9 + 7;
  long long ans = 0;
  for (int i = 0; i < dm; i++) {
    ans += ((1ll << i) % d * ss[i] % d) % d;
  }
  cout << ans % d << endl;
}
