#                                                                                                                          
#                                                                                                                          
#       OOOOOOOOO          OOOOOOOOO          OOOOOOOOO          OOOOOOOOO     PPPPPPPPPPPPPPPPP      SSSSSSSSSSSSSSS  !!! 
#     OO:::::::::OO      OO:::::::::OO      OO:::::::::OO      OO:::::::::OO   P::::::::::::::::P   SS:::::::::::::::S!!:!!
#   OO:::::::::::::OO  OO:::::::::::::OO  OO:::::::::::::OO  OO:::::::::::::OO P::::::PPPPPP:::::P S:::::SSSSSS::::::S!:::!
#  O:::::::OOO:::::::OO:::::::OOO:::::::OO:::::::OOO:::::::OO:::::::OOO:::::::OPP:::::P     P:::::PS:::::S     SSSSSSS!:::!
#  O::::::O   O::::::OO::::::O   O::::::OO::::::O   O::::::OO::::::O   O::::::O  P::::P     P:::::PS:::::S            !:::!
#  O:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::O  P::::P     P:::::PS:::::S            !:::!
#  O:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::O  P::::PPPPPP:::::P  S::::SSSS         !:::!
#  O:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::O  P:::::::::::::PP    SS::::::SSSSS    !:::!
#  O:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::O  P::::PPPPPPPPP        SSS::::::::SS  !:::!
#  O:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::O  P::::P                   SSSSSS::::S !:::!
#  O:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::OO:::::O     O:::::O  P::::P                        S:::::S!!:!!
#  O::::::O   O::::::OO::::::O   O::::::OO::::::O   O::::::OO::::::O   O::::::O  P::::P                        S:::::S !!! 
#  O:::::::OOO:::::::OO:::::::OOO:::::::OO:::::::OOO:::::::OO:::::::OOO:::::::OPP::::::PP          SSSSSSS     S:::::S     
#   OO:::::::::::::OO  OO:::::::::::::OO  OO:::::::::::::OO  OO:::::::::::::OO P::::::::P          S::::::SSSSSS:::::S !!! 
#     OO:::::::::OO      OO:::::::::OO      OO:::::::::OO      OO:::::::::OO   P::::::::P          S:::::::::::::::SS !!:!!
#       OOOOOOOOO          OOOOOOOOO          OOOOOOOOO          OOOOOOOOO     PPPPPPPPPP           SSSSSSSSSSSSSSS    !!! 
#                                                                                                                          
#                                                                                                                          
#                                                                                                                          
#                                                                                                                          
#                                                                                                                          
#                                                                                                                          
#