
'''simple docstring'''


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


snake_case_			:	str 	=       logging.get_logger(__name__)

snake_case_			:	str 	=       {
    'sayakpaul/vit-msn-base': 'https://huggingface.co/sayakpaul/vit-msn-base/resolve/main/config.json',
    # See all ViT MSN models at https://huggingface.co/models?filter=vit_msn
}


class     lowercase__						(	snake_case_ ):






   '''simple docstring'''







   _snake_case		 =				'''vit_msn'''







   def __init__(      self			, lowerCamelCase__=7_6_8			, lowerCamelCase__=1_2			, lowerCamelCase__=1_2			, lowerCamelCase__=3_0_7_2			, lowerCamelCase__="gelu"			, lowerCamelCase__=0.0			, lowerCamelCase__=0.0			, lowerCamelCase__=0.02			, lowerCamelCase__=1e-0_6			, lowerCamelCase__=2_2_4			, lowerCamelCase__=1_6			, lowerCamelCase__=3			, lowerCamelCase__=True			, **lowerCamelCase__			, ):

      '''simple docstring'''







      super().__init__(**_A )

      UpperCamelCase	  =	hidden_size
      UpperCamelCase	  =	num_hidden_layers
      UpperCamelCase	  =	num_attention_heads
      UpperCamelCase	  =	intermediate_size
      UpperCamelCase	  =	hidden_act
      UpperCamelCase	  =	hidden_dropout_prob
      UpperCamelCase	  =	attention_probs_dropout_prob
      UpperCamelCase	  =	initializer_range
      UpperCamelCase	  =	layer_norm_eps
      UpperCamelCase	  =	image_size
      UpperCamelCase	  =	patch_size
      UpperCamelCase	  =	num_channels
      UpperCamelCase	  =	qkv_bias













'''simple docstring'''





_UpperCamelCase						:						List[str]  =					[sum(int(c, 10) ** 2 for c in i.__str__()) for i in range(100_000)]
def __UpperCAmelCase   (					A					:			int		)    ->   int:
			UpperCAmelCase_      :       str          =       0
			while number:
						# Increased Speed Slightly by checking every 5 digits together.
						sum_of_digits_squared += DIGITS_SQUARED[number % 1_0_0_0_0_0]
						number //= 1_0_0_0_0_0

			return sum_of_digits_squared


# There are 2 Chains made,
# One ends with 89 with the chain member 58 being the one which when declared first,
# there will be the least number of iterations for all the members to be checked.

# The other one ends with 1 and has only one element 1.

# So 58 and 1 are chosen to be declared at the starting.

# Changed dictionary to an array to quicken the solution
_UpperCamelCase						:						list[bool | None]  =					[None] * 10_000_000
_UpperCamelCase						:						List[str]  =					True
_UpperCamelCase						:						Tuple  =					False
def __UpperCAmelCase   (					A					:			int		)    ->   bool:

			if CHAINS[number - 1] is not None:
						return CHAINS[number - 1]  # type: ignore

			UpperCAmelCase_      :       Dict          =       chain(next_number(A		)		)
			UpperCAmelCase_      :       int          =       number_chain

			while number < 1_0_0_0_0_0_0_0:
						UpperCAmelCase_      :       Optional[Any]          =       number_chain
						number *= 1_0

			return number_chain
def __UpperCAmelCase   (					A					:			int = 1_0_0_0_0_0_0_0		)    ->   int:
			for i in range(1			,       A		):
						if CHAINS[i] is None:
									chain(i + 1		)

			return CHAINS[:number].count(A		)


if __name__ == "__main__":
						import doctest

						doctest.testmod()
						print(f'''{solution() = }''')


