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