code: def _pad_simple(array, pad_width, fill_value=None):
      """Pads an array on all sides with either a constant or undefined values.
  
      Args:
        array(cupy.ndarray): Array to grow.
        pad_width(sequence of tuple[int, int]): Pad width on both sides for each
            dimension in `arr`.
        fill_value(scalar, optional): If provided the padded area is
            filled with this value, otherwise the pad area left undefined.
            (Default value = None)
      """
      # Allocate grown array
      new_shape = tuple(
          left + size + right
          for size, (left, right) in zip(array.shape, pad_width)
      )
      order = (
          "F" if array.flags.fnc else "C"
      )  # Fortran and not also C-order
      padded = cupy.empty(new_shape, dtype=array.dtype, order=order)
  
      if fill_value is not None:
          padded.fill(fill_value)
  
      # Copy old array into correct space
      original_area_slice = tuple(
          slice(left, left + size)
          for size, (left, right) in zip(array.shape, pad_width)
      )
      padded[original_area_slice] = array
  
      return padded, original_area_slice
  
file_path: cupy/cupy/_padding/pad.py
imports: import numbers
  import numpy
  import cupy
label_desc: Use image node_id 4 for calling a global function with example usage: _pad_simple(array, pad_width, fill_value) and returns: padded,  original_area_slice