#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5+10;
const int mod=1e9+7;
int ai[N];
int bi[N];
int qmi(int a, int k, int p)
{
int res = 1 % p;
while (k)
{
if (k & 1) res = res * a % p;
a = a * a % p;
k >>= 1;
}
return res;
}
int C(int a,int b)
{
if(a<b||b<0)return 0;
return ai[a]*bi[b]%mod*bi[a-b]%mod;
}
void solve()
{
int n,i,j,x,y;
cin >> n>>i>>j>>x>>y;
if(x==n)
{
int ans=C(x-y-1,j-i-1);
ans=ans*C(y-1,n-y)%mod;
cout << ans<<"\n";
return;
}
if(y==n)
{
int ans=C(y-x-1,j-i-1);
ans=ans*C(x-1,i-1)%mod;
cout << ans<<"\n";
return;
}
int ans=0;
int last=0;
for(int u=2;u<n;u++)
{
if(u==i||u==j) continue;
if(u>i&&u<j)
{
int z=min(x,y);
int len=n-y-1;
int res;
if(y>=x)
res=C(n-y-1,j-u-1);
else
res=C(n-x-1,u-i-1);
res=res*C((n-z-2)-(j-u-1),u-i-1)%mod;
res=res*C(n-(j-i+1),i-1)%mod;
ans=(ans+res)%mod;
}
else
{
if(u<i)
{
if(x<y) continue;
int res=C(x-y-1,j-i-1);
res=res*C(n-x-1,i-u-1)%mod;
res=res*C(y-1,n-j)%mod;
ans=(ans+res)%mod;
}
else
{
if(x>y) continue;
int res=C(x-y-1,j-i-1);
res=res*C(n-y-1,u-j-1)%mod;
res=res*C(x-1,i-1)%mod;
ans=(ans+res)%mod;
}
}
last=ans;
}
cout << ans<<"\n";
}
signed main() {
cin.tie(0) -> sync_with_stdio(0);
int T=1;
cin >> T;
ai[0]=bi[0]=1;
for(int i=1;i<=100;i++)
{
ai[i]=ai[i-1]*i%mod;
bi[i]=bi[i-1]*qmi(i,mod-2,mod)%mod;
}
while (T --) {
solve();
}
}