G. Сумма Фибоначчи
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дан массив s, состоящий из n неотрицательных целых чисел.

Набор из 5 чисел (a, b, c, d, e) назовём корректным если:

  • 1 ≤ a, b, c, d, e ≤ n
  • (sa | sb) & sc & (sd ^ se) = 2i для некоторого целого i.
  • sa & sb = 0

Здесь '|' обозначает побитовое ИЛИ, '&' обозначает побитовое И, '^' обозначает побитовое исключающее ИЛИ.

Найдите сумму f(sa|sb) * f(sc) * f(sd^se) по всем корректным наборам (a, b, c, d, e), где f(i) обозначает i-е число Фибоначчи (f(0) = 0, f(1) = 1, f(i) = f(i - 1) + f(i - 2)).

Так как ответ может быть очень большим выведите его остаток от деления на 109 + 7.

Входные данные

В первой строке содержится целое число n (1 ≤ n ≤ 106).

Во второй строке содержатся n целых чисел si (0 ≤ si < 217).

Выходные данные

Выведите требуемую сумму по модулю 109 + 7.

Примеры
Входные данные
2
1 2
Выходные данные
32
Входные данные
3
7 4 1
Выходные данные
3520
Входные данные
10
1 3 0 7 3 7 6 5 7 5
Выходные данные
1235424
Входные данные
10
50 9 11 44 39 40 5 39 23 7
Выходные данные
113860062