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