code: def make_tree(self, i, l, r):
      if l == r:
          self.segment[i] = self.arr[l]
      elif l < r:
          self.make_tree(2 * i + 1, l, int((l + r) / 2))
          self.make_tree(2 * i + 2, int((l + r) / 2) + 1, r)
          self.segment[i] = self.fn(
              self.segment[2 * i + 1], self.segment[2 * i + 2]
          )
  
label_desc: Use image node_id 2 for calling the SegmentTree obj's underlying member method code with example usage: obj.make_tree(i, l, r) without return types