Chef has an 8 \times 8 chessboard. He placed a knight on the square (X_{1}, Y_{1}). Note that, the square at the intersection of the i^{th} row and j^{th} column is denoted by (i, j). 

Chef wants to determine whether the knight can end up at the square (X_{2}, Y_{2}) in exactly 100 moves or not.

For reference, a knight can move to a square which is:

One square horizontally and two squares vertically away from the current square, or
One square vertically and two squares horizontally away from the current square

A visual description of this may be found [here]#Movement).

------ Input Format ------ 

- The first line contains a single integer T — the number of test cases. Then the test cases follow.
- The first and only line of each test case contains 4 integers X_{1}, Y_{1}, X_{2}, Y_{2} — where (X_{1}, Y_{1}) denotes the starting square of the knight and (X_{2}, Y_{2}) denotes the ending square of the knight.

------ Output Format ------ 

For each test case, output YES if knight can move from (X_{1}, Y_{1}) to (X_{2}, Y_{2}) in exactly 100 moves. Otherwise, output NO.

You may print each character of YES and NO in uppercase or lowercase (for example, yes, yEs, Yes will be considered identical).

------ Constraints ------ 

$1 ≤ T ≤ 1000$
$1 ≤X_{1}, Y_{1}, X_{2}, Y_{2} ≤8$

----- Sample Input 1 ------ 
3
1 1 1 1
8 8 7 6
8 8 8 6

----- Sample Output 1 ------ 
YES
NO
YES
----- explanation 1 ------ 
Test Case 1: Knight can first move to $(2, 3)$ and then back to $(1, 1)$. He can repeat this $50$ times and he will end up at $(1, 1)$ after $100$ moves.

Test Case 2: It can be proven that it is not possible for the knight to end at $(7, 6)$ after $100$ moves.

Test Case 3: Knight can first move to $(6, 7)$ and then to $(8, 6)$. After that, he can alternate between $(6, 7)$ and $(8, 6)$ for $49$ times and he will end up at $(8, 6)$ after $100$ moves.

Source: codechef | Difficulty: EASY


Solutions:
for _ in range(int(input())):
	(x1, y1, x2, y2) = map(int, input().split())
	print('NO' if (x1 - x2 + (y1 - y2)) % 2 else 'YES')


for i in range(int(input())):
	(x1, y1, x2, y2) = map(int, input().split())
	d = abs(x1 + y1 - (x2 + y2))
	if d % 2 == 0:
		print('YES')
	else:
		print('NO')


for i in range(int(input())):
	(x1, y1, x2, y2) = map(int, input().split())
	dist = abs(x1 - x2) + abs(y1 - y2)
	dist = dist & 1
	if dist:
		print('NO')
	else:
		print('YES')


from collections import Counter
for i in range(int(input())):
	(a, b, c, d) = map(int, input().split())
	if (a - c + (b - d)) % 2 == 0:
		print('YES')
	else:
		print('NO')


for i in range(int(input())):
	(a, b, x, y) = map(int, input().split())
	if (abs(x - a) + abs(y - b)) % 2 == 1:
		print('NO')
	else:
		print('YES')


for i in range(int(input())):
	(X1, Y1, X2, Y2) = map(int, input().split())
	if (X1 - X2) % 2 == 0 and (Y1 - Y2) % 2 == 0:
		print('YES')
	elif (X1 - X2) % 2 == 1 and (Y1 - Y2) % 2 == 1:
		print('YES')
	else:
		print('NO')


t = int(input())
for tc in range(t):
	(x1, y1, x2, y2) = map(int, input().split())
	if (x1 + y1) % 2 == 0 and (x2 + y2) % 2 == 0:
		print('YES')
	elif (x1 + y1) % 2 != 0 and (x2 + y2) % 2 != 0:
		print('YES')
	else:
		print('NO')


for i in range(int(input())):
	(x1, x2, x3, x4) = map(int, input().split())
	if (x1 + x2 + x3 + x4) % 2 == 0:
		print('YES')
	else:
		print('NO')


t = int(input())
for i in range(t):
	(x1, y1, x2, y2) = map(int, input().split())
	x = abs(x1 - y1)
	y = abs(x2 - y2)
	if (x + y) % 2 == 0:
		print('YES')
	else:
		print('NO')


T = int(input())
for _ in range(T):
	list1 = list(map(int, input().split()))
	if sum(list1) % 2 == 0:
		print('YES')
	else:
		print('NO')


