'''simple docstring'''






import argparse
import datetime






def  UpperCamelCase__					(					_lowercase    :				str     )							->	str:
  __UpperCAmelCase:					Union[str, Any]		= {
      """0""": """Sunday""",
      """1""": """Monday""",
      """2""": """Tuesday""",
      """3""": """Wednesday""",
      """4""": """Thursday""",
      """5""": """Friday""",
      """6""": """Saturday""",
  }

  __UpperCAmelCase:					Tuple		= {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 0}

  # Validate
  if not 0 < len(_lowercase     ) < 1_1:
    raise ValueError("""Must be 10 characters long"""     )

  # Get month
  __UpperCAmelCase:					int		= int(date_input[0] + date_input[1]     )
  # Validate
  if not 0 < m < 1_3:
    raise ValueError("""Month must be between 1 - 12"""     )

  __UpperCAmelCase:					str		= date_input[2]
  # Validate
  if sep_a not in ["-", "/"]:
    raise ValueError("""Date separator must be '-' or '/'"""     )

  # Get day
  __UpperCAmelCase:					int		= int(date_input[3] + date_input[4]     )
  # Validate
  if not 0 < d < 3_2:
    raise ValueError("""Date must be between 1 - 31"""     )

  # Get second separator
  __UpperCAmelCase:					str		= date_input[5]
  # Validate
  if sep_a not in ["-", "/"]:
    raise ValueError("""Date separator must be '-' or '/'"""     )

  # Get year
  __UpperCAmelCase:					int		= int(date_input[6] + date_input[7] + date_input[8] + date_input[9]     )
  # Arbitrary year range
  if not 4_5 < y < 8_5_0_0:
    raise ValueError(
        """Year out of range. There has to be some sort of limit...right?"""     )

  # Get datetime obj for validation
  __UpperCAmelCase:					str		= datetime.date(int(_lowercase     )   ,    int(_lowercase     )   ,    int(_lowercase     )     )

  # Start math
  if m <= 2:
    __UpperCAmelCase:					Any		= y - 1
    __UpperCAmelCase:					Optional[Any]		= m + 1_2
  # maths var
  __UpperCAmelCase:					int		= int(str(_lowercase     )[:2]     )
  __UpperCAmelCase:					int		= int(str(_lowercase     )[2:]     )
  __UpperCAmelCase:					int		= int(2.6 * m - 5.39     )
  __UpperCAmelCase:					int		= int(c / 4     )
  __UpperCAmelCase:					int		= int(k / 4     )
  __UpperCAmelCase:					int		= int(d + k     )
  __UpperCAmelCase:					int		= int(t + u + v + x     )
  __UpperCAmelCase:					int		= int(z - (2 * c)     )
  __UpperCAmelCase:					int		= round(w % 7     )
  # End math

  # Validate math
  if f != convert_datetime_days[dt_ck.weekday()]:
    raise AssertionError("""The date was evaluated incorrectly. Contact developer."""     )

  # Response
  __UpperCAmelCase:					str		= F'''Your date {date_input}, is a {days[str(_lowercase     )]}!'''
  return response


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    SCREAMING_SNAKE_CASE_	   =			argparse.ArgumentParser(
        description=(
            'Find out what day of the week nearly any date is or was. Enter '
            'date as a string in the mm-dd-yyyy or mm/dd/yyyy format'
        )
    )
    parser.add_argument(
        'date_input', type=str, help='Date as a string (mm-dd-yyyy or mm/dd/yyyy)'
    )
    SCREAMING_SNAKE_CASE_	   =			parser.parse_args()
    zeller(args.date_input)
'''simple docstring'''






def  UpperCamelCase__					(					_lowercase    :				int     )							->	int:

  if not isinstance(_lowercase   ,    _lowercase     ):
    __UpperCAmelCase:					List[str]		= F'''Input value of [number={number}] must be an integer'''
    raise TypeError(_lowercase     )

  if number < 1:
    __UpperCAmelCase:					Dict		= F'''Input value of [number={number}] must be > 0'''
    raise ValueError(_lowercase     )

  __UpperCAmelCase:					int		= 1

  for i in range(1   ,    _lowercase     ):
    current_number *= 4 * i - 2
    current_number //= i + 1

  return current_number


if __name__ == "__main__":
    import doctest

    doctest.testmod()