func_code_string: #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;   }   