<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def match(self, props=None, rng=None, offset=None):
 """ Provide any of the args and match or dont. :param props: Should be a subset of my props. :param rng: Exactly match my range. :param offset: I start after this offset. :returns: True if all the provided predicates match or are None """


        if rng:
            s, e = rng
        else:
            e = s = None

        return ((e is None or self.end == e) and
                (s is None or self.start == s)) and \
            (props is None or props.issubset(self.props)) and \
            (offset is None or self.start >= offset)