n, op_xor);
    }

// (protected) r = this + a
    function bnpAddTo(a, r) {
        var self = this;

        var i = 0, c = 0, m = Math.min(a.t, self.t);
        while (i < m) {
            c += self[i] + a[i];
            r[i++] = c & self.DM;
            c >>= self.DB;
        }
        if (a.t < self.t) {
            c += a.s;
            while (i < self.t) {
                c += self[i];
                r[i++] = c & self.DM;
                c >>= self.DB;
            }
            c += self.s;
       