docs: def _decodeRelativeValidityPeriod(tpVp):
      """ Calculates the relative SMS validity period (based on the table in section 9.2.3.12 of GSM 03.40)
      :rtype: datetime.timedelta
      """
      if tpVp <= 143:
          return timedelta(minutes=((tpVp + 1) * 5))
      elif 144 <= tpVp <= 167:
          return timedelta(hours=12, minutes=((tpVp - 143) * 30))
      elif 168 <= tpVp <= 196:
          return timedelta(days=(tpVp - 166))
      elif 197 <= tpVp <= 255:
          return timedelta(weeks=(tpVp - 192))
      else:
          raise ValueError('tpVp must be in range [0, 255]')