#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <math.h>
#include <complex>
#include <queue>
#include <deque>
#include <stack>
#include <map>
#include <unordered_map>
#include <set>
#include <bitset>
#include <functional>
#include <assert.h>
#define int long
#define ll long long
#define rng(i,a,b) for(int i=int(a);i<int(b);i++)
#define rep(i,b) rng(i,0,b)
#define gnr(i,a,b) for(int i=int(b)-1;i>=int(a);i--)
#define per(i,b) gnr(i,0,b)
#define eb emplace_back
#define all(x) x.begin(),x.end()
#define SZ(x) x.size()
#define fi first
#define se second
const int MOD = 1e9+7;
using namespace std;

template<class t> using vc=vector<t>;
template<class t> using vvc=vc<vc<t>>;

using pi=pair<int,int>;
using vi=vc<int>;

signed main() {
    cin.tie(0);
    ios::sync_with_stdio(0);
    cout<<fixed<<setprecision(20);

    int N; cin >> N;
    int bkt[61],bkt2[61];
    rep(i,61) {bkt[i]=0; bkt2[i]=0;}
    int sum=0;
    int a[N];
    rep(i,N){
        cin >> a[i];
    }
    rep(i,61){
        rep(j,N){
            if((a[j]>>i)&1){
                bkt[i]++;
            } else {
                bkt2[i]++;
            }
        }
        sum=(sum+((bkt[j]*bkt2[j])%MOD*(1LL<<j)%MOD)%MOD)%MOD;
    }
    cout << sum << endl;
}
