::::::::: :::::::::::::::::::::::::::::::::::::::: : : :: : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::: : : ::: : :: :::::::::::::::::::::::::::::::::::ii::::::::::: :::::::: : : ::::::::::::::::::::::::::;i1i::::::::: :::: : : : ::::::::::::::::::::::;i;i1i:::::::::: : :::::::::::::::::::::;i;;ii1i::::::::: :: :::::::::::::::::::::::;i;;;i;i1i::::: ::: ::::: :::::::::::;i;;:;i;;iii:::: ::::: :::::::::::::;i;:;:;;;;;;1i: :: : :: : :::::::: :i;;;::::;;;;;;ii: : : : ;;::::::;;:;;;;;i; : :;::::::::;:;;;;;;;: ::::::::::;::::;;;;: ::::::::::;::::::;;: ::::::::::;:::::::;: :::::::::::::::::::: ::::::::::;::::::::: :::::::::::::::::::: :::: ::::::::::::::: : : :: :: :: : :::::::::::::::::::: :: :: ::::::::::::::: :;;i;;;;;;:::::::::::: :: :::::::::::;::: ::;;i;;;::::::::::::::::::: :: .. :::::::::::::::::: ::;;;;;:::::::::::::::::::::: . :: .. :::::::::;::: :;;;;;;;::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::;;:: :;;;:::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::;;;;;;:: :::::::::::::::: : :: ::: .. : .. ::::::::::::::;;;;;:: :::;;:::::::::::::::::: . :: ... ::::::::::::::;;;;:: :::::::::::::::: :: . :::::::::;:;;;;:: ::::::::::::: :: :::::::::::::::: :: : :: :::: :: :::::: :: :::::: : :: :::::::: :: : :::::::: :: ::: :;:::::: :: : ;;:::::::: ::: ;;:::::::: : :: ;;::::::: :: :; ;;:::::: : :: ;;;:::: ::: :;:::: ::: :;::::;: :;:::: :;;: :;