#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int n;
  cin >> n;
  vector<int> a(n + 1);
  vector<int> primes = {2,  3,  5,  7,  11, 13, 17, 19, 23, 29,
                        31, 37, 41, 43, 47, 53, 59, 61, 67};
  const int MAX = 70;
  vector<int> cnt(MAX + 1);
  for (int i = 1; i <= n; ++i) {
    cin >> a[i];
    ++cnt[a[i]];
  }
  const int NS = 1 << primes.size();
  vector<vector<int>> nw(MAX + 1, vector<int>(NS));
  nw[0][0] = 1;
  for (int i = 1; i <= MAX; ++i) {
    int t = i;
    int mask = 0;
    for (int j = 0; j < primes.size(); ++j) {
      mask <<= 1;
      while (t % primes[j] == 0) {
        mask ^= 1;
        t /= primes[j];
      }
    }
    long long E = 1;
    for (int j = 1; j < cnt[i]; ++j) {
      E = E * 2 % MOD;
    }
    long long O = 0;
    if (cnt[i]) O = E;
    for (int j = 0; j < NS; ++j) {
      nw[i][j] = nw[i - 1][j] * E % MOD;
      int pv = j ^ mask;
      nw[i][j] = (nw[i][j] + nw[i - 1][pv] * O) % MOD;
    }
  }
  long long ans = nw[MAX][0] - 1;
  cout << ans << endl;
  return 0;
}
