from math import pi, sqrt, tan

def 							UpperCamelCase				(    lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if side_length < 0:
              raise ValueError('surface_area_cube() only accepts non-negative values'   )
       return 6 * side_length**2

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if length < 0 or breadth < 0 or height < 0:
              raise ValueError('surface_area_cuboid() only accepts non-negative values'   )
       return 2 * ((length * breadth) + (breadth * height) + (length * height))

def 							UpperCamelCase				(    lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if radius < 0:
              raise ValueError('surface_area_sphere() only accepts non-negative values'   )
       return 4 * pi * radius**2

def 							UpperCamelCase				(    lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if radius < 0:
              raise ValueError('surface_area_hemisphere() only accepts non-negative values'   )
       return 3 * pi * radius**2

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if radius < 0 or height < 0:
              raise ValueError('surface_area_cone() only accepts non-negative values'   )
       return pi * radius * (radius + (height**2 + radius**2) ** 0.5)

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if radius_a < 0 or radius_a < 0 or height < 0:
              raise ValueError(
                  'surface_area_conical_frustum() only accepts non-negative values'   )
       _A=	(height**2 + (radius_a - radius_a) ** 2) ** 0.5
       return pi * ((slant_height * (radius_a + radius_a)) + radius_a**2 + radius_a**2)

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if radius < 0 or height < 0:
              raise ValueError('surface_area_cylinder() only accepts non-negative values'   )
       return 2 * pi * radius * (height + radius)

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if torus_radius < 0 or tube_radius < 0:
              raise ValueError('surface_area_torus() only accepts non-negative values'   )
       if torus_radius < tube_radius:
              raise ValueError(
                  'surface_area_torus() does not support spindle or self intersecting tori'   )
       return 4 * pow(lowerCAmelCase_       ,					2   ) * torus_radius * tube_radius

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if length < 0 or width < 0:
              raise ValueError('area_rectangle() only accepts non-negative values'   )
       return length * width

def 							UpperCamelCase				(    lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if side_length < 0:
              raise ValueError('area_square() only accepts non-negative values'   )
       return side_length**2

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if base < 0 or height < 0:
              raise ValueError('area_triangle() only accepts non-negative values'   )
       return (base * height) / 2

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if sidea < 0 or sidea < 0 or sidea < 0:
              raise ValueError('area_triangle_three_sides() only accepts non-negative values'   )
       elif sidea + sidea < sidea or sidea + sidea < sidea or sidea + sidea < sidea:
              raise ValueError('Given three sides do not form a triangle'   )
       _A=	(sidea + sidea + sidea) / 2
       _A=	sqrt(
           semi_perimeter
           * (semi_perimeter - sidea)
           * (semi_perimeter - sidea)
           * (semi_perimeter - sidea)   )
       return area

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if base < 0 or height < 0:
              raise ValueError('area_parallelogram() only accepts non-negative values'   )
       return base * height

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if basea < 0 or basea < 0 or height < 0:
              raise ValueError('area_trapezium() only accepts non-negative values'   )
       return 1 / 2 * (basea + basea) * height

def 							UpperCamelCase				(    lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if radius < 0:
              raise ValueError('area_circle() only accepts non-negative values'   )
       return pi * radius**2

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if radius_x < 0 or radius_y < 0:
              raise ValueError('area_ellipse() only accepts non-negative values'   )
       return pi * radius_x * radius_y

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if diagonal_a < 0 or diagonal_a < 0:
              raise ValueError('area_rhombus() only accepts non-negative values'   )
       return 1 / 2 * diagonal_a * diagonal_a

def 							UpperCamelCase				(    lowerCAmelCase_       ,					lowerCAmelCase_   )		->						float:




       '''simple docstring'''






       if not isinstance(lowerCAmelCase_       ,					lowerCAmelCase_   ) or sides < 3:
              raise ValueError(
                  'area_reg_polygon() only accepts integers greater than or \
equal to three as number of sides'   )
       elif length < 0:
              raise ValueError(
                  'area_reg_polygon() only accepts non-negative values as \
length of a side'   )
       return (sides * length**2) / (4 * tan(pi / sides   ))
       return (sides * length**2) / (4 * tan(pi / sides   ))


if __name__ == "__main__":
      import doctest

      doctest.testmod(verbose=True)  # verbose so we can see methods missing tests

      print('''[DEMO] Areas of various geometric shapes: \n''')
      print(F"Rectangle: {area_rectangle(10, 20) = }")
      print(F"Square: {area_square(10) = }")
      print(F"Triangle: {area_triangle(10, 10) = }")
      print(F"Triangle: {area_triangle_three_sides(5, 12, 13) = }")
      print(F"Parallelogram: {area_parallelogram(10, 20) = }")
      print(F"Rhombus: {area_rhombus(10, 20) = }")
      print(F"Trapezium: {area_trapezium(10, 20, 30) = }")
      print(F"Circle: {area_circle(20) = }")
      print(F"Ellipse: {area_ellipse(10, 20) = }")
      print('''\nSurface Areas of various geometric shapes: \n''')
      print(F"Cube: {surface_area_cube(20) = }")
      print(F"Cuboid: {surface_area_cuboid(10, 20, 30) = }")
      print(F"Sphere: {surface_area_sphere(20) = }")
      print(F"Hemisphere: {surface_area_hemisphere(20) = }")
      print(F"Cone: {surface_area_cone(10, 20) = }")
      print(F"Conical Frustum: {surface_area_conical_frustum(10, 20, 30) = }")
      print(F"Cylinder: {surface_area_cylinder(10, 20) = }")
      print(F"Torus: {surface_area_torus(20, 10) = }")
      print(F"Equilateral Triangle: {area_reg_polygon(3, 10) = }")
      print(F"Square: {area_reg_polygon(4, 10) = }")
      print(F"Reqular Pentagon: {area_reg_polygon(5, 10) = }")
from collections import OrderedDict
from typing import Mapping

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


UpperCAmelCase_								=							logging.get_logger(__name__)

UpperCAmelCase_								=							{
    '''YituTech/conv-bert-base''': '''https://huggingface.co/YituTech/conv-bert-base/resolve/main/config.json''',
    '''YituTech/conv-bert-medium-small''': (
        '''https://huggingface.co/YituTech/conv-bert-medium-small/resolve/main/config.json'''
    ),
    '''YituTech/conv-bert-small''': '''https://huggingface.co/YituTech/conv-bert-small/resolve/main/config.json''',
    # See all ConvBERT models at https://huggingface.co/models?filter=convbert
}





class      lowerCAmelCase						(					_a			):
     _SCREAMING_SNAKE_CASE     :     List[str]		="""convbert"""



     def __init__(					self				,      lowerCAmelCase__=30522				,      lowerCAmelCase__=768				,      lowerCAmelCase__=12				,      lowerCAmelCase__=12				,      lowerCAmelCase__=3072				,      lowerCAmelCase__="gelu"				,      lowerCAmelCase__=0.1				,      lowerCAmelCase__=0.1				,      lowerCAmelCase__=512				,      lowerCAmelCase__=2				,      lowerCAmelCase__=0.02				,      lowerCAmelCase__=1E-12				,      lowerCAmelCase__=1				,      lowerCAmelCase__=0				,      lowerCAmelCase__=2				,      lowerCAmelCase__=768				,      lowerCAmelCase__=2				,      lowerCAmelCase__=9				,      lowerCAmelCase__=1				,      lowerCAmelCase__=None				,      **lowerCAmelCase__				,      ):
            super().__init__(
                pad_token_id=lowerCAmelCase__				,      bos_token_id=lowerCAmelCase__				,      eos_token_id=lowerCAmelCase__				,      **lowerCAmelCase__				,      )

            _A=	vocab_size
            _A=	hidden_size
            _A=	num_hidden_layers
            _A=	num_attention_heads
            _A=	intermediate_size
            _A=	hidden_act
            _A=	hidden_dropout_prob
            _A=	attention_probs_dropout_prob
            _A=	max_position_embeddings
            _A=	type_vocab_size
            _A=	initializer_range
            _A=	layer_norm_eps
            _A=	embedding_size
            _A=	head_ratio
            _A=	conv_kernel_size
            _A=	num_groups
            _A=	classifier_dropout





class      lowerCAmelCase						(					_a			):



     @property
     def 			a__  (					self       ):
            if self.task == "multiple-choice":
                   _A=	{0: 'batch', 1: 'choice', 2: 'sequence'}
            else:
                   _A=	{0: 'batch', 1: 'sequence'}
            return OrderedDict(
                [
                    ('input_ids', dynamic_axis),
                    ('attention_mask', dynamic_axis),
                    ('token_type_ids', dynamic_axis),
                ]       )