for i in range(int(input())):
	a = [int(x) for x in input().split()]
	if sum(a) % 2 == 0:
		print('YES')
	else:
		print('NO')


for _ in range(int(input())):
	(a, b, c, d) = map(int, input().split())
	if (a + b - c - d) % 2 == 0:
		print('YES')
	else:
		print('NO')


for _ in range(int(input())):
	(X1, Y1, X2, Y2) = map(int, input().split())
	print('NO') if X1 + Y1 + X2 + Y2 & 1 else print('YES')


for _ in range(int(input())):
	(x1, y1, x2, y2) = map(int, input().split())
	(a, b) = (x1 + y1, x2 + y2)
	if abs(a - b) % 2 == 0:
		print('YES')
	else:
		print('NO')


t = int(input())
while t:
	(a, b, c, d) = map(int, input().split())
	if (a + b + c + d) % 2 == 0:
		print('YES')
	else:
		print('NO')
	t -= 1


t = int(input())
for i in range(t):
	(x1, y1, x2, y2) = map(int, input().split())
	s1 = abs(x1 - x2)
	s2 = abs(y1 - y2)
	if (s1 + s2) % 2 == 0:
		print('YES')
	else:
		print('NO')


t = int(input())
while t > 0:
	(x1, y1, x2, y2) = map(int, input().split(' '))
	x = abs(x1 - x2)
	y = abs(y1 - y2)
	if (x + y) % 2 == 0:
		print('YES')
	else:
		print('NO')
	t = t - 1


def ibc(a):
	if a[0] > 0 and a[0] < 9 and (a[1] > 0) and (a[1] < 9):
		return True
	else:
		return False

def kmove(ll):
	empty = []
	for L in ll:
		x = [[L[0] + 2, L[1] + 1], [L[0] + 2, L[1] - 1], [L[0] - 2, L[1] + 1], [L[0] - 2, L[1] - 1], [L[0] + 1, L[1] + 2], [L[0] + 1, L[1] - 2], [L[0] - 1, L[1] + 2], [L[0] - 1, L[1] - 2]]
		empty = empty + x
	final = []
	for i in empty:
		if ibc(i):
			y = [i]
			final = final + y
	return final
for _ in range(int(input())):
	(ri, ci, rf, cf) = map(int, input().split())
	(ini, fin) = ([[ri, ci]], [rf, cf])
	counter = 1
	for i in range(6):
		check = False
		stage = kmove(ini)
		for j in stage:
			if j == fin:
				check = True
				break
			else:
				continue
		if check:
			break
		else:
			ini = stage
			counter += 1
	if counter % 2 == 0:
		print('YES')
	else:
		print('NO')


t = int(input())
for i in range(t):
	(x1, y1, x2, y2) = list(map(int, input().split()))
	if (x1 + y1 + x2 + y2) % 2 == 0:
		print('YES')
	else:
		print('NO')


T = int(input())
for i in range(T):
	(P, Q, R, S) = map(int, input().split())
	print('YES') if (P + Q + R + S) % 2 == 0 else print('NO')


for _ in range(int(input())):
	(i1, j1, i2, j2) = map(int, input().split())
	if (i1 + i2 + j1 + j2) % 2 == 0:
		print('YES')
	else:
		print('NO')


t = int(input())
for i in range(t):
	(a, b, c, d) = map(int, input().split())
	if (abs(a - c) + abs(b - d)) % 2 == 0:
		print('YES')
	else:
		print('NO')


T = int(input())
for Akash in range(T):
	(X1, Y1, X2, Y2) = map(int, input().split())
	if (X1 + Y1 + X2 + Y2) % 2 == 0:
		print('YES')
	else:
		print('NO')


for i in range(int(input())):
	(X1, Y1, X2, Y2) = list(map(int, input().split()))
	if (abs(X2 - X1) + abs(Y2 - Y1)) % 2 == 0:
		print('YES')
	else:
		print('NO')


for tc in range(int(input())):
	(x, y, a, b) = map(int, input().split())
	distx = abs(a - x)
	disty = abs(b - y)
	if (distx + disty) % 2 == 0:
		print('YES')
	else:
		print('NO')


T = int(input())
counter = 0
while counter < T:
	(a, b, c, d) = input().split(' ')
	P = int(a)
	Q = int(b)
	R = int(c)
	S = int(d)
	if (P + Q) % 2 == (R + S) % 2:
		print('YES')
	else:
		print('NO')
	counter = counter + 1