
"""simple docstring"""






def     lowerCAmelCase__ (		__magic_name__			)	->int:
			__lowercase						      =					len(__magic_name__			)
			if n in (0, 1):
						return 0
			return sum(query * (n - i - 1) for i, query in enumerate(sorted(__magic_name__			)			)			)


if __name__ == "__main__":
					import doctest

					doctest.testmod()







"""simple docstring"""






from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


_lowercase							 =							logging.get_logger(__name__)

_lowercase							 =							{
    '''facebook/convnext-tiny-224''': '''https://huggingface.co/facebook/convnext-tiny-224/resolve/main/config.json''',
    # See all ConvNeXT models at https://huggingface.co/models?filter=convnext
}

class 				__a    (   __a				,      __a					):



							'''simple docstring'''







							_lowerCamelCase				: List[Any]					      =      """convnext"""
							def __init__(    self     ,						_lowerCamelCase=3     ,						_lowerCamelCase=4     ,						_lowerCamelCase=4     ,						_lowerCamelCase=None     ,						_lowerCamelCase=None     ,						_lowerCamelCase="gelu"     ,						_lowerCamelCase=0.02     ,						_lowerCamelCase=1e-12     ,						_lowerCamelCase=1e-6     ,						_lowerCamelCase=0.0     ,						_lowerCamelCase=224     ,						_lowerCamelCase=None     ,						_lowerCamelCase=None     ,						**_lowerCamelCase     ,						) ->       List[str]:




										'''simple docstring'''
										super().__init__(**_lowerCamelCase					)

										__lowercase						      =					num_channels
										__lowercase						      =					patch_size
										__lowercase						      =					num_stages
										__lowercase						      =					[96, 192, 384, 768] if hidden_sizes is None else hidden_sizes
										__lowercase						      =					[3, 3, 9, 3] if depths is None else depths
										__lowercase						      =					hidden_act
										__lowercase						      =					initializer_range
										__lowercase						      =					layer_norm_eps
										__lowercase						      =					layer_scale_init_value
										__lowercase						      =					drop_path_rate
										__lowercase						      =					image_size
										__lowercase						      =					["stem"] + [f'''stage{idx}''' for idx in range(1     ,						len(self.depths					) + 1					)]
										__lowercase      ,				__lowercase						      =					get_aligned_output_features_output_indices(
										    out_features=_lowerCamelCase     ,						out_indices=_lowerCamelCase     ,						stage_names=self.stage_names					)





class 				__a    (   __a					):



							'''simple docstring'''







							_lowerCamelCase				: str					      =      version.parse("""1.11"""					)
							@property
							def      SCREAMING_SNAKE_CASE	(    self					) ->       Mapping[str, Mapping[int, str]]:




										'''simple docstring'''
										return OrderedDict(
										    [
										        ("pixel_values", {0: "batch", 1: "num_channels", 2: "height", 3: "width"}),
										    ]					)





							@property
							def      SCREAMING_SNAKE_CASE	(    self					) ->       float:




										'''simple docstring'''
										return 1e-5





