@classmethod
def matches(cls, fp):
    """
        Read next a few bytes to judge if the following data match this type
        of chunk.

        It calls :meth:`safe_matches` and restores :attr:`fp` state by default.

        You can override this to avoid saving :attr:`fp` state.

        :param fp: File object to read from.
        :returns: If the following bytes match this chunk type.
        """
    fp.save_state()
    matches = cls.safe_matches(fp)
    fp.restore_state()
    return matches
