#include <bits/stdc++.h>
using namespace std;
int T, k, p;
long long l, r;
long long ksm(int a, long long b, int mod) {
  long long res = 1;
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = (long long)a * a % mod;
  }
  return res;
}
long long calc(int k, long long l, long long r, int p) {
  if (k % p == 0) return 1;
  long long t = ksm(2, l, p - 1);
  long long q = (ksm(k, t, p) - 1 + p) % p;
  if (!q) return ksm(2, r - l + 1, p);
  long long y = ksm(2, r + 1, p - 1);
  long long res = (ksm(k, y, p) - 1 + p) % p * ksm(q, p - 2, p) % p;
  return res;
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  for (cin >> T; T--;) {
    cin >> k >> l >> r >> p;
    if (p == 2) {
      cout << (k % 2 ? 0 : 1) << '\n';
    } else {
      long long MUL = calc(k, l, r, p);
      if (k % 2) {
        MUL = MUL * ksm(ksm(2, r - l, p), p - 2, p) % p;
      }
      cout << MUL << '\n';
    }
  }
}
