



__lowerCamelCase								=     [chr(i) for i in range(3_2, 1_2_6)]
__lowerCamelCase								=     list(range(len(alphabets)))
__lowerCamelCase								=     list(range(len(alphabets)))
__lowerCamelCase								=     list(range(len(alphabets)))
__lowerCamelCase								=     list(reversed(range(len(alphabets))))
__lowerCamelCase								=     []
__lowerCamelCase								=     __lowerCamelCase								=     __lowerCamelCase								=     0




def       UpperCAmelCase__	(							)				->	Optional[Any]:
  global gear_one_pos
  global gear_two_pos
  global gear_three_pos
  _A          =      gear_one[0]
  gear_one.append(_UpperCamelCase							)
  del gear_one[0]
  gear_one_pos += 1
  if gear_one_pos % int(len(_UpperCamelCase							)							) == 0:
    _A          =      gear_two[0]
    gear_two.append(_UpperCamelCase							)
    del gear_two[0]
    gear_two_pos += 1
    if gear_two_pos % int(len(_UpperCamelCase							)							) == 0:
      _A          =      gear_three[0]
      gear_three.append(_UpperCamelCase							)
      del gear_three[0]
      gear_three_pos += 1




def       UpperCAmelCase__	(							__snake_case							)				->	List[str]:
  _A          =      alphabets.index(_UpperCamelCase							)
  _A          =      gear_one[target]
  _A          =      gear_two[target]
  _A          =      gear_three[target]
  _A          =      reflector[target]
  _A          =      gear_three.index(_UpperCamelCase							)
  _A          =      gear_two.index(_UpperCamelCase							)
  _A          =      gear_one.index(_UpperCamelCase							)
  code.append(alphabets[target]							)
  rotator()


if __name__ == "__main__":
    __lowerCamelCase								=     list(input("""Type your message:\n"""))
    while True:
        try:
            __lowerCamelCase								=     int(input("""Please set token:(must be only digits)\n"""))
            break
        except Exception as error:
            print(error)
    for _ in range(token):
        rotator()
    for j in decode:
        engine(j)
    print("""\n""" + """""".join(code))
    print(
        f'''\nYour Token is {token} please write it down.\nIf you want to decode '''
        """this message again you should input same digits as token!"""
    )




import math
from timeit import timeit




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  _A          =      0
  _A          =      abs(__snake_case							)
  while True:
    _A          =      n // 10
    digits += 1
    if n == 0:
      break
  return digits




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  return 1 if n == 0 else math.floor(math.log(abs(__snake_case							)  ,			10							) + 1							)




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  return len(str(abs(__snake_case							)							)							)




def       UpperCAmelCase__	(							)				->	None:
  from collections.abc import Callable

  def benchmark_a_function(__snake_case  ,			__snake_case							) -> None:
    _A          =      F'''{func.__name__}({value})'''
    _A          =      timeit(F'''__main__.{call}'''  ,			setup='''import __main__'''							)
    print(F'''{call}: {func(__snake_case							)} -- {timing} seconds'''							)

  for value in (262_144, 1_125_899_906_842_624, 1_267_650_600_228_229_401_496_703_205_376):
    for func in (num_digits, num_digits_fast, num_digits_faster):
      benchmark_a_function(__snake_case  ,			__snake_case							)
    print()


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    benchmark()