// بسم الله الرحمن الرحيم
#include <bits/stdc++.h>
using namespace std;
template<typename T> ostream& operator<<(ostream& os, vector<T>& v) { for (auto& i : v) os << i << ' '; return os; }
template<typename T> istream& operator>>(istream& is, vector<T>& v) { for (auto& i : v) is >> i; return is; }
#define FreePalestine ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
#define endl '\n'
#define int long long
#define ull unsigned long long
#define vi vector<int>
#define vvi vector<vi>
#define pi pair<int, int>
#define all(a) a.begin(), a.end()
#define all_r(a) a.rbegin(), a.rend()
const int N = 2e5, oo = 2e18, MOD = 1e9+7;
void solve() {
vi a(3); cin >> a;
sort(all(a));
int sum = a[0] + a[1] + a[2];
if (a[0] != a[1] && a[1] != a[2]) {
int mx = *max_element(all(a));
if (mx == (sum - mx)) {
cout << "YES\n";
} else {
cout << "NO\n";
}
} else if (a[0] == a[1] && a[2] % 2 == 0) {
cout << "YES\n";
} else if (a[1] == a[2] && a[0] % 2 == 0) {
cout << "YES\n";
} else {
cout << "NO\n";
}
}
signed main() {
FreePalestine;
// #ifndef ONLINE_JUDGE
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
// #endif
int t; t = 1;
cin >> t;
while (t--) solve();
return 0;
}
Ly8g2KjYs9mFINin2YTZhNmHINin2YTYsdit2YXZhiDYp9mE2LHYrdmK2YUKCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4gb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvcywgdmVjdG9yPFQ+JiB2KSB7IGZvciAoYXV0byYgaSA6IHYpIG9zIDw8IGkgPDwgJyAnOyByZXR1cm4gb3M7IH0KdGVtcGxhdGU8dHlwZW5hbWUgVD4gaXN0cmVhbSYgb3BlcmF0b3I+Pihpc3RyZWFtJiBpcywgdmVjdG9yPFQ+JiB2KSB7IGZvciAoYXV0byYgaSA6IHYpIGlzID4+IGk7IHJldHVybiBpczsgfQoKI2RlZmluZSBGcmVlUGFsZXN0aW5lICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCkKCiNkZWZpbmUgZW5kbCAgICAgJ1xuJwojZGVmaW5lIGludCAgICAgIGxvbmcgbG9uZwojZGVmaW5lIHVsbCAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHZpICAgICAgIHZlY3RvcjxpbnQ+CiNkZWZpbmUgdnZpICAgICAgdmVjdG9yPHZpPgojZGVmaW5lIHBpICAgICAgIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgYWxsKGEpICAgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgYWxsX3IoYSkgYS5yYmVnaW4oKSwgYS5yZW5kKCkKCmNvbnN0IGludCBOID0gMmU1LCBvbyA9IDJlMTgsIE1PRCA9IDFlOSs3OwoKdm9pZCBzb2x2ZSgpIHsKICAgIHZpIGEoMyk7IGNpbiA+PiBhOwogICAgc29ydChhbGwoYSkpOwogICAgaW50IHN1bSA9IGFbMF0gKyBhWzFdICsgYVsyXTsKICAgIGlmIChhWzBdICE9IGFbMV0gJiYgYVsxXSAhPSBhWzJdKSB7CiAgICAgICAgaW50IG14ID0gKm1heF9lbGVtZW50KGFsbChhKSk7CiAgICAgICAgaWYgKG14ID09IChzdW0gLSBteCkpIHsKICAgICAgICAgICAgY291dCA8PCAiWUVTXG4iOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvdXQgPDwgIk5PXG4iOwogICAgICAgIH0KICAgIH0gZWxzZSBpZiAoYVswXSA9PSBhWzFdICYmIGFbMl0gJSAyID09IDApIHsKICAgICAgICBjb3V0IDw8ICJZRVNcbiI7CiAgICB9IGVsc2UgaWYgKGFbMV0gPT0gYVsyXSAmJiBhWzBdICUgMiA9PSAwKSB7CiAgICAgICAgY291dCA8PCAiWUVTXG4iOwogICAgfSBlbHNlIHsKICAgICAgICBjb3V0IDw8ICJOT1xuIjsKICAgIH0KfQoKCnNpZ25lZCBtYWluKCkgewogICBGcmVlUGFsZXN0aW5lOwogICAvLyAjaWZuZGVmIE9OTElORV9KVURHRSAKICAgLy8gICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7IAogICAvLyAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOyAKICAgLy8gI2VuZGlmIAogICBpbnQgdDsgdCA9IDE7CiAgIGNpbiA+PiB0OwogICB3aGlsZSAodC0tKSBzb2x2ZSgpOwogICByZXR1cm4gMDsKfQ==