

from __future__ import annotations

snake_case_        =			tuple[int, int, int]
snake_case_        =			tuple[str, str, str]


# used alphabet --------------------------
# from string.ascii_uppercase
snake_case_        =			'''ABCDEFGHIJKLMNOPQRSTUVWXYZ'''

# -------------------------- default selection --------------------------
# rotors --------------------------
snake_case_        =			'''EGZWVONAHDCLFQMSIPJBYUKXTR'''
snake_case_        =			'''FOBHMDKEXQNRAULPGSJVTYICZW'''
snake_case_        =			'''ZJXESIUQLHAVRMDOYGTNFWPBKC'''
# reflector --------------------------
snake_case_        =			{
    '''A''': '''N''',
    '''N''': '''A''',
    '''B''': '''O''',
    '''O''': '''B''',
    '''C''': '''P''',
    '''P''': '''C''',
    '''D''': '''Q''',
    '''Q''': '''D''',
    '''E''': '''R''',
    '''R''': '''E''',
    '''F''': '''S''',
    '''S''': '''F''',
    '''G''': '''T''',
    '''T''': '''G''',
    '''H''': '''U''',
    '''U''': '''H''',
    '''I''': '''V''',
    '''V''': '''I''',
    '''J''': '''W''',
    '''W''': '''J''',
    '''K''': '''X''',
    '''X''': '''K''',
    '''L''': '''Y''',
    '''Y''': '''L''',
    '''M''': '''Z''',
    '''Z''': '''M''',
}

# -------------------------- extra rotors --------------------------
snake_case_        =			'''RMDJXFUWGISLHVTCQNKYPBEZOA'''
snake_case_        =			'''SGLCPQWZHKXAREONTFBVIYJUDM'''
snake_case_        =			'''HVSICLTYKQUBXDWAJZOMFGPREN'''
snake_case_        =			'''RZWQHFMVDBKICJLNTUXAGYPSOE'''
snake_case_        =			'''LFKIJODBEGAMQPXVUHYSTCZRWN'''
snake_case_        =			'''KOAEGVDHXPQZMLFTYWJNBRCIUS'''

def      snake_case__      (   SCREAMING_SNAKE_CASE_		:   RotorPositionT     ,					SCREAMING_SNAKE_CASE_		:   RotorSelectionT     ,					SCREAMING_SNAKE_CASE_		:   str      ):



     '''simple docstring'''





     if (unique_rotsel := len(set(SCREAMING_SNAKE_CASE_      )      )) < 3:
          lowercase__   :       List[Any]				=	f"""Please use 3 unique rotors (not {unique_rotsel})"""
          raise Exception(SCREAMING_SNAKE_CASE_      )

     # Checks if rotor positions are valid
     lowercase__				,			lowercase__				,			lowercase__   :       str				=	rotpos
     if not 0 < rotorposa <= len(SCREAMING_SNAKE_CASE_      ):
          lowercase__   :       str				=	f"""First rotor position is not within range of 1..26 ({rotorposa}"""
          raise ValueError(SCREAMING_SNAKE_CASE_      )
     if not 0 < rotorposa <= len(SCREAMING_SNAKE_CASE_      ):
          lowercase__   :       int				=	f"""Second rotor position is not within range of 1..26 ({rotorposa})"""
          raise ValueError(SCREAMING_SNAKE_CASE_      )
     if not 0 < rotorposa <= len(SCREAMING_SNAKE_CASE_      ):
          lowercase__   :       Union[str, Any]				=	f"""Third rotor position is not within range of 1..26 ({rotorposa})"""
          raise ValueError(SCREAMING_SNAKE_CASE_      )

     # Validates string and returns dict
     lowercase__   :       List[Any]				=	_plugboard(SCREAMING_SNAKE_CASE_      )

     return rotpos, rotsel, pbdict

