<?php
define("DIGITS", 60);
$n = int();
$a = ints();

for($j = 0; $j < DIGITS; $j++){
  $dp[$n][$j] = 0;
}
for($i = $n-1; $i >= 0; $i--){
  for($j = 0; $j < DIGITS; $j++){
    $dp[$i][$j] = $dp[$i+1][$j] + (($a[$i] >> $j) & 1);
  }
}
$sum = 0;
for($i = 0; $i < $n - 1; $i++){
  for($j = 0; $j < DIGITS; $j++){
    if((($a[$i] >> $j) & 1) == 0){
      $sum += 2**$j * $dp[$i][$j];
    }else{
      $sum += 2**$j * ($n - $i - $dp[$i][$j]);
    }
    $sum %= 10**9+7;
  }
}
echo $sum;

function str(){
  return trim(fgets(STDIN));
}
function ints(){
  return array_map("intval", explode(" ", trim(fgets(STDIN))));
}
function int(){
  return intval(trim(fgets(STDIN)));
}
function o(...$val){
    if(count($val)==1)$val = array_shift($val);
    $trace = debug_backtrace();
    echo $trace[0]['line'].")";
    if(is_array($val)){
        if(count($val) == 0){
            echo "empty array";
        }elseif(!is_array(current($val))){
            echo "array:";
            echo implode(" ", $val)."\n";
        }else{
            echo "array:array\n";
            foreach($val as $row){
                echo implode(" ", $row)."\n";
            }
        }
    }else{
        echo $val."\n";
    }
}