#include <bits/stdc++.h>
using namespace std;
long long Max(long long a, long long b) { return a > b ? a : b; }
int main() {
  long long t, n, k, d1, d2, m;
  int flag;
  cin >> t;
  while (t--) {
    flag = 1;
    cin >> n >> k >> d1 >> d2;
    if (n % 3 != 0) {
      cout << "no\n";
      continue;
    }
    if (k < (d1 + d2 + d2) || (k - d2 - d1 - d2) % 3 != 0) {
      flag = 0;
    }
    if (flag) {
      m = (k - d2 - d1 - d2) / 3;
      if (n % 3 != 0 || (n / 3) < (d1 + d2 + m)) flag = 0;
    }
    if (flag)
      cout << "yes\n";
    else {
      flag = 1;
      if (k < (d1 + d2) || (k - d1 - d2) % 3 != 0) flag = 0;
      if (flag) {
        m = (k - d1 - d2) / 3;
        if (n % 3 != 0 || (n / 3) < Max(d1 + m, d2 + m)) flag = 0;
      }
      if (flag)
        cout << "yes\n";
      else {
        flag = 1;
        if (k < (d1 + d1 + d2) || (k - d1 - d1 - d2) % 3 != 0) flag = 0;
        if (flag) {
          m = (k - d1 - d1 - d2) / 3;
          if (n % 3 != 0 || (n / 3) < (d1 + d2 + m)) flag = 0;
        }
        if (flag)
          cout << "yes\n";
        else {
          if (d1 < d2) {
            m = d1;
            d1 = d2;
            d2 = m;
          }
          flag = 1;
          if (k < (2 * d1 - d2) || (k - d1 + d2 - d1) % 3 != 0) {
            flag = 0;
          }
          if (flag) {
            m = (k - d1 + d2 - d1) / 3;
            if (n % 3 != 0 || (n / 3) < (d1 + m)) flag = 0;
          }
          if (flag)
            cout << "yes\n";
          else
            cout << "no\n";
        }
      }
    }
  }
  return 0;
}
