// #pragma GCC optimize("Ofast,unroll-loops")
// #pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define dd double
#define ld long double
#define sl(n) scanf("%lld", &n)
#define si(n) scanf("%d", &n)
#define sd(n) scanf("%lf", &n)
#define pll pair <ll, ll>
#define pii pair <int, int>
#define mp make_pair
#define pb push_back
#define all(v) v.begin(), v.end()
#define inf (1LL << 61)
#define loop(i, start, stop, inc) for(ll i = start; i <= stop; i += inc)
#define for1(i, stop) for(ll i = 1; i <= stop; ++i)
#define for0(i, stop) for(ll i = 0; i < stop; ++i)
#define rep1(i, start) for(ll i = start; i >= 1; --i)
#define rep0(i, start) for(ll i = (start-1); i >= 0; --i)
#define ms(n, i) memset(n, i, sizeof(n))
#define casep(n) printf("Case %lld:", ++n)
#define pn printf("\n")
#define pf printf
#define EL '\n'
#define fastio std::ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
// returns a random ll integer in [l, r] range
inline ll gen_random(ll l, ll r) {
return uniform_int_distribution<ll>(l, r)(rng);
}
// === DEBUG MACRO STARTS HERE === //
#ifdef LOCALXOX
#define DEBUG
#define SYS_COL system("COLOR")
#endif
int recur_depth = 0;
#ifdef DEBUG
#define dbg(x) {++recur_depth; auto x_=x; --recur_depth; SYS_COL; \
cerr<<string(recur_depth, '\t')<<"\e[91m"<<__func__<<":" \
<<__LINE__<<"\t"<<#x<<" = "<<x_<<"\e[39m"<<endl;}
template<typename Ostream, typename Cont>
typename enable_if<is_same<Ostream,ostream>::value,
Ostream&>::type operator<<(Ostream& os, const Cont& v) {
os<<"[";
for(auto& x:v){os<<x<<", ";}
return os<<"]";
}
template<typename Ostream, typename ...Ts>
Ostream& operator<<(Ostream& os, const pair<Ts...>& p){
return os<<"{"<<p.first<<", "<<p.second<<"}";
}
#else
#define dbg(x)
#endif
// === DEBUG MACRO ENDS HERE === //
#define ff first
#define ss second
ll a, b, c, d;
pll dp[2][2][51][2];
vector <bool> num;
pll solve(bool isStart, bool isSmall, ll pos, bool prv)
{
if(pos == 0)
return mp(0, 1);
pll &ret = dp[isStart][isSmall][pos][prv];
if(ret.ff != -1 && isSmall)
return ret;
ll lim, pos2 = num.size() - pos;
if(isSmall)
lim = 1;
else
lim = num[pos2];
pll rt = mp(0,0);
if(!isStart) {
for(ll i = 0; i <= lim; i++) {
ll pnt = 0;
if(!isStart) {
if(prv==0) pnt = (i==0)? a : b;
else pnt = (i==0)? c : d;
}
pll got = solve(0, isSmall | i < num[pos2], pos - 1, i);
rt.ff += pnt*got.ss + got.ff, rt.ss += got.ss;
}
}
else {
for(ll i = 1; i <= lim; i++) {
ll pnt = 0;
if(!isStart) {
if(prv==0) pnt = (i==0)? a : b;
else pnt = (i==0)? c : d;
}
pll got = solve(0, isSmall | i < num[pos2], pos - 1, i);
rt.ff += pnt*got.ss + got.ff, rt.ss += got.ss;
}
pll got = solve(1, 1, pos - 1, 0);
rt.ff += got.ff, rt.ss += got.ss;
}
return ret = rt;
}
ll calc(ll n)
{
if(n < 1) return 0;
ll tmp = n;
num.clear();
while(tmp) {
num.pb(tmp%2);
tmp /= 2;
}
reverse(num.begin(), num.end());
return solve(1, 0, num.size(), 0).ff;
}
int main()
{
fastio;
ll t;
cin >> t;
while(t--) {
ll l, r;
cin >> l >> r;
cin >> a >> b >> c >> d;
ms(dp, -1);
ll ans = calc(r);
ans -= calc(l-1);
cout << ans << EL;
}
return 0;
}
Ly8gI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0LHVucm9sbC1sb29wcyIpCi8vICNwcmFnbWEgR0NDIHRhcmdldCgiYXZ4LGF2eDIsZm1hIikKCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgZGQgZG91YmxlCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBzbChuKSBzY2FuZigiJWxsZCIsICZuKQojZGVmaW5lIHNpKG4pIHNjYW5mKCIlZCIsICZuKQojZGVmaW5lIHNkKG4pIHNjYW5mKCIlbGYiLCAmbikKI2RlZmluZSBwbGwgcGFpciA8bGwsIGxsPgojZGVmaW5lIHBpaSBwYWlyIDxpbnQsIGludD4KI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLCB2LmVuZCgpCiNkZWZpbmUgaW5mICgxTEwgPDwgNjEpCiNkZWZpbmUgbG9vcChpLCBzdGFydCwgc3RvcCwgaW5jKSBmb3IobGwgaSA9IHN0YXJ0OyBpIDw9IHN0b3A7IGkgKz0gaW5jKQojZGVmaW5lIGZvcjEoaSwgc3RvcCkgZm9yKGxsIGkgPSAxOyBpIDw9IHN0b3A7ICsraSkKI2RlZmluZSBmb3IwKGksIHN0b3ApIGZvcihsbCBpID0gMDsgaSA8IHN0b3A7ICsraSkKI2RlZmluZSByZXAxKGksIHN0YXJ0KSBmb3IobGwgaSA9IHN0YXJ0OyBpID49IDE7IC0taSkKI2RlZmluZSByZXAwKGksIHN0YXJ0KSBmb3IobGwgaSA9IChzdGFydC0xKTsgaSA+PSAwOyAtLWkpCiNkZWZpbmUgbXMobiwgaSkgbWVtc2V0KG4sIGksIHNpemVvZihuKSkKI2RlZmluZSBjYXNlcChuKSBwcmludGYoIkNhc2UgJWxsZDoiLCArK24pCiNkZWZpbmUgcG4gcHJpbnRmKCJcbiIpCiNkZWZpbmUgcGYgcHJpbnRmCiNkZWZpbmUgRUwgJ1xuJwojZGVmaW5lIGZhc3RpbyBzdGQ6Omlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpO2Npbi50aWUoTlVMTCk7Y291dC50aWUoTlVMTCk7CgptdDE5OTM3XzY0IHJuZyhjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwovLyByZXR1cm5zIGEgcmFuZG9tIGxsIGludGVnZXIgaW4gW2wsIHJdIHJhbmdlCmlubGluZSBsbCBnZW5fcmFuZG9tKGxsIGwsIGxsIHIpIHsKICAgIHJldHVybiB1bmlmb3JtX2ludF9kaXN0cmlidXRpb248bGw+KGwsIHIpKHJuZyk7Cn0KCi8vID09PSBERUJVRyBNQUNSTyBTVEFSVFMgSEVSRSA9PT0gLy8KI2lmZGVmIExPQ0FMWE9YCiNkZWZpbmUgREVCVUcKI2RlZmluZSBTWVNfQ09MIHN5c3RlbSgiQ09MT1IiKQojZW5kaWYKCmludCByZWN1cl9kZXB0aCA9IDA7CiNpZmRlZiBERUJVRwojZGVmaW5lIGRiZyh4KSB7KytyZWN1cl9kZXB0aDsgYXV0byB4Xz14OyAtLXJlY3VyX2RlcHRoOyBTWVNfQ09MOyBcCiAgICAgICAgICAgICAgICBjZXJyPDxzdHJpbmcocmVjdXJfZGVwdGgsICdcdCcpPDwiXGVbOTFtIjw8X19mdW5jX188PCI6IiBcCiAgICAgICAgICAgICAgICA8PF9fTElORV9fPDwiXHQiPDwjeDw8IiA9ICI8PHhfPDwiXGVbMzltIjw8ZW5kbDt9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBPc3RyZWFtLCB0eXBlbmFtZSBDb250Pgp0eXBlbmFtZSBlbmFibGVfaWY8aXNfc2FtZTxPc3RyZWFtLG9zdHJlYW0+Ojp2YWx1ZSwKICAgICAgICAgICAgT3N0cmVhbSY+Ojp0eXBlIG9wZXJhdG9yPDwoT3N0cmVhbSYgb3MsICBjb25zdCBDb250JiB2KSB7Cglvczw8IlsiOwoJZm9yKGF1dG8mIHg6dil7b3M8PHg8PCIsICI7fQoJcmV0dXJuIG9zPDwiXSI7Cn0KdGVtcGxhdGU8dHlwZW5hbWUgT3N0cmVhbSwgdHlwZW5hbWUgLi4uVHM+Ck9zdHJlYW0mIG9wZXJhdG9yPDwoT3N0cmVhbSYgb3MsICBjb25zdCBwYWlyPFRzLi4uPiYgcCl7CglyZXR1cm4gb3M8PCJ7Ijw8cC5maXJzdDw8IiwgIjw8cC5zZWNvbmQ8PCJ9IjsKfQojZWxzZQojZGVmaW5lIGRiZyh4KQojZW5kaWYKLy8gPT09IERFQlVHIE1BQ1JPIEVORFMgSEVSRSA9PT0gLy8KCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKCmxsIGEsIGIsIGMsIGQ7CnBsbCBkcFsyXVsyXVs1MV1bMl07CnZlY3RvciA8Ym9vbD4gbnVtOwoKcGxsIHNvbHZlKGJvb2wgaXNTdGFydCwgYm9vbCBpc1NtYWxsLCBsbCBwb3MsIGJvb2wgcHJ2KQp7CiAgICBpZihwb3MgPT0gMCkKICAgICAgICByZXR1cm4gbXAoMCwgMSk7CgogICAgcGxsICZyZXQgPSBkcFtpc1N0YXJ0XVtpc1NtYWxsXVtwb3NdW3Bydl07CiAgICBpZihyZXQuZmYgIT0gLTEgJiYgaXNTbWFsbCkKICAgICAgICByZXR1cm4gcmV0OwoKICAgIGxsIGxpbSwgcG9zMiA9IG51bS5zaXplKCkgLSBwb3M7CiAgICBpZihpc1NtYWxsKQogICAgICAgIGxpbSA9IDE7CiAgICBlbHNlCiAgICAgICAgbGltID0gbnVtW3BvczJdOwoKICAgIHBsbCBydCA9IG1wKDAsMCk7CgogICAgaWYoIWlzU3RhcnQpIHsKICAgICAgICBmb3IobGwgaSA9IDA7IGkgPD0gbGltOyBpKyspIHsKICAgICAgICAgICAgbGwgcG50ID0gMDsKICAgICAgICAgICAgaWYoIWlzU3RhcnQpIHsKICAgICAgICAgICAgICAgIGlmKHBydj09MCkgcG50ID0gKGk9PTApPyBhIDogYjsKICAgICAgICAgICAgICAgIGVsc2UgcG50ID0gKGk9PTApPyBjIDogZDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcGxsIGdvdCA9IHNvbHZlKDAsIGlzU21hbGwgfCBpIDwgbnVtW3BvczJdLCBwb3MgLSAxLCBpKTsKCiAgICAgICAgICAgIHJ0LmZmICs9IHBudCpnb3Quc3MgKyBnb3QuZmYsIHJ0LnNzICs9IGdvdC5zczsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBmb3IobGwgaSA9IDE7IGkgPD0gbGltOyBpKyspIHsKICAgICAgICAgICAgbGwgcG50ID0gMDsKICAgICAgICAgICAgaWYoIWlzU3RhcnQpIHsKICAgICAgICAgICAgICAgIGlmKHBydj09MCkgcG50ID0gKGk9PTApPyBhIDogYjsKICAgICAgICAgICAgICAgIGVsc2UgcG50ID0gKGk9PTApPyBjIDogZDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcGxsIGdvdCA9IHNvbHZlKDAsIGlzU21hbGwgfCBpIDwgbnVtW3BvczJdLCBwb3MgLSAxLCBpKTsKCiAgICAgICAgICAgIHJ0LmZmICs9IHBudCpnb3Quc3MgKyBnb3QuZmYsIHJ0LnNzICs9IGdvdC5zczsKICAgICAgICB9CgogICAgICAgIHBsbCBnb3QgPSBzb2x2ZSgxLCAxLCBwb3MgLSAxLCAwKTsKICAgICAgICBydC5mZiArPSBnb3QuZmYsIHJ0LnNzICs9IGdvdC5zczsKICAgIH0KCiAgICByZXR1cm4gcmV0ID0gcnQ7Cn0KCmxsIGNhbGMobGwgbikKewogICAgaWYobiA8IDEpIHJldHVybiAwOwoKICAgIGxsIHRtcCA9IG47CiAgICBudW0uY2xlYXIoKTsKICAgIHdoaWxlKHRtcCkgewogICAgICAgIG51bS5wYih0bXAlMik7CiAgICAgICAgdG1wIC89IDI7CiAgICB9CiAgICByZXZlcnNlKG51bS5iZWdpbigpLCBudW0uZW5kKCkpOwoKICAgIHJldHVybiBzb2x2ZSgxLCAwLCBudW0uc2l6ZSgpLCAwKS5mZjsKfQoKaW50IG1haW4oKQp7CiAgICBmYXN0aW87CiAgICBsbCB0OwogICAgY2luID4+IHQ7CgogICAgd2hpbGUodC0tKSB7CiAgICAgICAgbGwgbCwgcjsKICAgICAgICBjaW4gPj4gbCA+PiByOwoKICAgICAgICBjaW4gPj4gYSA+PiBiID4+IGMgPj4gZDsKCiAgICAgICAgbXMoZHAsIC0xKTsKICAgICAgICBsbCBhbnMgPSBjYWxjKHIpOwogICAgICAgIGFucyAtPSBjYWxjKGwtMSk7CgogICAgICAgIGNvdXQgPDwgYW5zIDw8IEVMOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==