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.util.Scanner;


public class Main {
    private static final int mod = (int)1e9+7;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try{

        Scanner sc = new Scanner(System.in);
        String input1 = sc.nextLine();
        String input2 = sc.nextLine();
        
        int n = Integer.parseInt(input1);
        
        String str1[] = input2.split(" ");
        int xs[] = new int[n];
        
        for(int i=0; i<str1.length; i++){
            xs[i] = Integer.parseInt(str1[i].trim());
        }
        
        int[] pow2 = new int[n+1];
        pow2[0] = 1;
        for(int i = 1; i < pow2.length; i++) pow2[i] = (int)(pow2[i-1] * 2L % mod);
        
        int[] dp = new int[1<<20];
        for(int x : xs) {
            dp[x]++;
        }
        
        
        for(int i = 0; i < 20; i++) {
            for(int j = 0; j < 1 << 20; j++) {
                if((j>>>i&1) == 0) {
                    dp[j] += dp[j|1<<i];
                }
            }
        }
        
        long ans = 0;
        for(int i = 0; i < 1 << 20; i++) {
            ans += (1L-Integer.bitCount(i)%2*2) * pow2[dp[i]]%mod;
        }
        
        System.out.println((ans % mod + mod) % mod);
        
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }

}
