#include <bits/stdc++.h>
using namespace std;
inline long long fpow(long long x, long long y, long long modu) {
  long long res = 1 % modu;
  for (; y; y >>= 1, x = x * x % modu)
    if (y & 1) res = res * x % modu;
  return res;
}
inline long long S(long long k, long long x, long long modu) {
  return (fpow(k, fpow(2, x + 1, modu - 1), modu) - 1) *
         fpow(k - 1, modu - 2, modu) % modu;
}
int main() {
  int T;
  for (cin >> T; T--;) {
    long long l, r, k, modu;
    cin >> k >> l >> r >> modu;
    long long res = 1;
    if (k % modu) {
      res = fpow(2, r - l + 1, modu) % modu;
      if (fpow(k, fpow(2, l, modu - 1), modu) != 1)
        res = S(k, r, modu) * fpow(S(k, l - 1, modu), modu - 2, modu) % modu;
    }
    if (k % 2 == 1)
      res = res * fpow(fpow(2, r - l, modu), modu - 2, modu) % modu;
    cout << (res + modu) % modu << endl;
  }
  return 0;
}
