input: Write a python function to filter outliers from a dataset based on the interquartile range.
  assert filter_outliers([25, 28, 32, 36, 39, 45, 45]) == []
  assert filter_outliers([10, 12, 14, 15, 18, 100, 105]) == [100, 105]
  assert filter_outliers([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]) == [100]
output: def filter_outliers(data):
      if not data:
          return []
      
      sorted_data = sorted(data)
      q1 = sorted_data[len(sorted_data) // 4]
      q3 = sorted_data[(len(sorted_data) * 3) // 4]
      iqr = q3 - q1
      lower_bound = q1 - 1.5 * iqr
      upper_bound = q3 + 1.5 * iqr
      
      return [x for x in data if x < lower_bound or x > upper_bound]