public static void main(String[] args) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String line = in.readLine();
		int n = Integer.parseInt(line);
		StringBuilder out = new StringBuilder();
		for (int i = 0; i < n; i++) {
			String cad[] = in.readLine().split(" ");
			Node temp = new Node(Long.parseLong(cad[0]),
					Long.parseLong(cad[1]), Long.parseLong(cad[2]),
					Long.parseLong(cad[3]));
			cond=false;
			long x = lower_bound(temp.k, temp.d1, temp.d2);
			cond|=(ok(x, x - temp.d1, (x - temp.d1) - temp.d2, temp.n
					- temp.k)&&x!=-1 || (temp.k==0 && temp.d1==0 && temp.d2==0));
			x = lower_bound2(temp.k, -temp.d1, temp.d2);
			cond|=(ok(x, x + temp.d1, (x + temp.d1) - temp.d2, temp.n
					- temp.k)&&x!=-1);
			x = lower_bound(temp.k, -temp.d1, -temp.d2);
			cond|=(ok(x, x + temp.d1, (x + temp.d1) + temp.d2, temp.n
					- temp.k)&&x!=-1);
			x = lower_bound(temp.k, temp.d1, -temp.d2);
			cond|=(ok(x, x - temp.d1, (x - temp.d1) + temp.d2, temp.n
					- temp.k)&&x!=-1);
			
			/*x = lower_bound(temp.k, -temp.d1, temp.d2);
			cond|=ok(x, x - temp.d1, (x - temp.d1) - temp.d2, temp.n
					- temp.k);
			x = lower_bound(temp.k, -temp.d1, temp.d2);
			cond|=ok(x, x - temp.d1, (x - temp.d1) - temp.d2, temp.n
					- temp.k);*/
			if(cond){
				System.out.println("yes");
			}else{
				System.out.println("no");
			}
			

		}
		//System.out.print(out);
	}