:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::