
"""simple docstring"""





class A_      :




  '''simple docstring'''


  class A_      :




    '''simple docstring'''
    SCREAMING_SNAKE_CASE__     :		int    	=						"""_prev""", """_data""", """_next"""







    def __init__(						self							,  lowercase_							,  lowercase_							,  lowercase_    ):

       """simple docstring"""
       UpperCAmelCase_   :   int     	=       link_p
       UpperCAmelCase_   :   List[Any]     	=       element
       UpperCAmelCase_   :   Any     	=       link_n







    def 			UpperCamelCase__   (						self    ):

       """simple docstring"""
       return (
           F""" Prev -> {self._prev is not None}, Next -> {self._next is not None}"""
       )







  def __init__(						self    ):

     """simple docstring"""
     UpperCAmelCase_   :   Dict     	=       self._Node(lowercase_							,  lowercase_							,  lowercase_    )
     UpperCAmelCase_   :   int     	=       self._Node(lowercase_							,  lowercase_							,  lowercase_    )
     UpperCAmelCase_   :   Any     	=       self._trailer
     UpperCAmelCase_   :   Optional[Any]     	=       self._header
     UpperCAmelCase_   :   Optional[Any]     	=       0







  def __len__(						self    ):

     """simple docstring"""
     return self._size







  def 			UpperCamelCase__   (						self    ):

     """simple docstring"""
     return self.__len__() == 0







  def 			UpperCamelCase__   (						self							,  lowercase_							,  lowercase_							,  lowercase_    ):

     """simple docstring"""
     # Create new_node by setting it's prev.link -> header
     # setting it's next.link -> trailer
     UpperCAmelCase_   :   Optional[int]     	=       self._Node(lowercase_							,  lowercase_							,  lowercase_    )
     UpperCAmelCase_   :   Tuple     	=       new_node
     UpperCAmelCase_   :   List[str]     	=       new_node
     self._size += 1
     return self







  def 			UpperCamelCase__   (						self							,  lowercase_    ):

     """simple docstring"""
     UpperCAmelCase_   :   Dict     	=       node._prev
     UpperCAmelCase_   :   Union[str, Any]     	=       node._next

     UpperCAmelCase_   :   List[Any]     	=       successor
     UpperCAmelCase_   :   Optional[int]     	=       predecessor
     self._size -= 1
     UpperCAmelCase_   :   Dict     	=       node._data
     UpperCAmelCase_   :   List[str]     	=       None
     del node
     return temp




class A_      (_DoublyLinkedBase ):




  '''simple docstring'''







  def 			UpperCamelCase__   (						self    ):

     """simple docstring"""
     if self.is_empty():
        raise Exception("List is empty"    )
     return self._header._next._data







  def 			UpperCamelCase__   (						self    ):

     """simple docstring"""
     if self.is_empty():
        raise Exception("List is empty"    )
     return self._trailer._prev._data







  def 			UpperCamelCase__   (						self							,  lowercase_    ):

     """simple docstring"""
     return self._insert(self._header							,  lowercase_							,  self._header._next    )







  def 			UpperCamelCase__   (						self							,  lowercase_    ):

     """simple docstring"""
     return self._insert(self._trailer._prev							,  lowercase_							,  self._trailer    )







  def 			UpperCamelCase__   (						self    ):

     """simple docstring"""
     if self.is_empty():
        raise IndexError("remove_first from empty list"    )
     return self._delete(self._header._next    )







  def 			UpperCamelCase__   (						self    ):

     """simple docstring"""
     if self.is_empty():
        raise IndexError("remove_first from empty list"    )
     return self._delete(self._trailer._prev    )




"""simple docstring"""





from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_a									=				logging.get_logger(__name__)

_a									=				{
    'squeezebert/squeezebert-uncased': (
        'https://huggingface.co/squeezebert/squeezebert-uncased/resolve/main/config.json'
    ),
    'squeezebert/squeezebert-mnli': 'https://huggingface.co/squeezebert/squeezebert-mnli/resolve/main/config.json',
    'squeezebert/squeezebert-mnli-headless': (
        'https://huggingface.co/squeezebert/squeezebert-mnli-headless/resolve/main/config.json'
    ),
}


class A_      (lowercase__ ):




  '''simple docstring'''
  SCREAMING_SNAKE_CASE__     :		Any    	=						SQUEEZEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP
  SCREAMING_SNAKE_CASE__     :		Optional[Any]    	=						"""squeezebert"""







  def __init__(						self							,  lowercase_=3_0522							,  lowercase_=768							,  lowercase_=12							,  lowercase_=12							,  lowercase_=3072							,  lowercase_="gelu"							,  lowercase_=0.1							,  lowercase_=0.1							,  lowercase_=512							,  lowercase_=2							,  lowercase_=0.02							,  lowercase_=1E-1_2							,  lowercase_=0							,  lowercase_=768							,  lowercase_=4							,  lowercase_=4							,  lowercase_=4							,  lowercase_=1							,  lowercase_=4							,  lowercase_=4							,  **lowercase_							,  ):

     """simple docstring"""
     super().__init__(pad_token_id=lowercase_							,  **lowercase_    )

     UpperCAmelCase_   :   List[Any]     	=       vocab_size
     UpperCAmelCase_   :   Optional[Any]     	=       hidden_size
     UpperCAmelCase_   :   Tuple     	=       num_hidden_layers
     UpperCAmelCase_   :   Optional[int]     	=       num_attention_heads
     UpperCAmelCase_   :   Optional[Any]     	=       hidden_act
     UpperCAmelCase_   :   Tuple     	=       intermediate_size
     UpperCAmelCase_   :   Union[str, Any]     	=       hidden_dropout_prob
     UpperCAmelCase_   :   List[Any]     	=       attention_probs_dropout_prob
     UpperCAmelCase_   :   int     	=       max_position_embeddings
     UpperCAmelCase_   :   List[str]     	=       type_vocab_size
     UpperCAmelCase_   :   Optional[Any]     	=       initializer_range
     UpperCAmelCase_   :   Optional[int]     	=       layer_norm_eps
     UpperCAmelCase_   :   Tuple     	=       embedding_size
     UpperCAmelCase_   :   Dict     	=       q_groups
     UpperCAmelCase_   :   List[Any]     	=       k_groups
     UpperCAmelCase_   :   List[str]     	=       v_groups
     UpperCAmelCase_   :   Optional[Any]     	=       post_attention_groups
     UpperCAmelCase_   :   List[str]     	=       intermediate_groups
     UpperCAmelCase_   :   List[Any]     	=       output_groups




class A_      (lowercase__ ):




  '''simple docstring'''







  @property
  def 			UpperCamelCase__   (						self    ):

     """simple docstring"""
     if self.task == "multiple-choice":
        UpperCAmelCase_   :   List[str]     	=       {0: "batch", 1: "choice", 2: "sequence"}
     else:
        UpperCAmelCase_   :   Optional[int]     	=       {0: "batch", 1: "sequence"}
     return OrderedDict(
         [
             ("input_ids", dynamic_axis),
             ("attention_mask", dynamic_axis),
             ("token_type_ids", dynamic_axis),
         ]    )


