#include <iostream>
#include <vector>
using namespace std;
 
using int64 = long long;
 
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
 
    int64 testCases;
    cin >> testCases;
 
    while (testCases--) {
        int64 size;
        cin >> size;
 
        vector<int64> nums(size);
        for (int64 i = 0; i < size; i++) cin >> nums[i];
 
        int64 invalidCount = 0;
 
        for (int64 start = 0; start < size; start++) {
            for (int64 end = start; end < size; end++) {
                int64 totalXor = 0;
 
                for (int64 idx = start; idx <= end; idx++) {
                    totalXor ^= nums[idx];
                }
 
                if (totalXor == 0) {
                    int64 prefixXor = 0;
                    int64 zeroPrefixCount = 0;
                    for (int64 pos = start; pos <= end; pos++) {
                        prefixXor ^= nums[pos];
                        if (prefixXor == 0) zeroPrefixCount++;
                    }
                    invalidCount += zeroPrefixCount;
                }
            }
        }
 
        int64 totalSubseqs = (size * (size + 1) * (size + 2)) / 6;
        int64 result = totalSubseqs - invalidCount;
 
        cout << result << "\n";
    }
 
    return 0;
}
 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdXNpbmcgaW50NjQgPSBsb25nIGxvbmc7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50NjQgdGVzdENhc2VzOwogICAgY2luID4+IHRlc3RDYXNlczsKCiAgICB3aGlsZSAodGVzdENhc2VzLS0pIHsKICAgICAgICBpbnQ2NCBzaXplOwogICAgICAgIGNpbiA+PiBzaXplOwoKICAgICAgICB2ZWN0b3I8aW50NjQ+IG51bXMoc2l6ZSk7CiAgICAgICAgZm9yIChpbnQ2NCBpID0gMDsgaSA8IHNpemU7IGkrKykgY2luID4+IG51bXNbaV07CgogICAgICAgIGludDY0IGludmFsaWRDb3VudCA9IDA7CgogICAgICAgIGZvciAoaW50NjQgc3RhcnQgPSAwOyBzdGFydCA8IHNpemU7IHN0YXJ0KyspIHsKICAgICAgICAgICAgZm9yIChpbnQ2NCBlbmQgPSBzdGFydDsgZW5kIDwgc2l6ZTsgZW5kKyspIHsKICAgICAgICAgICAgICAgIGludDY0IHRvdGFsWG9yID0gMDsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZm9yIChpbnQ2NCBpZHggPSBzdGFydDsgaWR4IDw9IGVuZDsgaWR4KyspIHsKICAgICAgICAgICAgICAgICAgICB0b3RhbFhvciBePSBudW1zW2lkeF07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHRvdGFsWG9yID09IDApIHsKICAgICAgICAgICAgICAgICAgICBpbnQ2NCBwcmVmaXhYb3IgPSAwOwogICAgICAgICAgICAgICAgICAgIGludDY0IHplcm9QcmVmaXhDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQ2NCBwb3MgPSBzdGFydDsgcG9zIDw9IGVuZDsgcG9zKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4WG9yIF49IG51bXNbcG9zXTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeFhvciA9PSAwKSB6ZXJvUHJlZml4Q291bnQrKzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaW52YWxpZENvdW50ICs9IHplcm9QcmVmaXhDb3VudDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaW50NjQgdG90YWxTdWJzZXFzID0gKHNpemUgKiAoc2l6ZSArIDEpICogKHNpemUgKyAyKSkgLyA2OwogICAgICAgIGludDY0IHJlc3VsdCA9IHRvdGFsU3Vic2VxcyAtIGludmFsaWRDb3VudDsKCiAgICAgICAgY291dCA8PCByZXN1bHQgPDwgIlxuIjsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=