const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    while(line = await readline()){
        lineInt = parseInt(line);
        while(lineInt--){
            input = await readline();
            input = input.split(' ');
            input = input.map(Number);
            n = input[0];
            k = input[1];
            d1 = Math.min(input[2], input[3]);
            d2 = Math.max(input[2], input[3]);

            case1 = k - (2*d1+d2);
            case2 = k - (2*d2+d1);
            case3 = k - (d2+d2-d1);
            case4 = k - (d2+d1);

            left = n-k;
            if(case1>=0 && case1%3==0){
                need = d1+2*d2;
                if(need<=left&&(left-need)%3==0){
                    console.log('yes');
                    continue;
                }
            }
            if(case2>=0 && case2%3==0){
                need = d2+2*d1;
                if(need <= left && (left-need)%3==0){
                    console.log('yes');
                    continue;
                }
            }
            if(case3>=0 && case3%3==0){
                need = d1+d2;
                if(need<=left && (left-need)%3==0){
                    console.log('yes');
                    continue;
                }
            }
            if(case4>=0 && case4%3==0){
                need = d2+d2-d1;
                if(need<=left && (left-need)%3==0){
                    console.log('yes');
                    continue;
                }
            }
        console.log('no');
    }
    }
}()