code: def ao(high, low, fast=None, slow=None, offset=None, **kwargs):
      """Indicator: Awesome Oscillator (AO)"""
      # Validate Arguments
      fast = int(fast) if fast and fast > 0 else 5
      slow = int(slow) if slow and slow > 0 else 34
      if slow < fast:
          fast, slow = slow, fast
      _length = max(fast, slow)
      high = verify_series(high, _length)
      low = verify_series(low, _length)
      offset = get_offset(offset)
  
      if high is None or low is None:
          return
  
      # Calculate Result
      median_price = 0.5 * (high + low)
      fast_sma = sma(median_price, fast)
      slow_sma = sma(median_price, slow)
      ao = fast_sma - slow_sma
  
      # Offset
      if offset != 0:
          ao = ao.shift(offset)
  
      # Handle fills
      if "fillna" in kwargs:
          ao.fillna(kwargs["fillna"], inplace=True)
      if "fill_method" in kwargs:
          ao.fillna(method=kwargs["fill_method"], inplace=True)
  
      # Name and Categorize it
      ao.name = f"AO_{fast}_{slow}"
      ao.category = "momentum"
  
      return ao
  
label_desc: Use image node_id 1 for calling a global function with example usage: ao(high, low, fast, slow, offset) and returns: ao