code: def percentile(self, percentile):
          
          assert(percentile >= 0 and percentile <= 100)
          assert(self.kind in ["exponential", "linear", "enumerated", "boolean"])
  
          fraction = percentile / 100
          to_count = fraction * self.buckets.sum()
          percentile_bucket = 0
  
          for percentile_bucket in range(len(self.buckets)):
              freq = self.buckets.values[percentile_bucket]
              if to_count - freq <= 0:
                  break
              to_count -= freq
  
          percentile_lower_boundary = self.buckets.index[percentile_bucket]
          percentile_frequency = self.buckets.values[percentile_bucket]
  
          if percentile_bucket == len(self.buckets) - 1 or percentile_frequency == 0:
              return percentile_lower_boundary
  
          width = self.buckets.index[percentile_bucket + 1] - self.buckets.index[percentile_bucket]
          return percentile_lower_boundary + width * to_count / percentile_frequency
docs: Returns the nth percentile of the histogram.