





'''simple docstring'''





from typing import TYPE_CHECKING

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


UpperCAmelCase			:			Any	  = {
    """configuration_gpt2""": ["""GPT2_PRETRAINED_CONFIG_ARCHIVE_MAP""", """GPT2Config""", """GPT2OnnxConfig"""],
    """tokenization_gpt2""": ["""GPT2Tokenizer"""],
}

try:
     if not is_tokenizers_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCAmelCase			:			str	  = ["""GPT2TokenizerFast"""]

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCAmelCase			:			Union[str, Any]	  = [
         """GPT2_PRETRAINED_MODEL_ARCHIVE_LIST""",
         """GPT2DoubleHeadsModel""",
         """GPT2ForQuestionAnswering""",
         """GPT2ForSequenceClassification""",
         """GPT2ForTokenClassification""",
         """GPT2LMHeadModel""",
         """GPT2Model""",
         """GPT2PreTrainedModel""",
         """load_tf_weights_in_gpt2""",
     ]

try:
     if not is_tf_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCAmelCase			:			Dict	  = [
         """TF_GPT2_PRETRAINED_MODEL_ARCHIVE_LIST""",
         """TFGPT2DoubleHeadsModel""",
         """TFGPT2ForSequenceClassification""",
         """TFGPT2LMHeadModel""",
         """TFGPT2MainLayer""",
         """TFGPT2Model""",
         """TFGPT2PreTrainedModel""",
     ]

try:
     if not is_keras_nlp_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCAmelCase			:			Dict	  = ["""TFGPT2Tokenizer"""]

try:
     if not is_flax_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCAmelCase			:			List[Any]	  = ["""FlaxGPT2LMHeadModel""", """FlaxGPT2Model""", """FlaxGPT2PreTrainedModel"""]

if TYPE_CHECKING:
     from .configuration_gpta import GPT2_PRETRAINED_CONFIG_ARCHIVE_MAP, GPTaConfig, GPTaOnnxConfig
     from .tokenization_gpta import GPTaTokenizer

     try:
          if not is_tokenizers_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_gpta_fast import GPTaTokenizerFast

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_gpta import (
              GPT2_PRETRAINED_MODEL_ARCHIVE_LIST,
              GPTaDoubleHeadsModel,
              GPTaForQuestionAnswering,
              GPTaForSequenceClassification,
              GPTaForTokenClassification,
              GPTaLMHeadModel,
              GPTaModel,
              GPTaPreTrainedModel,
              load_tf_weights_in_gpta,
          )

     try:
          if not is_tf_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_tf_gpta import (
              TF_GPT2_PRETRAINED_MODEL_ARCHIVE_LIST,
              TFGPTaDoubleHeadsModel,
              TFGPTaForSequenceClassification,
              TFGPTaLMHeadModel,
              TFGPTaMainLayer,
              TFGPTaModel,
              TFGPTaPreTrainedModel,
          )

     try:
          if not is_keras_nlp_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_gpta_tf import TFGPTaTokenizer

     try:
          if not is_flax_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_flax_gpta import FlaxGPTaLMHeadModel, FlaxGPTaModel, FlaxGPTaPreTrainedModel

else:
     import sys

     UpperCAmelCase			:			Dict	  = _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)













def   _A (	SCREAMING_SNAKE_CASE  :     int		):





  """simple docstring"""



  if not isinstance(SCREAMING_SNAKE_CASE , SCREAMING_SNAKE_CASE		) or number < 0:
    raise ValueError("Input must be a non-negative integer"		)

  a__			:      List[str]            =number & ~(number - 1)
  a__			:      Optional[int]            =0
  while intermediate:
    intermediate >>= 1
    index += 1
  return index - 1


if __name__ == "__main__":
     import doctest

     doctest.testmod(verbose=True)






