

'''simple docstring'''






from typing import TYPE_CHECKING

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


lowerCAmelCase__											=	{
    '''configuration_albert''': ['''ALBERT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''AlbertConfig''', '''AlbertOnnxConfig'''],
}

try:
 if not is_sentencepiece_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCAmelCase__											=	['''AlbertTokenizer''']

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

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCAmelCase__											=	[
     '''ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''AlbertForMaskedLM''',
     '''AlbertForMultipleChoice''',
     '''AlbertForPreTraining''',
     '''AlbertForQuestionAnswering''',
     '''AlbertForSequenceClassification''',
     '''AlbertForTokenClassification''',
     '''AlbertModel''',
     '''AlbertPreTrainedModel''',
     '''load_tf_weights_in_albert''',
 ]

try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCAmelCase__											=	[
     '''TF_ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''TFAlbertForMaskedLM''',
     '''TFAlbertForMultipleChoice''',
     '''TFAlbertForPreTraining''',
     '''TFAlbertForQuestionAnswering''',
     '''TFAlbertForSequenceClassification''',
     '''TFAlbertForTokenClassification''',
     '''TFAlbertMainLayer''',
     '''TFAlbertModel''',
     '''TFAlbertPreTrainedModel''',
 ]

try:
 if not is_flax_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCAmelCase__											=	[
     '''FlaxAlbertForMaskedLM''',
     '''FlaxAlbertForMultipleChoice''',
     '''FlaxAlbertForPreTraining''',
     '''FlaxAlbertForQuestionAnswering''',
     '''FlaxAlbertForSequenceClassification''',
     '''FlaxAlbertForTokenClassification''',
     '''FlaxAlbertModel''',
     '''FlaxAlbertPreTrainedModel''',
 ]

if TYPE_CHECKING:
 from .configuration_albert import ALBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, AlbertConfig, AlbertOnnxConfig

 try:
  if not is_sentencepiece_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_albert import AlbertTokenizer

 try:
  if not is_tokenizers_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_albert_fast import AlbertTokenizerFast

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_albert import (
      ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
      AlbertForMaskedLM,
      AlbertForMultipleChoice,
      AlbertForPreTraining,
      AlbertForQuestionAnswering,
      AlbertForSequenceClassification,
      AlbertForTokenClassification,
      AlbertModel,
      AlbertPreTrainedModel,
      load_tf_weights_in_albert,
  )

 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_albert import (
      TF_ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
      TFAlbertForMaskedLM,
      TFAlbertForMultipleChoice,
      TFAlbertForPreTraining,
      TFAlbertForQuestionAnswering,
      TFAlbertForSequenceClassification,
      TFAlbertForTokenClassification,
      TFAlbertMainLayer,
      TFAlbertModel,
      TFAlbertPreTrainedModel,
  )

 try:
  if not is_flax_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_flax_albert import (
      FlaxAlbertForMaskedLM,
      FlaxAlbertForMultipleChoice,
      FlaxAlbertForPreTraining,
      FlaxAlbertForQuestionAnswering,
      FlaxAlbertForSequenceClassification,
      FlaxAlbertForTokenClassification,
      FlaxAlbertModel,
      FlaxAlbertPreTrainedModel,
  )
else:
 import sys

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








def   a_    ( lowerCAmelCase_      :			int	):

   if p < 2:
      raise ValueError('p should not be less than 2!'	)
   elif p == 2:
      return True

   __lowerCAmelCase								=	4
   __lowerCAmelCase								=	(1 << p) - 1
   for _ in range(p - 2	):
      __lowerCAmelCase								=	((s * s) - 2) % m
   return s == 0


if __name__ == "__main__":
     print(lucas_lehmer_test(7))
     print(lucas_lehmer_test(11))

