



"""simple docstring"""
from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


_UpperCAmelCase     =			logging.get_logger(__name__)

_UpperCAmelCase     =			{
    """shi-labs/nat-mini-in1k-224""": """https://huggingface.co/shi-labs/nat-mini-in1k-224/resolve/main/config.json""",
    # See all Nat models at https://huggingface.co/models?filter=nat
}
class 					a	(  UpperCAmelCase__	,      UpperCAmelCase__       ):
  UpperCamelCase	:				List[Any]     						=					'nat'

  UpperCamelCase	:				Optional[Any]     						=					{
      'num_attention_heads': 'num_heads',
      'num_hidden_layers': 'num_layers',
  }



  def __init__(						self :					Optional[Any]       ,		lowerCAmelCase :					Optional[int]=4       ,		lowerCAmelCase :					int=3       ,		lowerCAmelCase :					Any=64       ,		lowerCAmelCase :					Union[str, Any]=[3, 4, 6, 5]       ,		lowerCAmelCase :					Optional[Any]=[2, 4, 8, 16]       ,		lowerCAmelCase :					Any=7       ,		lowerCAmelCase :					int=3.0       ,		lowerCAmelCase :					Optional[int]=True       ,		lowerCAmelCase :					Optional[int]=0.0       ,		lowerCAmelCase :					int=0.0       ,		lowerCAmelCase :					List[Any]=0.1       ,		lowerCAmelCase :					Dict="gelu"       ,		lowerCAmelCase :					Dict=0.0_2       ,		lowerCAmelCase :					Optional[Any]=1E-5       ,		lowerCAmelCase :					str=0.0       ,		lowerCAmelCase :					Dict=None       ,		lowerCAmelCase :					Dict=None       ,		**lowerCAmelCase :					str       ,		)     ->					Any:


     '''simple docstring'''




     super().__init__(**lowerCAmelCase		)

     SCREAMING_SNAKE_CASE_: Dict     			=patch_size
     SCREAMING_SNAKE_CASE_: Any     			=num_channels
     SCREAMING_SNAKE_CASE_: List[Any]     			=embed_dim
     SCREAMING_SNAKE_CASE_: List[str]     			=depths
     SCREAMING_SNAKE_CASE_: str     			=len(lowerCAmelCase		)
     SCREAMING_SNAKE_CASE_: List[str]     			=num_heads
     SCREAMING_SNAKE_CASE_: List[str]     			=kernel_size
     SCREAMING_SNAKE_CASE_: Dict     			=mlp_ratio
     SCREAMING_SNAKE_CASE_: Tuple     			=qkv_bias
     SCREAMING_SNAKE_CASE_: Any     			=hidden_dropout_prob
     SCREAMING_SNAKE_CASE_: List[Any]     			=attention_probs_dropout_prob
     SCREAMING_SNAKE_CASE_: List[str]     			=drop_path_rate
     SCREAMING_SNAKE_CASE_: List[Any]     			=hidden_act
     SCREAMING_SNAKE_CASE_: Union[str, Any]     			=layer_norm_eps
     SCREAMING_SNAKE_CASE_: Optional[int]     			=initializer_range
     # we set the hidden_size attribute in order to make Nat work with VisionEncoderDecoderModel
     # this indicates the channel dimension after the last stage of the model
     SCREAMING_SNAKE_CASE_: List[str]     			=int(embed_dim * 2 ** (len(lowerCAmelCase		) - 1)		)
     SCREAMING_SNAKE_CASE_: Any     			=layer_scale_init_value
     SCREAMING_SNAKE_CASE_: Any     			=["""stem"""] + [f'''stage{idx}''' for idx in range(1       ,		len(lowerCAmelCase		) + 1		)]
     SCREAMING_SNAKE_CASE_			,		SCREAMING_SNAKE_CASE_: Optional[int]     			=get_aligned_output_features_output_indices(
         out_features=lowerCAmelCase       ,		out_indices=lowerCAmelCase       ,		stage_names=self.stage_names		)








"""simple docstring"""
def      __magic_name__				(							lowercase ):
   return str(lowercase ) == str(lowercase )[::-1]





def      __magic_name__				(							lowercase ):
   return int(lowercase ) + int(str(lowercase )[::-1] )





def      __magic_name__				(							lowercase = 1_0000 ):
   SCREAMING_SNAKE_CASE_: List[str]     			=[]
   for num in range(1							,			lowercase ):
      SCREAMING_SNAKE_CASE_: List[Any]     			=0
      SCREAMING_SNAKE_CASE_: int     			=num
      while iterations < 50:
         SCREAMING_SNAKE_CASE_: Optional[Any]     			=sum_reverse(lowercase )
         iterations += 1
         if is_palindrome(lowercase ):
            break
      else:
         lychrel_nums.append(lowercase )
   return len(lowercase )


if __name__ == "__main__":
   print(f"""{solution() = }""")



