code: def __finalize(
      result_no_limiter: np.ndarray,
      final_amplitude_coefficient: float,
      need_default: bool,
      need_no_limiter: bool,
      need_no_limiter_normalized: bool,
      config: Config,
  ) -> (np.ndarray, np.ndarray, np.ndarray):
      debug_line()
      info(Code.INFO_FINALIZING)
  
      result_no_limiter_normalized = None
      if need_no_limiter_normalized:
          result_no_limiter_normalized, coefficient = normalize(
              result_no_limiter,
              config.threshold,
              config.min_value,
              normalize_clipped=True,
          )
          debug(
              f"The amplitude of the normalized RESULT should be adjusted by {to_db(coefficient)}"
          )
          if not np.isclose(final_amplitude_coefficient, 1.0):
              debug(
                  f"And by {to_db(final_amplitude_coefficient)} after applying some brickwall limiter to it"
              )
  
      result = None
      if need_default:
          result = limit(result_no_limiter, config)
          result = amplify(result, final_amplitude_coefficient)
  
      result_no_limiter = result_no_limiter if need_no_limiter else None
  
      return result, result_no_limiter, result_no_limiter_normalized
  
file_path: matchering/matchering/stages.py
imports: import numpy
  from .log import Code, info, debug, debug_line
  from .None import Config
  from .utils import to_db
  from .dsp import amplify, normalize, clip
  from .stage_helpers import normalize_reference, analyze_levels, get_fir, convolve, get_average_rms, get_lpis_and_match_rms, get_rms_c_and_amplify_pair
  from .limiter import limit
label_desc: Use image node_id 4 for calling a global function with example usage: __finalize(result_no_limiter, final_amplitude_coefficient, need_default, need_no_limiter, need_no_limiter_normalized, config) and returns: result,  result_no_limiter,  result_no_limiter_normalized