def      snake_case__      (   SCREAMING_SNAKE_CASE_		:   str      ):



     '''simple docstring'''





     if not isinstance(SCREAMING_SNAKE_CASE_     ,					SCREAMING_SNAKE_CASE_      ):
          lowercase__   :       Optional[Any]				=	f"""Plugboard setting isn't type string ({type(SCREAMING_SNAKE_CASE_      )})"""
          raise TypeError(SCREAMING_SNAKE_CASE_      )
     elif len(SCREAMING_SNAKE_CASE_      ) % 2 != 0:
          lowercase__   :       int				=	f"""Odd number of symbols ({len(SCREAMING_SNAKE_CASE_      )})"""
          raise Exception(SCREAMING_SNAKE_CASE_      )
     elif pbstring == "":
          return {}

     pbstring.replace(' '     ,					''      )

     # Checks if all characters are unique
     lowercase__   :       Any				=	set()
     for i in pbstring:
          if i not in abc:
               lowercase__   :       List[Any]				=	f"""'{i}' not in list of symbols"""
               raise Exception(SCREAMING_SNAKE_CASE_      )
          elif i in tmppbl:
               lowercase__   :       Union[str, Any]				=	f"""Duplicate symbol ({i})"""
               raise Exception(SCREAMING_SNAKE_CASE_      )
          else:
               tmppbl.add(SCREAMING_SNAKE_CASE_      )
     del tmppbl

     # Created the dictionary
     lowercase__   :       str				=	{}
     for j in range(0     ,					len(SCREAMING_SNAKE_CASE_      ) - 1     ,					2      ):
          lowercase__   :       int				=	pbstring[j + 1]
          lowercase__   :       str				=	pbstring[j]

     return pb

def      snake_case__      (   SCREAMING_SNAKE_CASE_		:   str     ,					SCREAMING_SNAKE_CASE_		:   RotorPositionT     ,					SCREAMING_SNAKE_CASE_		:   RotorSelectionT = (rotora, rotora, rotora)     ,					SCREAMING_SNAKE_CASE_		:   str = ""     ,					):



     '''simple docstring'''





     lowercase__   :       Dict				=	text.upper()
     lowercase__				,			lowercase__				,			lowercase__   :       Optional[int]				=	_validator(
         SCREAMING_SNAKE_CASE_     ,					SCREAMING_SNAKE_CASE_     ,					plugb.upper()      )

     lowercase__				,			lowercase__				,			lowercase__   :       List[str]				=	rotor_position
     lowercase__				,			lowercase__				,			lowercase__   :       List[str]				=	rotor_selection
     rotorposa -= 1
     rotorposa -= 1
     rotorposa -= 1

     lowercase__   :       List[str]				=	[]

     # encryption/decryption process --------------------------
     for symbol in text:
          if symbol in abc:
               # 1st plugboard --------------------------
               if symbol in plugboard:
                    lowercase__   :       Dict				=	plugboard[symbol]

               # rotor ra --------------------------
               lowercase__   :       str				=	abc.index(SCREAMING_SNAKE_CASE_      ) + rotorposa
               lowercase__   :       Optional[int]				=	rotora[index % len(SCREAMING_SNAKE_CASE_      )]

               # rotor rb --------------------------
               lowercase__   :       int				=	abc.index(SCREAMING_SNAKE_CASE_      ) + rotorposa
               lowercase__   :       Optional[int]				=	rotora[index % len(SCREAMING_SNAKE_CASE_      )]

               # rotor rc --------------------------
               lowercase__   :       int				=	abc.index(SCREAMING_SNAKE_CASE_      ) + rotorposa
               lowercase__   :       Optional[int]				=	rotora[index % len(SCREAMING_SNAKE_CASE_      )]

               # reflector --------------------------
               # this is the reason you don't need another machine to decipher

               lowercase__   :       List[Any]				=	reflector[symbol]

               # 2nd rotors
               lowercase__   :       str				=	abc[rotora.index(SCREAMING_SNAKE_CASE_      ) - rotorposa]
               lowercase__   :       List[str]				=	abc[rotora.index(SCREAMING_SNAKE_CASE_      ) - rotorposa]
               lowercase__   :       Dict				=	abc[rotora.index(SCREAMING_SNAKE_CASE_      ) - rotorposa]

               # 2nd plugboard
               if symbol in plugboard:
                    lowercase__   :       Optional[Any]				=	plugboard[symbol]

               # moves/resets rotor positions
               rotorposa += 1
               if rotorposa >= len(SCREAMING_SNAKE_CASE_      ):
                    lowercase__   :       Any				=	0
                    rotorposa += 1
               if rotorposa >= len(SCREAMING_SNAKE_CASE_      ):
                    lowercase__   :       Optional[Any]				=	0
                    rotorposa += 1
               if rotorposa >= len(SCREAMING_SNAKE_CASE_      ):
                    lowercase__   :       int				=	0

        # else:
        #    pass
        #    Error could be also raised
        #    raise ValueError(
        #       'Invalid symbol('+repr(symbol)+')')
          result.append(SCREAMING_SNAKE_CASE_      )

     return "".join(SCREAMING_SNAKE_CASE_      )


