from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


UpperCamelCase__    							= {
    'configuration_mobilebert': [
        'MOBILEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'MobileBertConfig',
        'MobileBertOnnxConfig',
    ],
    'tokenization_mobilebert': ['MobileBertTokenizer'],
}

try:
      if not is_tokenizers_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      UpperCamelCase__    							= ['MobileBertTokenizerFast']

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      UpperCamelCase__    							= [
          'MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
          'MobileBertForMaskedLM',
          'MobileBertForMultipleChoice',
          'MobileBertForNextSentencePrediction',
          'MobileBertForPreTraining',
          'MobileBertForQuestionAnswering',
          'MobileBertForSequenceClassification',
          'MobileBertForTokenClassification',
          'MobileBertLayer',
          'MobileBertModel',
          'MobileBertPreTrainedModel',
          'load_tf_weights_in_mobilebert',
      ]

try:
      if not is_tf_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      UpperCamelCase__    							= [
          'TF_MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
          'TFMobileBertForMaskedLM',
          'TFMobileBertForMultipleChoice',
          'TFMobileBertForNextSentencePrediction',
          'TFMobileBertForPreTraining',
          'TFMobileBertForQuestionAnswering',
          'TFMobileBertForSequenceClassification',
          'TFMobileBertForTokenClassification',
          'TFMobileBertMainLayer',
          'TFMobileBertModel',
          'TFMobileBertPreTrainedModel',
      ]


if TYPE_CHECKING:
      from .configuration_mobilebert import (
          MOBILEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP,
          MobileBertConfig,
          MobileBertOnnxConfig,
      )
      from .tokenization_mobilebert import MobileBertTokenizer

      try:
            if not is_tokenizers_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .tokenization_mobilebert_fast import MobileBertTokenizerFast

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_mobilebert import (
                MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                MobileBertForMaskedLM,
                MobileBertForMultipleChoice,
                MobileBertForNextSentencePrediction,
                MobileBertForPreTraining,
                MobileBertForQuestionAnswering,
                MobileBertForSequenceClassification,
                MobileBertForTokenClassification,
                MobileBertLayer,
                MobileBertModel,
                MobileBertPreTrainedModel,
                load_tf_weights_in_mobilebert,
            )

      try:
            if not is_tf_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_mobilebert import (
                TF_MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                TFMobileBertForMaskedLM,
                TFMobileBertForMultipleChoice,
                TFMobileBertForNextSentencePrediction,
                TFMobileBertForPreTraining,
                TFMobileBertForQuestionAnswering,
                TFMobileBertForSequenceClassification,
                TFMobileBertForTokenClassification,
                TFMobileBertMainLayer,
                TFMobileBertModel,
                TFMobileBertPreTrainedModel,
            )

else:
      import sys

      UpperCamelCase__    							= _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)




from __future__ import annotations




def        lowerCAmelCase_			(					__A							)					->    list[int]:







      '''simple docstring'''


      if len(__A							) == 0:
            return array

      UpperCAmelCase__		,				UpperCAmelCase__								=  min(__A							), max(__A							)

      # Compute the variables
      UpperCAmelCase__								=  _max - _min + 1
      UpperCAmelCase__		,				UpperCAmelCase__								=  [0] * holes_range, [0] * holes_range

      # Make the sorting.
      for i in array:
            UpperCAmelCase__								=  i - _min
            UpperCAmelCase__								=  i
            holes_repeat[index] += 1

      # Makes the array back by replacing the numbers.
      UpperCAmelCase__								=  0
      for i in range(__A							):
            while holes_repeat[i] > 0:
                  UpperCAmelCase__								=  holes[i]
                  index += 1
                  holes_repeat[i] -= 1

    # Returns the sorted array.
      return array


if __name__ == "__main__":
      import doctest

      doctest.testmod()
      UpperCamelCase__    							= input('Enter numbers separated by comma:\n')
      UpperCamelCase__    							= [int(x) for x in user_input.split(',')]
      print(pigeon_sort(unsorted))



