code: def _get_multiindex_indexer(join_keys, index, sort):
      from functools import partial
  
      # bind `sort` argument
      fkeys = partial(_factorize_keys, sort=sort)
  
      # left & right join labels and num. of levels at each location
      rcodes, lcodes, shape = map(
          list, zip(*map(fkeys, index.levels, join_keys))
      )
      if sort:
          rcodes = list(map(np.take, rcodes, index.codes))
      else:
          i8copy = lambda a: a.astype("i8", subok=False, copy=True)
          rcodes = list(map(i8copy, index.codes))
  
      # fix right labels if there were any nulls
      for i in range(len(join_keys)):
          mask = index.codes[i] == -1
          if mask.any():
              # check if there already was any nulls at this location
              # if there was, it is factorized to `shape[i] - 1`
              a = join_keys[i][lcodes[i] == shape[i] - 1]
              if a.size == 0 or not a[0] != a[0]:
                  shape[i] += 1
  
              rcodes[i][mask] = shape[i] - 1
  
      # get flat i8 join keys
      lkey, rkey = _get_join_keys(lcodes, rcodes, shape, sort)
  
      # factorize keys to a dense i8 space
      lkey, rkey, count = fkeys(lkey, rkey)
  
      return libjoin.left_outer_join(lkey, rkey, count, sort=sort)
  
imports: import copy
  import string
  import warnings
  import numpy
  from pandas._libs import hashtable, join, lib
  import pandas.compat
  from pandas.compat import filter, lzip, map, range, zip
  from pandas.errors import MergeError
  from pandas.util._decorators import Appender, Substitution
  from pandas.core.dtypes.common import ensure_float64, ensure_int64, ensure_object, is_array_like, is_bool, is_bool_dtype, is_categorical_dtype, is_datetime64_dtype, is_datetime64tz_dtype, is_datetimelike, is_dtype_equal, is_extension_array_dtype, is_float_dtype, is_int64_dtype, is_integer, is_integer_dtype, is_list_like, is_number, is_numeric_dtype, is_object_dtype, needs_i8_conversion
  from pandas.core.dtypes.missing import isnull, na_value_for_dtype
  from pandas import Categorical, DataFrame, Index, MultiIndex, Series, Timedelta
  import pandas.core.algorithms
  from pandas.core.arrays.categorical import _recode_for_categories
  import pandas.core.common
  from pandas.core.frame import _merge_doc
  from pandas.core.internals import concatenate_block_managers, items_overlap_with_suffix
  import pandas.core.sorting
  from pandas.core.sorting import is_int64_overflow_possible
label_desc: Use image node_id 10 for calling a global function with example usage: _get_multiindex_indexer(join_keys, index, sort) and returns: libjoin