'Destructively merge this result with another.
the signatures are combined as needed to generate a final signature
that is generally the combination of the two as follows:
- `errors` are combined
- `global_version`, `platform`, and `version` are compared. In the
case of a mismatch, "MULTISIG_MISMATCH" error is set.
- signature validity is independently checked with :py:meth:`is_valid`
:param other: other result to be merged from
:type other: :py:class:`SigningResult`'

def update(self, other):

    assert isinstance(other, SigningResult)
    self.errors.update(other.errors)
    for attr in ('global_version', 'platform', 'version'):
        if (getattr(self, attr) != getattr(other, attr)):
            self.add_error(ERRORS.MULTISIG_MISMATCH, details=attr)
            break
    self.valid_hmac = (self.valid_hmac and other.valid_hmac)
