
'''simple docstring'''
from typing import List

from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCAmelCase					:    Union[str, Any]           = logging.get_logger(__name__)

lowerCAmelCase					:    Optional[Any]           = {
    'snap-research/efficientformer-l1-300': (
        'https://huggingface.co/snap-research/efficientformer-l1-300/resolve/main/config.json'
    ),
}


class 			SCREAMING_SNAKE_CASE__      (     snake_case_):
				lowerCAmelCase_     			=							"""efficientformer"""







				def __init__(       self						,				A_ = [3, 2, 6, 4]						,				A_ = [48, 96, 224, 448]						,				A_ = [True, True, True, True]						,				A_ = 448						,				A_ = 32						,				A_ = 4						,				A_ = 7						,				A_ = 5						,				A_ = 8						,				A_ = 4						,				A_ = 0.0						,				A_ = 16						,				A_ = 3						,				A_ = 3						,				A_ = 3						,				A_ = 2						,				A_ = 1						,				A_ = 0.0						,				A_ = 1						,				A_ = True						,				A_ = True						,				A_ = 1e-5						,				A_ = "gelu"						,				A_ = 0.02						,				A_ = 1e-12						,				A_ = 224						,				A_ = 1e-05						,				**A_						,				)->		None:







											'''simple docstring'''






											super().__init__(**A_     )

											UpperCamelCase   			=     hidden_act
											UpperCamelCase   			=     hidden_dropout_prob
											UpperCamelCase   			=     hidden_sizes
											UpperCamelCase   			=     num_hidden_layers
											UpperCamelCase   			=     num_attention_heads
											UpperCamelCase   			=     initializer_range
											UpperCamelCase   			=     layer_norm_eps
											UpperCamelCase   			=     patch_size
											UpperCamelCase   			=     num_channels
											UpperCamelCase   			=     depths
											UpperCamelCase   			=     mlp_expansion_ratio
											UpperCamelCase   			=     downsamples
											UpperCamelCase   			=     dim
											UpperCamelCase   			=     key_dim
											UpperCamelCase   			=     attention_ratio
											UpperCamelCase   			=     resolution
											UpperCamelCase   			=     pool_size
											UpperCamelCase   			=     downsample_patch_size
											UpperCamelCase   			=     downsample_stride
											UpperCamelCase   			=     downsample_pad
											UpperCamelCase   			=     drop_path_rate
											UpperCamelCase   			=     num_metaad_blocks
											UpperCamelCase   			=     distillation
											UpperCamelCase   			=     use_layer_scale
											UpperCamelCase   			=     layer_scale_init_value
											UpperCamelCase   			=     image_size
											UpperCamelCase   			=     batch_norm_eps






'''simple docstring'''
def 		A_(     A						:		list[int]):
							UpperCamelCase   			=     []
							if len(A) == 1:
														return [nums.copy()]
							for _ in range(len(A)):
														UpperCamelCase   			=     nums.pop(0)
														UpperCamelCase   			=     permute(A)
														for perm in permutations:
																					perm.append(A)
														result.extend(A)
														nums.append(A)
							return result







def 		A_(     A						:		str):

							def backtrack(A						:		str):
														if start == len(A) - 1:
																					output.append(nums[:])
														else:
																					for i in range(A		,     len(A)):
																												UpperCamelCase			,	UpperCamelCase   			=     nums[i], nums[start]
																												backtrack(start + 1)
																												UpperCamelCase			,	UpperCamelCase   			=     nums[i], nums[start]  # backtrack

							UpperCamelCase   			=     []
							backtrack(0)
							return output


if __name__ == "__main__":
						import doctest

						# use res to print the data in permute2 function
						lowerCAmelCase					:    Dict           = permutea([1, 2, 3])
						print(res)
						doctest.testmod()




