code: def value_counts_arraylike(
      values: np.ndarray,
      dropna: bool,
      mask: npt.NDArray[np.bool_] | None = None,
  ) -> tuple[ArrayLike, npt.NDArray[np.int64], int]:
      """
      Parameters
      ----------
      values : np.ndarray
      dropna : bool
      mask : np.ndarray[bool] or None, default None
  
      Returns
      -------
      uniques : np.ndarray
      counts : np.ndarray[np.int64]
      """
      original = values
      values = _ensure_data(values)
  
      keys, counts, na_counter = htable.value_count(
          values, dropna, mask=mask
      )
  
      if needs_i8_conversion(original.dtype):
          # datetime, timedelta, or period
  
          if dropna:
              mask = keys != iNaT
              keys, counts = keys[mask], counts[mask]
  
      res_keys = _reconstruct_data(keys, original.dtype, original)
      return res_keys, counts, na_counter
  
imports: from __future__ import annotations
  import decimal
  import operator
  from textwrap import dedent
  from typing import TYPE_CHECKING, Literal, cast
  import warnings
  import numpy
  from pandas._libs import algos, hashtable, iNaT, lib
  from pandas._typing import AnyArrayLike, ArrayLike, ArrayLikeT, AxisInt, DtypeObj, TakeIndexer, npt
  from pandas.util._decorators import doc
  from pandas.util._exceptions import find_stack_level
  from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike, np_find_common_type
  from pandas.core.dtypes.common import ensure_float64, ensure_object, ensure_platform_int, is_array_like, is_bool_dtype, is_complex_dtype, is_dict_like, is_extension_array_dtype, is_float, is_float_dtype, is_integer, is_integer_dtype, is_list_like, is_object_dtype, is_signed_integer_dtype, needs_i8_conversion
  from pandas.core.dtypes.concat import concat_compat
  from pandas.core.dtypes.dtypes import BaseMaskedDtype, CategoricalDtype, ExtensionDtype, NumpyEADtype
  from pandas.core.dtypes.generic import ABCDatetimeArray, ABCExtensionArray, ABCIndex, ABCMultiIndex, ABCSeries, ABCTimedeltaArray
  from pandas.core.dtypes.missing import isna, na_value_for_dtype
  from pandas.core.array_algos.take import take_nd
  from pandas.core.construction import array, ensure_wrapped_if_datetimelike, extract_array
  from pandas.core.indexers import validate_indices
label_desc: Use image node_id 14 for calling a global function with example usage: value_counts_arraylike(values, dropna, mask) and returns: res_keys,  counts,  na_counter