.88888.   888888ba   dP    dP            888888P 
d8' `88 88 `8b Y8. .8P 88'
88d888b. 88 88 88 Y8aa8P .d8888b. 88baaa.
88' `88 88 YP88 88 88 88 88' `88 `88
88 88 Y8. .88 88 88 88 88. .88 88
dP dP `88888' dP dP dP `8888P88 d88888P
.88
d8888P