88888888b 888888ba dP a88888b. dP dP .88888. 888888ba
88 88 `8b 88 d8' `88 Y8. .8P d8' `8b 88 `8b
a88aaaa a88aaaa8P' 88 88 Y8aa8P 88 88 88 88
88 88 88 88 88 88 88 88 88
88 88 88 Y8. .88 88 Y8. .8P 88 88
88888888P dP dP Y88888P' dP `8888P' dP dP