#include<bits/stdc++.h>
#define ll long long int
#define ld long double
#define f first
#define s second
#define pb push_back
#define mk make_pair
#define boost ios::sync_with_stdio(false); cin.tie(0)
using namespace std;
const ll MOD = 1000000007;
ll power(ll x, ll y, ll p)
{
ll res = 1;
x = x % p;
while(y > 0)
{
if(y&1)
res = (res*x)%p;
y>>=1;
x = (x*x)%p;
}
return res;
}
ll mod(ll x, ll p)
{
return ((x%p) + p)%p;
}
int main()
{
boost;
ll t,n,a,b,c,d,m,i,val,s,ans;
unordered_map <ll,ll> hmap;
cin >> t;
while(t--)
{
cin >> a >> b >> c >> d >> m;
cin >> n;
ll arr[n];
for(i=0;i<n;i++)
cin >> arr[i];
ans = 0;
for(i=0;i<n;i++)
{
val = power(abs(arr[i]), 2, m);
hmap[val]++;
}
for(i=0;i<n;i++)
{
val = 0;
arr[i] < 0 ? s = -1 : s = 1;
val = (val + mod(a*s*power(abs(arr[i]), 3, m), m))%m;
val = (val + mod(b*power(abs(arr[i]), 2, m), m))%m;
val = (val + mod(c*arr[i], m))%m;
val = (val + mod(d, m))%m;
ans = (ans + hmap[val])%MOD;
}
cout << ans << "\n";
hmap.clear();
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBmIGZpcnN0CiNkZWZpbmUgcyBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtayBtYWtlX3BhaXIKI2RlZmluZSBib29zdCBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoMCkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbGwgTU9EID0gMTAwMDAwMDAwNzsKbGwgcG93ZXIobGwgeCwgbGwgeSwgbGwgcCkKewoJbGwgcmVzID0gMTsKCXggPSB4ICUgcDsKCQoJd2hpbGUoeSA+IDApCgl7CgkJaWYoeSYxKQoJCXJlcyA9IChyZXMqeCklcDsKCQl5Pj49MTsKCQl4ID0gKHgqeCklcDsKCX0KCXJldHVybiByZXM7Cn0KbGwgbW9kKGxsIHgsIGxsIHApCnsKCXJldHVybiAoKHglcCkgKyBwKSVwOwp9CmludCBtYWluKCkKewoJYm9vc3Q7CglsbCB0LG4sYSxiLGMsZCxtLGksdmFsLHMsYW5zOwoJdW5vcmRlcmVkX21hcCA8bGwsbGw+IGhtYXA7CgljaW4gPj4gdDsKCXdoaWxlKHQtLSkKCXsKCQljaW4gPj4gYSA+PiBiID4+IGMgPj4gZCA+PiBtOwoJCWNpbiA+PiBuOwoJCWxsIGFycltuXTsKCQlmb3IoaT0wO2k8bjtpKyspCgkJY2luID4+IGFycltpXTsKCQlhbnMgPSAwOwoJCWZvcihpPTA7aTxuO2krKykKCQl7CgkJCXZhbCA9IHBvd2VyKGFicyhhcnJbaV0pLCAyLCBtKTsKCQkJaG1hcFt2YWxdKys7CgkJfQoJCQoJCWZvcihpPTA7aTxuO2krKykKCQl7CgkJCXZhbCA9IDA7CgkJCWFycltpXSA8IDAgPyBzID0gLTEgOiBzID0gMTsKCQkJdmFsID0gKHZhbCArIG1vZChhKnMqcG93ZXIoYWJzKGFycltpXSksIDMsIG0pLCBtKSklbTsKCQkJdmFsID0gKHZhbCArIG1vZChiKnBvd2VyKGFicyhhcnJbaV0pLCAyLCBtKSwgbSkpJW07CgkJCXZhbCA9ICh2YWwgKyBtb2QoYyphcnJbaV0sIG0pKSVtOwoJCQl2YWwgPSAodmFsICsgbW9kKGQsIG0pKSVtOwoJCQlhbnMgPSAoYW5zICsgaG1hcFt2YWxdKSVNT0Q7CgkJfQoJCWNvdXQgPDwgYW5zIDw8ICJcbiI7CgkJaG1hcC5jbGVhcigpOwoJfQkKfQ==