f._by_start.irange(
            minimum=(start, 0, 0), maximum=(end, sys.maxsize, sys.maxsize)
        ):
            if intvl[1] &lt;= end:
                yield intvl

    def starting_from(self, offset):
        &#34;&#34;&#34;
        Returns intervals that start at or after offset.
        &#34;&#34;&#34;
        return self._by_start.irange(minimum=(offset, 0, 0))

    def starting_before(self, offset):
        &#34;&#34;&#34;
        Returns intervals  that start before offset.
        &#34;&#34;&#34