






'''simple docstring'''







from collections import OrderedDict
from typing import Mapping

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


UpperCamelCase    :      Tuple  			=		logging.get_logger(__name__)

UpperCamelCase    :      Optional[Any]  			=		{
    'camembert-base': 'https://huggingface.co/camembert-base/resolve/main/config.json',
    'umberto-commoncrawl-cased-v1': (
        'https://huggingface.co/Musixmatch/umberto-commoncrawl-cased-v1/resolve/main/config.json'
    ),
    'umberto-wikipedia-uncased-v1': (
        'https://huggingface.co/Musixmatch/umberto-wikipedia-uncased-v1/resolve/main/config.json'
    ),
}




class 		UpperCamelCase__    (__UpperCAmelCase			):




		'''simple docstring'''





		_UpperCamelCase				  =					"""camembert"""






		def __init__(      self   ,_lowerCAmelCase=3_05_22   ,_lowerCAmelCase=7_68   ,_lowerCAmelCase=12   ,_lowerCAmelCase=12   ,_lowerCAmelCase=30_72   ,_lowerCAmelCase="gelu"   ,_lowerCAmelCase=0.1   ,_lowerCAmelCase=0.1   ,_lowerCAmelCase=5_12   ,_lowerCAmelCase=2   ,_lowerCAmelCase=0.02   ,_lowerCAmelCase=1E-12   ,_lowerCAmelCase=1   ,_lowerCAmelCase=0   ,_lowerCAmelCase=2   ,_lowerCAmelCase="absolute"   ,_lowerCAmelCase=True   ,_lowerCAmelCase=None   ,**_lowerCAmelCase   ,):
								super().__init__(pad_token_id=UpperCAmelCase_   ,bos_token_id=UpperCAmelCase_   ,eos_token_id=UpperCAmelCase_   ,**UpperCAmelCase_       )

								lowerCamelCase__         =  vocab_size
								lowerCamelCase__         =  hidden_size
								lowerCamelCase__         =  num_hidden_layers
								lowerCamelCase__         =  num_attention_heads
								lowerCamelCase__         =  hidden_act
								lowerCamelCase__         =  intermediate_size
								lowerCamelCase__         =  hidden_dropout_prob
								lowerCamelCase__         =  attention_probs_dropout_prob
								lowerCamelCase__         =  max_position_embeddings
								lowerCamelCase__         =  type_vocab_size
								lowerCamelCase__         =  initializer_range
								lowerCamelCase__         =  layer_norm_eps
								lowerCamelCase__         =  position_embedding_type
								lowerCamelCase__         =  use_cache
								lowerCamelCase__         =  classifier_dropout




class 		UpperCamelCase__    (__UpperCAmelCase			):




		'''simple docstring'''





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









'''simple docstring'''







UpperCamelCase    :      Tuple  			=		[sum(int(c, 10) ** 2 for c in i.__str__()) for i in range(10_00_00)]
def 						A__			(				__lowerCAmelCase		:			int						):
						lowerCamelCase__         =  0
						while number:
												# Increased Speed Slightly by checking every 5 digits together.
												sum_of_digits_squared += DIGITS_SQUARED[number % 10_0000]
												number //= 10_0000

						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_00_00_00
UpperCamelCase    :      Tuple  			=		True
UpperCamelCase    :      Optional[int]  			=		False
def 						A__			(				__lowerCAmelCase		:			int						):

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

						lowerCamelCase__         =  chain(next_number(__lowerCAmelCase						)						)
						lowerCamelCase__         =  number_chain

						while number < 1000_0000:
												lowerCamelCase__         =  number_chain
												number *= 10

						return number_chain
def 						A__			(				__lowerCAmelCase		:			int = 1000_0000						):
						for i in range(1   ,    __lowerCAmelCase						):
												if CHAINS[i] is None:
																		chain(i + 1						)

						return CHAINS[:number].count(__lowerCAmelCase						)


if __name__ == "__main__":
							import doctest

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