if __name__ == "__main__":
       snake_case_        =			'''This is my Python script that emulates the Enigma machine from WWII.'''
       snake_case_        =			(1, 1, 1)
       snake_case_        =			'''pictures'''
       snake_case_        =			(rotora, rotora, rotora)
       snake_case_        =			enigma(message, rotor_pos, rotor_sel, pb)

       print('''Encrypted message:''', en)
       print('''Decrypted message:''', enigma(en, rotor_pos, rotor_sel, pb))




from collections import OrderedDict

from ...utils import logging
from .auto_factory import _BaseAutoModelClass, _LazyAutoMapping, auto_class_update
from .configuration_auto import CONFIG_MAPPING_NAMES


snake_case_        =			logging.get_logger(__name__)


snake_case_        =			OrderedDict(
    [
        # Base model mapping
        ('''albert''', '''FlaxAlbertModel'''),
        ('''bart''', '''FlaxBartModel'''),
        ('''beit''', '''FlaxBeitModel'''),
        ('''bert''', '''FlaxBertModel'''),
        ('''big_bird''', '''FlaxBigBirdModel'''),
        ('''blenderbot''', '''FlaxBlenderbotModel'''),
        ('''blenderbot-small''', '''FlaxBlenderbotSmallModel'''),
        ('''clip''', '''FlaxCLIPModel'''),
        ('''distilbert''', '''FlaxDistilBertModel'''),
        ('''electra''', '''FlaxElectraModel'''),
        ('''gpt-sw3''', '''FlaxGPT2Model'''),
        ('''gpt2''', '''FlaxGPT2Model'''),
        ('''gpt_neo''', '''FlaxGPTNeoModel'''),
        ('''gptj''', '''FlaxGPTJModel'''),
        ('''longt5''', '''FlaxLongT5Model'''),
        ('''marian''', '''FlaxMarianModel'''),
        ('''mbart''', '''FlaxMBartModel'''),
        ('''mt5''', '''FlaxMT5Model'''),
        ('''opt''', '''FlaxOPTModel'''),
        ('''pegasus''', '''FlaxPegasusModel'''),
        ('''regnet''', '''FlaxRegNetModel'''),
        ('''resnet''', '''FlaxResNetModel'''),
        ('''roberta''', '''FlaxRobertaModel'''),
        ('''roberta-prelayernorm''', '''FlaxRobertaPreLayerNormModel'''),
        ('''roformer''', '''FlaxRoFormerModel'''),
        ('''t5''', '''FlaxT5Model'''),
        ('''vision-text-dual-encoder''', '''FlaxVisionTextDualEncoderModel'''),
        ('''vit''', '''FlaxViTModel'''),
        ('''wav2vec2''', '''FlaxWav2Vec2Model'''),
        ('''whisper''', '''FlaxWhisperModel'''),
        ('''xglm''', '''FlaxXGLMModel'''),
        ('''xlm-roberta''', '''FlaxXLMRobertaModel'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        # Model for pre-training mapping
        ('''albert''', '''FlaxAlbertForPreTraining'''),
        ('''bart''', '''FlaxBartForConditionalGeneration'''),
        ('''bert''', '''FlaxBertForPreTraining'''),
        ('''big_bird''', '''FlaxBigBirdForPreTraining'''),
        ('''electra''', '''FlaxElectraForPreTraining'''),
        ('''longt5''', '''FlaxLongT5ForConditionalGeneration'''),
        ('''mbart''', '''FlaxMBartForConditionalGeneration'''),
        ('''mt5''', '''FlaxMT5ForConditionalGeneration'''),
        ('''roberta''', '''FlaxRobertaForMaskedLM'''),
        ('''roberta-prelayernorm''', '''FlaxRobertaPreLayerNormForMaskedLM'''),
        ('''roformer''', '''FlaxRoFormerForMaskedLM'''),
        ('''t5''', '''FlaxT5ForConditionalGeneration'''),
        ('''wav2vec2''', '''FlaxWav2Vec2ForPreTraining'''),
        ('''whisper''', '''FlaxWhisperForConditionalGeneration'''),
        ('''xlm-roberta''', '''FlaxXLMRobertaForMaskedLM'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        # Model for Masked LM mapping
        ('''albert''', '''FlaxAlbertForMaskedLM'''),
        ('''bart''', '''FlaxBartForConditionalGeneration'''),
        ('''bert''', '''FlaxBertForMaskedLM'''),
        ('''big_bird''', '''FlaxBigBirdForMaskedLM'''),
        ('''distilbert''', '''FlaxDistilBertForMaskedLM'''),
        ('''electra''', '''FlaxElectraForMaskedLM'''),
        ('''mbart''', '''FlaxMBartForConditionalGeneration'''),
        ('''roberta''', '''FlaxRobertaForMaskedLM'''),
        ('''roberta-prelayernorm''', '''FlaxRobertaPreLayerNormForMaskedLM'''),
        ('''roformer''', '''FlaxRoFormerForMaskedLM'''),
        ('''xlm-roberta''', '''FlaxXLMRobertaForMaskedLM'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        # Model for Seq2Seq Causal LM mapping
        ('''bart''', '''FlaxBartForConditionalGeneration'''),
        ('''blenderbot''', '''FlaxBlenderbotForConditionalGeneration'''),
        ('''blenderbot-small''', '''FlaxBlenderbotSmallForConditionalGeneration'''),
        ('''encoder-decoder''', '''FlaxEncoderDecoderModel'''),
        ('''longt5''', '''FlaxLongT5ForConditionalGeneration'''),
        ('''marian''', '''FlaxMarianMTModel'''),
        ('''mbart''', '''FlaxMBartForConditionalGeneration'''),
        ('''mt5''', '''FlaxMT5ForConditionalGeneration'''),
        ('''pegasus''', '''FlaxPegasusForConditionalGeneration'''),
        ('''t5''', '''FlaxT5ForConditionalGeneration'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        # Model for Image-classsification
        ('''beit''', '''FlaxBeitForImageClassification'''),
        ('''regnet''', '''FlaxRegNetForImageClassification'''),
        ('''resnet''', '''FlaxResNetForImageClassification'''),
        ('''vit''', '''FlaxViTForImageClassification'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        ('''vision-encoder-decoder''', '''FlaxVisionEncoderDecoderModel'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        # Model for Causal LM mapping
        ('''bart''', '''FlaxBartForCausalLM'''),
        ('''bert''', '''FlaxBertForCausalLM'''),
        ('''big_bird''', '''FlaxBigBirdForCausalLM'''),
        ('''electra''', '''FlaxElectraForCausalLM'''),
        ('''gpt-sw3''', '''FlaxGPT2LMHeadModel'''),
        ('''gpt2''', '''FlaxGPT2LMHeadModel'''),
        ('''gpt_neo''', '''FlaxGPTNeoForCausalLM'''),
        ('''gptj''', '''FlaxGPTJForCausalLM'''),
        ('''opt''', '''FlaxOPTForCausalLM'''),
        ('''roberta''', '''FlaxRobertaForCausalLM'''),
        ('''roberta-prelayernorm''', '''FlaxRobertaPreLayerNormForCausalLM'''),
        ('''xglm''', '''FlaxXGLMForCausalLM'''),
        ('''xlm-roberta''', '''FlaxXLMRobertaForCausalLM'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        # Model for Sequence Classification mapping
        ('''albert''', '''FlaxAlbertForSequenceClassification'''),
        ('''bart''', '''FlaxBartForSequenceClassification'''),
        ('''bert''', '''FlaxBertForSequenceClassification'''),
        ('''big_bird''', '''FlaxBigBirdForSequenceClassification'''),
        ('''distilbert''', '''FlaxDistilBertForSequenceClassification'''),
        ('''electra''', '''FlaxElectraForSequenceClassification'''),
        ('''mbart''', '''FlaxMBartForSequenceClassification'''),
        ('''roberta''', '''FlaxRobertaForSequenceClassification'''),
        ('''roberta-prelayernorm''', '''FlaxRobertaPreLayerNormForSequenceClassification'''),
        ('''roformer''', '''FlaxRoFormerForSequenceClassification'''),
        ('''xlm-roberta''', '''FlaxXLMRobertaForSequenceClassification'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        # Model for Question Answering mapping
        ('''albert''', '''FlaxAlbertForQuestionAnswering'''),
        ('''bart''', '''FlaxBartForQuestionAnswering'''),
        ('''bert''', '''FlaxBertForQuestionAnswering'''),
        ('''big_bird''', '''FlaxBigBirdForQuestionAnswering'''),
        ('''distilbert''', '''FlaxDistilBertForQuestionAnswering'''),
        ('''electra''', '''FlaxElectraForQuestionAnswering'''),
        ('''mbart''', '''FlaxMBartForQuestionAnswering'''),
        ('''roberta''', '''FlaxRobertaForQuestionAnswering'''),
        ('''roberta-prelayernorm''', '''FlaxRobertaPreLayerNormForQuestionAnswering'''),
        ('''roformer''', '''FlaxRoFormerForQuestionAnswering'''),
        ('''xlm-roberta''', '''FlaxXLMRobertaForQuestionAnswering'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        # Model for Token Classification mapping
        ('''albert''', '''FlaxAlbertForTokenClassification'''),
        ('''bert''', '''FlaxBertForTokenClassification'''),
        ('''big_bird''', '''FlaxBigBirdForTokenClassification'''),
        ('''distilbert''', '''FlaxDistilBertForTokenClassification'''),
        ('''electra''', '''FlaxElectraForTokenClassification'''),
        ('''roberta''', '''FlaxRobertaForTokenClassification'''),
        ('''roberta-prelayernorm''', '''FlaxRobertaPreLayerNormForTokenClassification'''),
        ('''roformer''', '''FlaxRoFormerForTokenClassification'''),
        ('''xlm-roberta''', '''FlaxXLMRobertaForTokenClassification'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        # Model for Multiple Choice mapping
        ('''albert''', '''FlaxAlbertForMultipleChoice'''),
        ('''bert''', '''FlaxBertForMultipleChoice'''),
        ('''big_bird''', '''FlaxBigBirdForMultipleChoice'''),
        ('''distilbert''', '''FlaxDistilBertForMultipleChoice'''),
        ('''electra''', '''FlaxElectraForMultipleChoice'''),
        ('''roberta''', '''FlaxRobertaForMultipleChoice'''),
        ('''roberta-prelayernorm''', '''FlaxRobertaPreLayerNormForMultipleChoice'''),
        ('''roformer''', '''FlaxRoFormerForMultipleChoice'''),
        ('''xlm-roberta''', '''FlaxXLMRobertaForMultipleChoice'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        ('''bert''', '''FlaxBertForNextSentencePrediction'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        ('''speech-encoder-decoder''', '''FlaxSpeechEncoderDecoderModel'''),
        ('''whisper''', '''FlaxWhisperForConditionalGeneration'''),
    ]
)

snake_case_        =			OrderedDict(
    [
        ('''whisper''', '''FlaxWhisperForAudioClassification'''),
    ]
)

snake_case_        =			_LazyAutoMapping(CONFIG_MAPPING_NAMES, FLAX_MODEL_MAPPING_NAMES)
snake_case_        =			_LazyAutoMapping(CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_PRETRAINING_MAPPING_NAMES)
snake_case_        =			_LazyAutoMapping(CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_MASKED_LM_MAPPING_NAMES)
snake_case_        =			_LazyAutoMapping(
    CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES
)
snake_case_        =			_LazyAutoMapping(
    CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES
)
snake_case_        =			_LazyAutoMapping(CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES)
snake_case_        =			_LazyAutoMapping(CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_CAUSAL_LM_MAPPING_NAMES)
snake_case_        =			_LazyAutoMapping(
    CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES
)
snake_case_        =			_LazyAutoMapping(
    CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES
)
snake_case_        =			_LazyAutoMapping(
    CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES
)
snake_case_        =			_LazyAutoMapping(
    CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING_NAMES
)
snake_case_        =			_LazyAutoMapping(
    CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING_NAMES
)
snake_case_        =			_LazyAutoMapping(
    CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES
)
snake_case_        =			_LazyAutoMapping(
    CONFIG_MAPPING_NAMES, FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMES
)


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	str														=					FLAX_MODEL_MAPPING



snake_case_        =			auto_class_update(FlaxAutoModel)


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	Dict														=					FLAX_MODEL_FOR_PRETRAINING_MAPPING



snake_case_        =			auto_class_update(FlaxAutoModelForPreTraining, head_doc='''pretraining''')


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	List[Any]														=					FLAX_MODEL_FOR_CAUSAL_LM_MAPPING



snake_case_        =			auto_class_update(FlaxAutoModelForCausalLM, head_doc='''causal language modeling''')


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	Optional[int]														=					FLAX_MODEL_FOR_MASKED_LM_MAPPING



snake_case_        =			auto_class_update(FlaxAutoModelForMaskedLM, head_doc='''masked language modeling''')


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	Optional[int]														=					FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING



snake_case_        =			auto_class_update(
    FlaxAutoModelForSeqaSeqLM, head_doc='''sequence-to-sequence language modeling''', checkpoint_for_example='''t5-base'''
)


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	Dict														=					FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING



snake_case_        =			auto_class_update(
    FlaxAutoModelForSequenceClassification, head_doc='''sequence classification'''
)


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	Tuple														=					FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING



snake_case_        =			auto_class_update(FlaxAutoModelForQuestionAnswering, head_doc='''question answering''')


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	Tuple														=					FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING



snake_case_        =			auto_class_update(
    FlaxAutoModelForTokenClassification, head_doc='''token classification'''
)


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	str														=					FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING



snake_case_        =			auto_class_update(FlaxAutoModelForMultipleChoice, head_doc='''multiple choice''')


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	Union[str, Any]														=					FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING



snake_case_        =			auto_class_update(
    FlaxAutoModelForNextSentencePrediction, head_doc='''next sentence prediction'''
)


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	Union[str, Any]														=					FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING



snake_case_        =			auto_class_update(
    FlaxAutoModelForImageClassification, head_doc='''image classification'''
)


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	Tuple														=					FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING



snake_case_        =			auto_class_update(FlaxAutoModelForVisionaSeq, head_doc='''vision-to-text modeling''')


class 				SCREAMING_SNAKE_CASE__ (_BaseAutoModelClass					):
    __lowerCamelCase						:	List[str]														=					FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING



snake_case_        =			auto_class_update(
    FlaxAutoModelForSpeechSeqaSeq, head_doc='''sequence-to-sequence speech-to-text modeling'''
)

