code: def decode(self):
          
  
          parsed_header = self._parse_header(self.raw_report[:self._HEADER_LENGTH])
  
          auth_size = self._AUTH_BLOCK_LENGTHS.get(parsed_header.auth_type)
          assert auth_size is not None
          assert parsed_header.reading_length % 16 == 0
  
          time_base = self.received_time - datetime.timedelta(seconds=parsed_header.sent_timestamp)
  
          readings = self.raw_report[self._HEADER_LENGTH:self._HEADER_LENGTH + parsed_header.reading_length]
          parsed_readings = []
  
          for i in range(0, len(readings), 16):
              reading = readings[i:i+16]
              stream, _, reading_id, timestamp, value = struct.unpack("<HHLLL", reading)
  
              parsed = IOTileReading(timestamp, stream, value, time_base=time_base, reading_id=reading_id)
              parsed_readings.append(parsed)
  
          self.sent_timestamp = parsed_header.sent_timestamp
          self.origin = parsed_header.uuid
  
          return parsed_readings, []
docs: Decode this report into a list of visible readings.