::::::::  :::::::::: :::::::::::           ::::    ::: :::::::::: :::    ::: :::::::::::           :::        ::::::::::: ::::    ::: :::::::::: 
:+:    :+: :+:            :+:               :+:+:   :+: :+:        :+:    :+:     :+:               :+:            :+:     :+:+:   :+: :+:         

+:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ :+:+:+ +:+ +:+
:#: +#++:++# +#+ +#+ +:+ +#+ +#++:++# +#++:+ +#+ +#+ +#+ +#+ +:+ +#+ +#++:++#
+#+ +#+# +#+ +#+ +#+ +#+#+# +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+#+# +#+
#+# #+# #+# #+# #+# #+#+# #+# #+# #+# #+# #+# #+# #+# #+#+# #+#
######## ########## ### ########## ### #### ########## ### ### ### ########## ########## ########### ### #### ##########