code: def query(self, l, r):
      l, r = l + self.size, r + self.size
      res = None
      while l <= r:
          if l % 2 == 1:
              res = (
                  self.tree[l]
                  if res is None
                  else self.fn(res, self.tree[l])
              )
          if r % 2 == 0:
              res = (
                  self.tree[r]
                  if res is None
                  else self.fn(res, self.tree[r])
              )
          l, r = (l + 1) // 2, (r - 1) // 2
      return res
  
label_desc: Use image node_id 4 for calling the SegmentTree obj's underlying member method code with example usage: obj.query(l, r) and returns: res