#include //#include #include #include #include #include #include #include #include #include #include #include #include #define MAX(x,y) (((x)>(y)) ? (x) : (y)) #define MIN(x,y) (((x)<(y)) ? (x) : (y)) #define sq(x) (x)*(x) #define cei(a,b) (long long)(((a)+(b)-1)/(b)) #define mst(a,b) memset((a),b,sizeof((a))) #define fi first #define se second #define pb push_back using namespace std; const int MAXN = 1e6+5; const int N=1e5+5; const int E4=1e4; //const long long mod = 1e9+7 ; //const long long mod = 998244353 ; const int inf = 0x3f3f3f3f; typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef pair pll; int dx[4]= {1,0,0,-1}; int dy[4]= {0,-1,1,0}; int n,m,k; void solve() { ll n,m,x1,x2; scanf("%lld%lld%lld%lld",&n,&m,&x1,&x2); ll ans; ans=min(n-1,m-1); ans=min(ans,m-x2); ans=min(ans,x1-1); ll xdis=abs(x1-x2); if((xdis+n)&1)xdis--; ll t=xdis/2; t+=(n-1)/2; ans=min(ans,t); printf("%lld\n",ans*ans); } int main() { // freopen("D:\\desktop\\in.txt","r",stdin); // freopen("D:\\desktop\\out2.txt","w",stdout); int T=1; scanf("%d",&T); for(int i=1; i<=T; i++) { // printf("Case %d:\n",i); solve(); } return 0; }