2
1 31
 2
1 0
 10
450661 128600 993228 725823 293549 33490 843121 903634 556169 448234
 1
1
 5
1 3 5 7 9
 6
524 529 5249 524 529 529
 3
1 2 3
 2
0 1
 55
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 4 5 6 7 8 9 5 6 7 8 9 6 7 8 9 7 8 9 8 9 9
 16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
 3
128 1024 2048
 10
3 3 3 5 5 3 3 3 3 5
 1
0
 2
1 2
 2
0 0
 2
1 1

0
 2
 632
 0
 0
 24
 2
 2
 621247139
 64594
 4
 0
 1
 1
 3
 0

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class D {

    private static final long MOD = 1000000007;
    
    public long solve(int n, int[] a) {
        long[] dp = new long[1<<20];
        for (int i=0; i<n; i++)
            dp[a[i]]++;
        for (int k=1; k<=20; k++)
            for (int i=0; i<1<<20; i++)
                if (((i>>(20-k))&1)==1)
                    dp[i] = dp[i];
                else
                    dp[i] = (dp[i] + dp[i|(1<<(20-k))])%MOD;
        long res = 0;
        for (int i=0; i<1<<20; i++) {
            int bitNum = Long.bitCount(i);
            if (bitNum%2==0)
                res = (res+pow2(dp[i]))%MOD;
            else
                res = (res-pow2(dp[i])+MOD)%MOD;
        }
        return res;
    }
    
    private long pow2(long n) {
        long res = 1;
        long x = 2;
        while (n>0) {
            if ((n&1)==1)
                res = (res*x)%MOD;
            x = (x*x)%MOD;
            n>>=1;
        }
        return res;
    }
    
    public static void main(String args[]) throws IOException {
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(System.in));
            String line = br.readLine();
            int n = Integer.parseInt(line);
            line = br.readLine();
            String[] split = line.split(" ");
            int[] a = new int[n];
            for (int i=0; i<n; i++)
                a[i] = Integer.parseInt(split[i]);
            long res = new D().solve(n, a);
            System.out.println(res);
        } finally {
            if (br!=null)
                br.close();
        }
    }
}