# ビット演算なのでビット桁ごとに0と1をチェック # 公式解説の最初をヒントにする # ORが0になるのは、その区間が0だけということ # 各ビット桁で、0だけの区間を見る # たとえば0区間超3なら111223で6組合せ、つまりl(l+1)//2 # 各ビット桁での組合せ総数はN*(N+1)//2、0区間数を引いて、残りに2**dをかけるか N = int(input()) A = list(map(int, input().split())) ans = 0 for d in range(30): temp = [] for a in A: if a>>d & 1 == 1: temp.append(1) else: temp.append(0) zero_interval_count = 0 last = 1 length = 0 for i in range(N): if temp[i] == 1: if last == 0: calc = length*(length+1)//2 zero_interval_count += calc length = 0 last = 1 else: length = 0 last = 1 elif temp[i] == 0: length += 1 last = 0 calc = length*(length+1)//2 zero_interval_count += calc add = pow(2, d)*(N*(N+1)//2-zero_interval_count) ans += add #print('d', d, temp, zero_interval_count, add) print(ans)