"""simple docstring"""


import math
from datetime import datetime, timedelta






def 			__UpperCAmelCase    (	lowercase						):







  """simple docstring"""
  _UpperCAmelCase         =					year % 19
  _UpperCAmelCase         =					year % 4
  _UpperCAmelCase         =					year % 7
  _UpperCAmelCase         =					math.floor(year / 1_00						)
  _UpperCAmelCase         =					math.floor((13 + 8 * leap_day_inhibits) / 25						)
  _UpperCAmelCase         =					leap_day_inhibits / 4
  _UpperCAmelCase         =					(
      15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
  ) % 30
  _UpperCAmelCase         =					(4 + leap_day_inhibits - leap_day_reinstall_number) % 7

  # days to be added to March 21
  _UpperCAmelCase         =					(19 * metonic_cycle + secular_moon_shift) % 30

  # PHM -> Paschal Full Moon
  _UpperCAmelCase         =					(
      2 * julian_leap_year
      + 4 * non_leap_year
      + 6 * days_to_add
      + century_starting_point
  ) % 7

  if days_to_add == 29 and days_from_phm_to_sunday == 6:
    return datetime(lowercase      ,4      ,19						)
  elif days_to_add == 28 and days_from_phm_to_sunday == 6:
    return datetime(lowercase      ,4      ,18						)
  else:
    return datetime(lowercase      ,3      ,22						) + timedelta(
        days=int(days_to_add + days_from_phm_to_sunday						)						)


if __name__ == "__main__":
    for year in (1_9_9_4, 2_0_0_0, 2_0_1_0, 2_0_2_1, 2_0_2_3):
        UpperCAmelCase__     						=  """will be""" if year > datetime.now().year else """was"""
        print(F'''Easter in {year} {tense} {gauss_easter(year)}''')

"""simple docstring"""


UpperCAmelCase__     						=  {
    """meter""": """m""",
    """kilometer""": """km""",
    """megametre""": """Mm""",
    """gigametre""": """Gm""",
    """terametre""": """Tm""",
    """petametre""": """Pm""",
    """exametre""": """Em""",
    """zettametre""": """Zm""",
    """yottametre""": """Ym""",
}
# Exponent of the factor(meter)
UpperCAmelCase__     						=  {
    """m""": 0,
    """km""": 3,
    """Mm""": 6,
    """Gm""": 9,
    """Tm""": 1_2,
    """Pm""": 1_5,
    """Em""": 1_8,
    """Zm""": 2_1,
    """Ym""": 2_4,
}






def 			__UpperCAmelCase    (	lowercase      ,lowercase      ,lowercase						):







  """simple docstring"""
  _UpperCAmelCase         =					from_type.lower().strip("""s"""						)
  _UpperCAmelCase         =					to_type.lower().strip("""s"""						)

  _UpperCAmelCase         =					UNIT_SYMBOL.get(lowercase      ,lowercase						)
  _UpperCAmelCase         =					UNIT_SYMBOL.get(lowercase      ,lowercase						)

  if from_sanitized not in METRIC_CONVERSION:
    _UpperCAmelCase         =					(
        f'''Invalid \'from_type\' value: {from_type!r}.\n'''
        f'''Conversion abbreviations are: {", ".join(lowercase						)}'''
    )
    raise ValueError(lowercase						)
  if to_sanitized not in METRIC_CONVERSION:
    _UpperCAmelCase         =					(
        f'''Invalid \'to_type\' value: {to_type!r}.\n'''
        f'''Conversion abbreviations are: {", ".join(lowercase						)}'''
    )
    raise ValueError(lowercase						)
  _UpperCAmelCase         =					METRIC_CONVERSION[from_sanitized]
  _UpperCAmelCase         =					METRIC_CONVERSION[to_sanitized]
  _UpperCAmelCase         =					1

  if from_exponent > to_exponent:
    _UpperCAmelCase         =					from_exponent - to_exponent
  else:
    _UpperCAmelCase         =					-(to_exponent - from_exponent)

  return value * pow(10      ,lowercase						)


if __name__ == "__main__":
    from doctest import testmod

    testmod()
