                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                   #################                                                                                                                                                                                                                                                                                                            #############   ##                      ####     ####                   #################################                         #############                   #################################                          #############   ##                 
                                                              ###### #  #  ##    #  ####                                                                                                                                                                                                                                                                                                    ####             ###  #                 ####    #   #    ####              #                                 ###                  ####             ####              #                                 ###                   ####             ###  #                
                                                          #### # #            #      # ##                                                                                                                                                                                                                                                                                                 ##     ###########       #              ##     ## #   # ##     ##             ##  ############################    ##              ##     ###########     ##             ##  ############################    ##               ##     ###########       #               
                                                          # #       #              #  #  #                                                                                                                                                                                                                                                                                              ##   #####################  #           ##   ###### #   # ######   ##             #  ##############################   #           ##   ###################   ##             #  ##############################   #            ##   #####################  #              
                                                    #### ##    #            #           # # #####                                                                                                                                                                                                                                                                                      #   ############       #####  #         #   #######  #   #  #######   #             #  #########            ##########  #         #   ########       ########   #             #  #########           ########### #           #   ############       #####  #             
                                                 ### # ###                                ## #  #####                                                                                                                                                                                                                                                                                 #  ###########    #####      #  #       #  ########  #     #  ########  #             # ######### ##########   ######### #        #  ########   #####   ########  #             # ######### #########   #########  #         #  ###########    #####      #  #            
                                               ## #   #  ##                             #      # # # ##                                                                                                                                                                                                                                                                              #  ##########   ###     #####     #     #  ######### #       # #########  #            # ######### #         ## #########  #      #  ######### ##     ## #########  #            # ######### #        ##  ######### #        #  ##########   ###     #####     #           
                                             ##     #                                      #  #        #                                                                                                                                               ######### ###                                                                                                                #  ##########  ##             ##    #   #  ########## #       #  #########  #           # ######### #          #  ######### #     #  ########## #       #  #########  #           # ######### #          # ######### #       #  ##########  ##             ##    #          
                                           ## #          #   #                                      #  ##                                                                                                                                         #####         #   #####                                                                                                           # ##########  #                 ##   #  # ########## #         # ########## #           # ######### #           # ######### #     # ########## #         # ########## #           # ######### #          #  ########  #      # ##########  #                 ##   #         
                                         ## #                                            #      #        ####                                                                                                                                 # ##                       ##                                                                                                        #  ########## #                    #  # #  ########## #         # ##########  #          # ######### #           # ######### #    #  ########## #         # ##########  #          # ######### #           # ######### #     #  ########## #                    #  #         
                                        ###                                 #                #               ##                                                                                                                            #####                           # ###                                                                                                   # ##########  #                     ### # ##########  #         #  ########## #          # ######### #          #  ######### #    # ##########  #         #  ########## #          # ######### #           # ######### #     # ##########  #                     ###         
                                      ##    #      ##                                                        # #                                                                                                                         ###   #  #    #####     ###     # ##  ###                                                                                                #  ########## #                         #  ########## #           # ##########  #         # ######### #         ## #########  #   #  ########## #           # ##########  #         # ######### #           # ######### #    #  ########## #                                  
                                     #  #        ##  #                        #  #                              #                                                                                                                      ##      #        ####      #         #     ##                                                                                             #  ########### ###                      #  ########### #           # ###########  #        # ######### ##########   ######### #   #  ########### #           # ###########  #        # ######### #          #  ########  #   #  ########### ###                                
                                    # #         ##  ##                         #               #               # #                                                                                                                    ## #    #         #####     #         #     # #                                                                                            # ############    #######               # ############ #           # ############ #        # #########            ##########  #   # ############ #           # ############ #        # ######### #          # ######### #    # ############    #######                         
                                  ##     #       ##   #                                   #        # #           #                                                                                                                   #                  #####     #                  #                                                                                          #  ###############        ######       ##  ############ #           # ############  ##    ##  #############################   #   #  ############ #           # ############  ##    ##  ######### #        ##  ######### #   #  ###############        ######                   
                                 ## #    #       #    #                     # #  #             #       #         ####                                                                                                               ##    #             #####     #                  ##                                                                                       ##  #######################       #######   ############# #           # #############   ####   ###########################    ##  ##  ############# #           # #############   ####   ########## #########   #########  # ##  #######################       #######            
                                #                  #  #                        ###          #        ##          #  ###                                                                                                             # #                 #####     #                 # #                                                                                     ##   ##############################         ############### #           # ###############      ##########################    ###  ##   ############## #           # ###############      ############           ########### ###   ##############################        #           
                               ###                                             ##            #       # ##          #   #                                                                                                           ##       #           # ####    #              #    ##                                                                                      ##  #######################       #######   ############# #           # #############   ####   ########## ############## ##       ##  ############# #           # #############   ####   ##############################   #  ##  #######################       #######            
                               #                                   #       #  ## #                # ######             ##                                                                                                          ##                   # ####    #                # # #                                                                                        #  ###############        ######       ##  ############ #           # ############  ##    ##  ######### ##############  #         #  ############ #           # ############  ##    ##  ##########################    ##     #  ###############        ######                   
                               #                             #          # #      #        ##          ###       #        #                                                                                                         #                    # ####    #                   ##                                                                                         # ############    #######               # ############ #           # ############ #        # #########  ##############  #         # ############ #           # ############ # #      # #########                  ###        # ############    #######                         
                              #  #                                 #  # ##       #       #   #      ## # #                #                                                                                                       ## #                  #  ####   #                     #                                                                                        #  ########### ###                      #  ########### #           # ###########  #        # #########   ##############  #        #  ########### #           # ###########  # #      # ######### #################           #  ########### ###                                
                            ##                   ##                   # # ##   #  #  ##    #      #   ###                 #                                                                                                       # #                   #  ####   #               #   # #                                                                                         #  ########## #                         #  ########## #           # ##########  #         # ######### #  ##############  #        #  ########## #           # ##########  ## #      # ######### #                            #  ########## #                                  
                           ##                   ## #       #    #        #   #    #                  # #  #                #                                                                                                      ##   #                #  ####   #                 #  ##                                                                                          # ##########  #                     ### # ##########  #         #  ########## #          # ######### ##  ##############  ##       # ##########  #         #  ########## ##  #      # ######### #                             # ##########  #                     ###         
                         ##                     # #           #    # ##############  # #    #       #                       #                                                                                                     ##                    #  ####   #                   # #                                                                                          #  ########## #                    #  # #  ########## #         # ##########  #          # ######### # #  ##############   #      #  ########## #         # ##########  ## #       # ######### #                             #  ########## #                    #  #         
                        # #                            #   # #  #######################  #       #                        # #                                                                                                     # #         #         #   ####  #         #        # ##                                                                                           # ##########  #                 ##   #  # ########## #         # ########## #           # ######### #  #  ###############  #      # ########## #         # ########## ### #       # ######### #                              # ##########  #                 ##   #         
                       #                                   # ########             ######## #   #                             #                                                                                                    #### #     ###        #   ####  #        ###         ##                                                                                           #  ##########  ##             ##    #   #  #########  #       #  #########  #           # ######### #   #  ###############  #     #  #########  #       #  #########  ##  #       # ######### #                              #  ##########  ##             ##    #          
                       # #   #                  #    #   # #####     ###       ###     ##### #  #         #                # #                                                                                                     # #       ###        #   ####  #        ###        ##                                                                                             #  ##########   ###     #####     #     #  ######### ##     ## #########  #            # ######### #    #  ###############  #     #  ######### ##     ## #########  ### #        # ######### #                               #  ##########   ###     #####     #           
                      #                      #         ######    ##### #       # #####    #####   # #                         ##                                                                                                   ##         #         #   ####  #         #     #  # #                                                                                              #  ###########    #####      #  #       #  ########   #####   ########  #             # ######### #     #   ##############  ##    #  ########   #####   ########  ###  #        # ######### #                                #  ###########    #####      #  #            
                     ##            #            # #  ######    ###  ####       ####  ###    ##### #   #                        ###                                                                                                 #  #                 #    #### #                   ##                                                                                               #   ############       #####  #         #   ########       ########   #             #  #########  #     ##  ##############   ##   #   ########       ########   #### #        #  #########  #                                #   ############       #####  #             
                    #                   #          # ####  #  #########         #########  #  ####                           #   ##                                                                                                ##   #               #    #### #                 ## #                                                                                                ##   #####################  #           ##   ###################   ##             #  ###########  #      #  ###############   ##  ##   ###################   #####  #       #  ###########  #                                ##   #####################  #              
                    ##  #         # #         #  # ####  ##  ########             ########  ##  #### ##    #                    # #                                                                                           ########                  #    #### #                   #######                                                                                             ##     ###########       #              ##     ###########     ##             ##  #############  ##     #   ###############   ######     ###########     ######  #      ##  #############  ##                                ##     ###########       #               
                   #             ##             #####   ##  ########               ########  ##   ###   #                        # #                                                                                    ######      ###                 #     #####              #   ##      ######                                                                                         ####             ###  #                 ####             ####              #                     #     ##  ################     ######             ### #####  #      #                     #                                 ####             ###  #                
                  ##           # #          # #  ###   ## ########    ###########    ######## ##   #####    #    #           #     #                                                                               #####            ## #                #     #####                #  #            #####                                                                                        #############   ##                      #############                   #####################        #   ##################       #############   #####  #        #####################                                      #############   ##                 
                  # #                         ####  # ### #####   ####           ####   ##### ### #  ###  #                      ###                                                                           # ##                 #                   #     #####                  ##    ##           # ##                                                                                                                                                                                          ##   ######################              #######  #                                                                                                       
                 #                   #   # ## ### ## ### ###   ####                  ###   ### ### ## ####                      #   #                                                                      #### #         ### #     ###   #             #     #####                 ###     #####        #  ####                                                                                                                                                                                        ##    ######################################   #                                                                                                        
                 ##                          ### ## #### ## ##### #                     ### ## #### ## ###  ##                     # #                                                                   ##     #     #### ####      # #                #      ####               ## #      #### ####    #      ###                                                                                                                                                                                       ###    #################################   ##                                                                                                         
                #  #              #      # #### ### ### #  #   #   #                   ### #  # ### ### ###     #                 #  #                                                              ### #            ###   ####      ##                ###     #####                ##      ####   ###             ####                                                                                                                                                                                      ###      ########################     ##                                                                                                           
                ##      #                  ### ### ####  ##     # ##  ###########      ##   ##  #### ### ### #                   #  # #                                                          ###   #     #      ####    ####     # ##                                         #  #     ####    ####                ###                                                                                                                                                                                      #####       #############      ####                                                                                                             
               ##                       # ### #### ###  #       #####################  ##     #  ### #### ###    #                 # ##                                                       ###      #   ##       #####   ####     ##                                        #    ##     ####   ####       #####        # #                                                                                                                                                                                        ######               #####                                                                                                                 
               #                     #   ###  ### ### ## #      ###### # #   # # ######        ## ### ###  ## #                       #                                                    ###       #      #        ####   ####     ## #     #      #          #         #        # #     ####   ####      ####  ###      # ###                                                                                                                                                                                           ###############                                                                                                                      
               ##                      ####  #### ## #  # #   #### # ###  ###  ### # ####        # ## ####  ##  #    #                ##                                                ###       #####     #        ####   ####      ##  #          # ######### ###             # ##      ####   ####     #####   ###     #  # ###                                                                                                                                                                                                                                                                                                                             
               #  #               #     ##   ### ## #  # #  ####   #               #   ####       # ## ###   ###                     # #                                             ###         ######      #       #####  ##        ##         #### #             ######          #      ####   ####     #####  ####             ###                                                                                                                                                                                                                                                                                                                          
              ##                     # ###  #### # # ## #  ### ####   #   #   #     #### ###     ### # ####  ### #                    ##                                           ##  #          ######     #       #####            # #    ####                         ####  ## ##     ####    ####     ####   ####                ##                                                                                                                                                                                                                                                                                                                        
              #            #          ###   ### # # # ## ### #      #   #   #   #        # ###  ## ## # ###   ##        #            # #                                         ##      ###       #####     #        #####           ##   ##                                 ### # #     ####   ####      ####   ####       ####       ##                                                                                                                                                                                                                                                                                                                      
              ##                  # # ##  # ###  # # #  #####     #   #   #   #   #   #   ##### # # ##  ### #  ###   #             ####                                        ##      ####        ######    #        ######          ## ####                                 #### ##     ####   ####     #####   ####      #### ###      ##                                                                                                                                                                                                                                                                                                                    
              #   #     #  #         ### ## ### # # #  ###      #   #   #   #   #   #   #    ##### ## # ### ##  ###              ###  #                                      ##     #   ####       # #####    #        ######         # ######                               ###### #     ####   ####     ####   #####      ####   ##       ##                                                                                                                  ############################################                                                                                                                                                    
              # #  #      #        # ## ### ##  #  #  ## #    #   #   #   #   #   #   #   #  # #####  #  ## ### ##              #   ###                                     #     ###   ####       #  ####    #         ######         #######                               #######      #####  ###      ####   ####      #####   ## #       ##                                                                                                               ###############################################                                                                                                                                                  
              #      # #        #   ### ## ### #     ##  #      #   #   #   #   #            #  ##     # ### ##  ###               ## #                                   ##    #####   ####        # #####   #          ######        #######                               #######     ####  ###       #####   ####      ####    ####        ###                                                                                                             ################################################                                                                                                                                                 
            ##        ####         ### ### ## #     #####  ####                   ####### #   #####     # ## ### ## #   #         #   #                                 ## #   # #####   ####       #  ####    #          ######       ########                             ########     ####   ###      ####   #####     #####   ####     #    # #                                                                                                           ##################################################                                                                                                                                                
           ## #        ##         # ## ### ## #     ##    #######  ######################   #    ##     # ## ### ##                  #                                 #         #####   ####       #  #####   #           ######      ########                             ########     ####   ####     ####   ####      ####    ####      ##     ##                                                                                                        ####################################################                                                                                                                                               
           #            #     #  # ##  ### # #     ###    #######  #################      #   #  ###     # # ###  ##               # #                               ##          #####   #####       #  ####   #            ######      #######                             #######      ####   ####    #####   ####      ####   ####      ####      #                                                                                                     # ####################################################                                                                                                                                               
           ##           #         ### ####  ####  ## #  #  ######      ######   #####   #   #    # ##     #  #### ##             #  ##                              #    #        #####   ####       #  #####   #            #####      #######                             #######      ####   ####    ####   #####      ####   ####      ######     #                                                                                                     ######################################################                                                                        ######                                                                
           #  #         #       # ##  ####  #   # ###        ###  #     ###   #    ###    #   #   ###     #  ####  ## #  #        ####                             #     ##       #####   ####       #   #####  #             #####      #######                           #######      ####    ####    ####   ####       ####   ###      #####  #     #                                                                                                   #######################################################                                                                              ######                                                          
          #                      ###  ###   # # ####    #    ###    #   ### #   #  ###  #   #   #  ###  ###   ###  ###         # ####                             #    ####        ####   #####       #   ####  #         ##  #####        #####                           #####        ####   ####     ####   ####        ####   ##      ####    ##    #                                                                                                # #######################################################                                                                                   #####                                                      
          ##               #      ##  ###  ##   ### # #   # ###   #   # ###   #   # ###   #   #   # ## ## ##  ###  ##    #    ####  #                            #   #######       #####   ####       #   ##### #       ####   ####   #     ## #                           #### #   #   ####   ####    #####   ####        ####          #####     #     #                                                                                                 #######################################################                                                                                      #####                                                   
          #                  ## ###   ###  # #####  #   #   ### #   #   ### #   #   ###     #   # #  ###  ##  ###   ## #    ##       #                          #   #   ####       #####   ####       #    ####  #      ####   ####         # ##                           ##           ####   ####    ####   #####        ####          ####     #       #                                                                                              #########################################################                                                                   #   #                 ####                                                 
          # #                 #  ## # ###  #    ## #  #    ####   #   # ###   #   # ####  #   #    # ##    #  ### # ##    ##      ####                          #  ##   #####       ####   #####      #    ##### #      ####   #####     ##  # ##                         ##  # #       ####   ####    ####   ####          ####        #####     #        #                                                                                           # #########################################################                                                                         #   #             ####                                               
          # #                 ## ## # ### #    ####     #  #### #   #   ### #   #   ####    #       ####    # ### # ### ##     ### #####                      ##  ####   ####       #####   ####       #    ######      ####    ####        # # #                         ## ##        ####    ####   #####   ####     ##   ####        ####                #                                                                                            #########################################################                                                                               #             ####                                             
         #  #                   ### # ### #    ##     #   #####   #   # ###   #     ####      # ##    ##    # ### # ## #     ##  #  # # ##                   # #  ####   #####      #####   ####       #     #### #      ####   ###      #  #  ##                         # #   #    ######   ####    ####   #####    ####  ####       #####           ##    #                                                                                         ##############  #   #   #   #   #   # #####################                                                                                 #   #         ####                                           
         #  ##                #  ## # ### #    ##   #   # ####  #   #   ### #     ## #### #     ##    ##    # ### # ##     ##        #  # #                  #    #####   ####       ####   #####      #     ######      ####  ###         # ## #                         ## ##        ####   ####    ####   ####     ####  #####      ####           #####  #                                                                                       #  ##############   #   #   #   #   #   #####################                                                                                       #         ####                                         
         ## ##              #   ## ## ### #    ###    #   ####    #   # ###   # #### #### ###   #    ###    # ### ## ###  #                #                #      ####   ###        #####   ####       #     #####      # ####        #  #   ##                           # #   #            ####    ####   ####    #####   ####     #####           #### #  #                                                                                        #############   #   #   #   #   #   #  ###################                                                                                          #        #####                                       
         # ##                  ### ## ## #    ## #  #     ####  #   #   ### #  ##### #### #### ##    # ##    # ## ## ##        #         # #                #      #####             #####   ####       #     #####                         # #                             #  #    #            ##   ###    ####    ####    ####     #####          ####   #  #                                                                                     ##############  #   #   #   #   #   #   ####################                                                                                            #       #####                                      
         # ##                 # ## ## ## #    ###     #  #####    #     ###   #####  ##### ###### #   ###    # ## ## ### #             #    #              ##       ####              ####   #####      #      ######                #    ####                               ####          #           ###  ####    #####   ####     ##### ## #      ####   ## #                                                                                   #  #############                        #  ###################                                                                                              #       #####                                    
         ## #                   ## ## ## #    ##    #    #####  #   #  #####  ####   #####  ####    #  ##    # ## ## ##    #                 #            #  #      #####             #####   ####      #      #####                # ####                                       ######    #              #####     ####    ####     ####    ##     ####    ##  #                                                                                    #############                       #   ###################                                                                                                 #      ######                                  
          #       ##        #   ## ## ## #### ###     #  #####    #    #####  ####   #####    ##  #   ### #  # ## ## ## #                   ##            #          ####             #####   #####      #      #             ######                                                   #### #                      #####   ####     #####    #     #####   #### #                                                                                  # #############                         # ###################                                                                                               #   #     ######                                 
          ## #                 ### ## ## #   ### #  #    ###### #   #  #####  ####  ######  # #      # ### ### ## ## ###   #              #  #            ##         #####             ####    ####      ##           # ######                                                               ###### #              # ###   ####     ####     #     ####    #### #                                                                                #  #############                        #  ###################                                                                                                  #        ######                                
           ##            #   #  ## ### # #### ## #    #  ######   #    #####  #####  #####    #   #  # ###  ## # ### ##  #    #             ##           #            ####      ##     #####   ####     #         # ## #                                                                           # ##              ##   #####    #####          #####   ####   #                                                                                 #############                           ###################                                                                                                     #       ######                               
            ##      ##          ## ### # #   ### #  #     #####     # ####### ####### ###    #  #    # ## #  # # ### ###  #                  #           ## #         #####   ####      ####   ######           ####                                                                                   ####           ##  ####     ####           ####   #####  ##                                                                               # #############                         ####################                                                                                                        #      ######                              
           #   #              #### ### # #### ###     #   ######  #   ####### ########    #  #    #   ### #  # # ### ###            #       ##           #      #      ####  ######     ####    ####         ###                                                                                           ###          ######    #####            ###   ####    #                                                                                #############                         ####################                                                                                                           #     ######                             
          ## #    #            ###  ###  # # ###    #   #  ######   ########## ##########       #   #  ##    #  ###  ###            #     # ##           ##            #####   ####     #####   ##       ####                                                                                                 ####         #      ####             ####   ##    ##                                                                               ##############                       ####################                                                                                                           #   #    ######                            
         ##                 #   ##  #### #  # ###     #     ############# ##### ###########   #   #   ###    # ####  ##   #         #        #           ### #          ####   #####     #######      ###                                                                                                         ### #        # #####             ####       #  #                                                                             # #############                      ####################                                                                                                               #   #   ######                           
         # # #                # ##  #### #    ## #  #   #   ############# ###### ############   #    # ##    # ####  ## #          ##   #    #           #  #           #####   ####      ###       ##                                                                                                               ##         #####          ##   ###      # ###                                                                              #############                     ####################                                                                                                                   #     #######                          
         ##                 #   ##   #### #    ###    #   #   #########     ##### #############   #  ###    # ####   ###           #       # #            ##             ####   #####          #  ##                                                                                                                   ##         ###          ###  ###   #     #                                                                              ##############                   ####################                                                                                                                       #    ######                          
         ## #                  # ##  #### #    ##   #   #   #   #####   #     ###   ########### #     ##    # ####  ##  #         ##         #            # # #          #####   ####         # ##                                                                                                                       ###        #    #    ####  ###     #  ##                                                                            # #############                  ####################                                                                                                                       #   #   ######                         
         #         ##           ### # ### #    ##     #   #   #       #   #       #   ##########  #   ##    # ### # ###    #   #  ## ##      #            ##      #       ####   #####       ##                                                                                                                             ##       ##  #   #####  ####      # #                                                                              #############                ####################                                                                                                                           #   # #######                        
          # #                  # ## # ### #    ####     #   #   #   #   #   #       #   #########   ####    # ### # ##             ##       #              ###  #         #####   ## #     ##                                                                                                                                 ##       ##    ####   ####    # ##                                                                             ##############               ####################                                                                                                                               #    ######                        
          #                #     ## # #### #  # ## #  #   #   #   #   #   #   ##  #   #   #######  # ##    # #### # ##  #         ##      # #              ## #            ####   ##     ##                                                                                                                                     ##      #   #####   ####   # # #                                                                           # #############              ####################                                                                                                                               #   #  #######                       
          ##              #     ###  # ### #  # ##  #   #   #   #   #   #    ###    #   #   ##### #  ##    # ### #  ###           #         #               ###            ##### ##    ##                                                                                                                                         ##        ####   ####    # ##                                                                              #############            ####################                                                                                                                                   #   ########                       
          # #  #         #   # #  ## # ### #   # ## # #   #   #   #   #   # ###   #   #    #####  # ##     # ### # ##   #         #        #                 ## #           #####     #                                                                                                                                             #      # ##    ####     ##                                                                             ##############           ####################                                                                                                                                       #   #######                      
          ##       ##    #       ### ## ### # ## ###    #   #   #   #   #   ### #   #   #  #####   ###    # ### ## ###     #     ###    # #                  ##  # #  #      ###    ##                                                                                                                                               ##      #    ####   # ###                                                                           #  #############         ####################                                                                                                                                       #   # #######                      
           #  #   #     #       # ## ## ### ##### ###     #   #   #   #    ####   #   #   #####   ### #   # ### ## ##    #     ##  #      #                   ###                # #                                                                                                                                                   #  #  ##  #####   #  #                                                                              #############        ####################                                                                                                                                           #   ########                     
            ##  ##     #           ## ## ## ## # ### #  #   #   #   #   # ######    #     #####  # ### ## # ## ## ### #     ###    #      #                   # #                ##                                                                                                                                                     ###    ######   # ###                                                                            ##############       ####################     ######################      ###########       ###############################             ######################       ###########    #   #  #######                     
              ##      #         ## ## ### ## ##    ###    #   #   #   #   ########    #  #####   ### ## ## ## ### ## #    ##              ##                   # ##  #   #    # #                                                                                                                                                         #      ###     # #                                                                           #  #############     ####################    #########################      ###########     #################################           ########################       ###########      #   #########                    
              ## #    #             ## ### #  #     ##      #   #   #     ##########    #####    ## #  ##  # ### ##    ####              # #                    ##            ##                                                                                                                                                           ##  #       # ##                                                                              #############    ####################    ##########################      ###########    ##################################         ##########################       #############       #  ########                    
              #      #         #  #### #### # #   #######     #   #   #  ##   ##############  #####  # ## # #### ### ##                # # #                    ## #    #    #                                                                                                                                                               ##     #  # ##                                                                            # #############  ####################    ############################      ###########   ###################################       ############################       #############     #   #########                    
              ##    #        #      ### ####   ## #####  #  #   #   #   ##  #     #########  #  ##    ##   #### #####                     #                      ## #       #                                                                                                                                                                 #   #     ##                                                                           #  ############# ####################    #############################      ###########    ##################################      #############################    #  ##############       #   ########                   
             ##  # #        #     #  ## #####   ## #  ## #    #   #   #       #      ####    # ## ## ##   ##### ##  #                  # ##                      # # # #   ###                                                                                                                                                               # # #   # # #                                                                             #################################     #############################     ############    ##################################      #############################       ###############     #   # ########                   
             ###   #   #    #       #### #####  ###  #####      #   #   #   #   #            ###    ###  ##### ###     #                 ##                       #        # #                                                                                                                                                               ###    # ###                                                                            # ###############################     ###############################   #  ###########  # ##################################    ###############################     # ################      #   ########                   
             # ## #     ## #          ##  ###### #  ## ######     #   #   #   #   #   #   ######     # ######  ##  #                #  ###                        ## # #  # # #                                                                                                                                                             #   #  # ## #                                                                             ##############################      ###############  #   #   #           #   #   #   #  ##############   #   #   #   #        ################   #   #   #          #################    #   # ########                   
             #  ##       ###          ###  ###### # ###  ### #      #   #   #   #        # ###  ##  # ######  ## #  #            ########                          ##   ###  #                                                                                                                                                              # #  ###  ##                                                                             #############################      ##############   #   #   #   #       #   #   #       #############   #   #   #   #        ############## #   #   #   #           ##################      #   #########                  
              # #         #        # # ###  ###### ##    ##### ####   #   #   #     #### ###  ##  ## ######  ###     ############                                  ## #  #  ####                                                                                                                                                           ##   # #  ###                                                                           # ###########################       #############   #   #  ######       #   #   #       #  ############ #   #   #   #   #     ############# #   #   ######          # ##################        # #########                  
              # # #      #              ## #  ##### ### ### ####   #               #   ####    # ## #####  # ##    ##        #  #####                               ## # ## # ##                                                                                                                                                           #  #  #  # #                                                                              #########################        ############   #   ##########          #   #   #       #############   #   #   #   #      ############ #   #  ##########           ###################     #   #########                  
              #                        # ## ##  #### # ## ##  #### # ###  ###  ### # #### #     ## ####  ## ## #  #               # ####                            # ###   #   #                                                                                                                                                         # #   # ## ##                                                                            #########################         ############  #      #########          ###########   #  ###########                      #############        #########          #####################       #  ########                  
               #            #        #  # ## ### #### ## #   ######### # #   # # #######  #  # ## #### ### ###   #                  # ##                             ## # #   # #                                                                                                                                                          #  #   #  #                                                                           # #######################          ############          #########         ###########  #   # ##########                    #############          #########        # #####################     #   ##########                 
               # #         ###          # ### ### ####  ##   # #  ################### # #  ## #  #### ### ####                     # ###                              ###   #   ##                                                                                                                                                       ####   # ###                                                                              #####################           ############           #########         ###########    #   ##########                    ############          ##########          #####################       #  #########                 
                #    #     #               ### ###  ###  ## # ##  # # ###########     ###  ###  ###  ### ### # #                      #                               # # #   #  #                                                                                                                                                       ## # #   # #                                                                            #####################           #############       #   ##########        ###########   #   # ##########                   ############         #  #########        ########################    #   ##########                 
                # #              ##    #  # ### ####  ##   ##    ###  # # ###        ##  # #   ##  #### ###                         # #                                ##   #   # #                                                                                                                                                     #   #   # ##                                                                           #####################             ############          # #########         ###########     #   ##########                  ############        #   #########       #  ########### ###########      #  #########                 
                 # #                      #  ### #####      ###  #  # ### #          #  ###      ##### ### # #   #                   #                                 ## #   #   #                                                                                                                                                     # #   #   ##                                                                          ####################               ###########         #   #########       ############        #  ##########               # ###########           # #########         ########### ############    #   ##########                 
                 # #                        # ### ##########   ##### # #   #         ###   ########## ####                           #                                  #   #   #  #                                                                                                                                                   ##   #   # #                                                                         ####################               ############            # #########     # ###########       #   ###########                ###########          #   #########       #############  ###########      #  #########                 
                  # #                     #    ###  ###########   #### # ####    ####   ###########  ###   #                        #                                   ###   #   ###                                                                                                                                                 #   #   #  ##                                                                       ####################               # ###########           #   #########       ###########         #  ##########               ###########             # #########     #  ###########  # ###########   #   ##########                 
                  #  #         #  ##      # ###  ###  ###########     ###########     ###########  ###  #    # #                # # #                                    #  #   #   ##                                                                                                                                               #  #   #   ##                                                                      ####################                   ##########              # #########     ############        #   ###########             # ##########            #   #########       ########### #   ###########     # ##########                 
                   #  #        ###  ##    ##   # ####           ###                 ###           ### ## #                         #                                     ##   #   #  #                                                                                                                                               ##   #   #  #                                                                     #####################                 ###########             #   #########   #  ###########          #  ##########              ##########               # #########     # ###########   # ###########   #   ##########                 
                    # ##      ##      #  #    # #  ####  #######        ##########     #######  #####     #                     # #                                       # #   #   # #                                                                                                                                             #   #   #   #                                                                    ######################                # ###########               ##########      ###########         #   ###########             ###########             #  #########    #  ###########  #   ###########     # ##########                 
                    #  ##    #   ##  # # #        # #####  ############ #####  #############  #####  # #       #                 ##                                       #  ##   #   ##                                                                                                                                           #  #   #   # #                                                                  #######################                   ##########              #  #########    ############            #   ##########          # ##########                ##########      ###########     #  ###########  #   ##########                 
                     ## ## # #     ##  ##       #     #####  ###########  ################  #####  #     #                 #  # ##                                         ###  #   #   #                                                                                                                                         # #   #   #  #                                                                  ########################                 ############                ##########  #  ###########          #   # ##########           ###########              #  #########    # ###########   #   ############    # #########                  
                      ## ## # # # #  # #          #  # ######   ##########   #####        ###### #  #      #                   ##                                           ###   #   #  #                                                                                                                                       ##   #   #   #                                                                 #########################                #  ##########               #  #########    ###########             #   ##########          ###########                 ##########     ###########      #  ###########  #  ##########                  
                       # # #   # # # ##      #         #   #####          #####   ###  ###### #      #                       ##                                               # #   #   # #                                                                                                                                     #   #   # # ##                                                                 ##########################                  ###########             #   ##########  # ###########           #   # ##########        # ###########               #  #########    ############    #   # ###########   ###########                  
                       ####  # # ### ##  # #     # #      #  ####### ####       #### #####   # #                           ## #                                               ##  #   #   #                                                                                                                                     # #   #  # ##                                                                ###########################                 # ##########                # ######### #  ###########              #   ##########          ##########              #   #########   # ###########       #   ########### #  ##########                  
                        ## ######## ##    ## #       #  #   # # ##### #### ### #### ###  # #      #                   # #     #                                                 # # #   #  #                                                                                                                                   ##   #   ##                                                                  ###########################                #   ##########              #   #########   ###########                 #  ##########       # ##########                # #########    ###########      #   # ###########   ##########                   
                          ##      ####  # #            #  #  # #  # #  ### ### ### #  #                         #           ##                                                   # #  #   ###                                                                                                                                 ### #   ###                                                                 #############################                  ############                # ######### # ###########               #   ###########     #  ###########              #   #########   ############        #   ########### # ##########                   
                                     # ###                #  #    #    ###  #  ###  #  #       #               #            #                                                       ######                                                                                                                                       ######                                                                  ############### #############                 #  ##########               #  #########   ###########                  #  ##########       ###########                 ##########  # ###########           #  ###########  ##########                   
                                     # #                     #  #   ##  ###   ###         #         #        ###       #  ##                                                                                                                                                                                                                                                                           ###############   #############                   ###########                 ##########  ############                #   ###########     #  ##########               #  #########    ###########         #   ############# ##########                   
                                     #  #                   #           ###   ###        #   #              # #          ##                                                                                                                                                                                                                                                                           ##############   ##############                  #  ##########               # ######### # ###########                   #  ###########      ###########                 #########   ############            #  ###########  #########                    
                                     # #              #     #      #  #  ##   ##   #                       #         # ##                                                                                                                                                                                                                                                                            #############   # #############                 #   ###########                ##########  ###########                  #   # ##########    #  ##########               ########### # ###########           #   #######################                    
                                    #  #    #               #            ##   ##                                     ##                                                                                                                                                                                                                                                                             ############       #############                   #  ##########               ##########  ############                    #   ##########  #   ###########             #  #########    ###########             #   #####################                    
                                    #   #                   # #          ##   ##          #                      # ##                                                                                                                                                                                                                                                                              ###########       ##############                  #   ###########             # ######### # ###########                   #   # ##########    #  ##########               #########   ############            #   # ####################                     
                                    # ##                    #             #   #                                   #                                                                                                                                                                                                                                                                               ##########       #  #############                    #  ###########   #         ##########   ###########                     #   ##########  #   ############            ########### #  ###########              #   ####################                     
                                    #   #                   #          #                            #          #  #                                                                                                                                                                                                                                                                              #########           #############                   #   ############   ##       ##########  ############                        # ###########   #  ###########          # ##########    ###########             #   # ####################                     
                                    #  #     #    #                                                              #                                                                                                                                                                                                                                                                             #########           ##############                      #   ###########   #     ########### # ###########                       #   ########### #   # ###########          ##########   ############                #   ###################                      
                                     #                                                                     ##  ##                                                                                                                                                                                                                                                                              #######           #  #############                    #   # ############# ##   ############   ###########                         #  ##########   #   #############      ############ #  ###########                  #  ##################                      
                                     #  #                                                                       #                                                                                                                                                                                                                                                                              ######              #############                       #   ##############################  ############                        #   ########### #   #  #############################    ###########                 #   ##################                       
                                      ##  #   #                                    #                         # #                                                                                                                                                                                                                                                                             ######              # #############                     #   #  ############################ #  ###########                          #  ##########   #   #############################   # ###########                   #  #################                       
                                        #                                                             #       #                                                                                                                                                                                                                                                                            #  ####             #  #############                        #   # ##########################    ###########                         #   ###########     #   ##########################  #  ###########                  #   # ###############                        
                                         ##          #      #           #                       #          ###                                                                                                                                                                                                                                                                               ####                #############                           #   #########################   ############                            #  ##########   #   #  ########################     ###########                     #   ###############                        
                                           # #  #                                                       # ##                                                                                                                                                                                                                                                                               # ###               # #############                         #   #   ######################  #  ###########                          #   ###########     #   # ######################    # ###########                   #   # ##############                         
                                            ####    #                                     ##     #    # ##                                                                                                                                                                                                                                                                               #  ####                #############                            #   #  ####################     ###########                             #  ##########   #   #   #####################      ###########                      #   #############                          
                                                # #       #                       #     ##  #  #  #   ##                                                                                                                                                                                                                                                                                   ####                ##############                              #   #   ###############     # ###########                           #   ###########     #   #   # ###############       ############                        #  ############                          
                                                 ###                #       #            #  # # ## ###                                                                                                                                                                                                                                                                                   #  ###              # #############                             #   #   #   # #########     #  ###########                              # ###########       #   #   #   #########       # ###########                       #   ############                           
                                                    ## ###  #      ##                  ##    #    #                                                                                                                                                                                                                                                                                          ##                #   #   #                                   #   #   #   #   #   ##      #   #   #                               #   ###########         #   #   #   #   #           #   #                               #   #   #                                
                                                      ### ##   #   # #   #     #    #  ##                                                                                                                                                                                                                                                                                                #   ##              #   #   #                                       #   #   #   #   #  ###  #   #   #                                   # ##########        #   #   #   #   #           #   #   #                           #   #   #                                  
                                                           ####   #  #      #        # #                                                                                                                                                                                                                                                                                               #      ##           #   #   #   #                                       #   #   #   #     ####  #   #                                   #  ###########              #   #   #           #   #   #                               #   #   #                                
                                                              ####    # ##  # #  # #####                                                                                                                                                                                                                                                                                                 #     ##            #   #   #                                               #   #        #####  #   #                                   ############                #   #               #   #                               #   #   #                                  
                                                                      ##############                                                                                                                                                                                                                                                                                                                                                                                       #       ######                                      # ############                                                                                                                   
                                                                                                                                                                                                                                                                                                                                                                                         #                                                                                   #       ######                                     ############                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               #      #######                                  #############                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             #   #     #########                             ##############                                                                                                                     
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               #   #     #########                          ###############                                                                                                                     
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 #   #    ############                    ################                                                                                                                      
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   #   #    ###############            ##################                                                                                                                       
                                                                                                                                                                                                                                          ##                                                                                                                                                                                                                                         #   #   ###########################################                                                                                                                        
                                                                                                                                                                                                                                         ####                                                                                                                                                                                                                                          #   #   ########################################                                                                                                                         
                                                                                        #                                                                                                                                               ######                                                                                                                                                                                                                                       #   #   #   ####################################                                                                                                                           
                                                                                       #                                                                                                                                               ########                                                                                                                                                                                                                                        #   #   #   #################################                                                                                                                            
                                                                                      # #                                                                                                                                             ##########                                                                                                                                                                                                                                         #   #   #   #############################                                                                                                                              
                                                                                     # #                                                                                                                                              ##########                                                                                                                                                                                                                                           #   #   #   # ####################  #                                                                                                                                
                                                                                    # ##                                                                                                                                             # ##########                                                                                                                                                                                                                                            #   #   #   #   ########### #   #                                                                                                                                  
                                                                                  ## ###  #                                                                                                                                           # ##########                                                                                                                                                                                                                                             #   #   #   #   #   #   #   #                                                                                                                                    
                                                                                 #  ####  #                                                                                                                                            # ##########                                                                                                                                                                                                                                              #   #   #   #   #   #   #                                                                                                                                      
                                                                                # ######  #                                                                                                                                             # ##########                                                                                                                                                                                                                                                   #   #   #   #   #                                                                                                                                        
                                                                               # #######  #                                                                                                                                              # ##########                                                                                                                                                                                                                                                    #   #   #                                                                                                                                              
                                                                              # #######  # #                                                                                                                                              # ##########                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                             # ########  # ##  # ################################################################################################################################         # ##########                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                            # #########  # ##  # ##################################################################################################################################        # ##########                                                                                                                                                                                                                                                                                                                                                                                                         
                                                                          ## ##########  # ###  # #################################################################################################################################         # ##########                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                         #  ###########  # ###  # ##################################################################################################################################         # ##########                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                        # #############  # ####  # #################################################################################################################################        # # ##########                             # #########                                                                                                                                                                                                                                                                                                                                                              
                                                                       # #############  # #####  # #################################################################################################################################      # #  # ##########                           # ##########                                                                                        ###########                                                        ###########                                                                                                                                                                                        
                                                                      # ##############  # #####   # ###############################################################################################################################      # ##   # ##########                         # ##########                                                                                         #         #                                                        #         #                                                                                                                                                                                        
                                                                     # ###############  # ######  # ###############################################################################################################################     # ###    # ##########                        # #########                                                                                          # ####### #                                                        # ####### #                                                                                                                                                                                        
                                                                    # ################  # ######   #                                                                                                                   ###########     # #####   # ##########                       # ##########                                                                                          # #     # #                                                        # #     # #                                                                                                                                                                                        
                                                                   # #################  # #######  ################################################################################################################## ###########      # #####    # ##########                     # ##########                                                                                           # #     # #                                                        # #     # #                                                                                                                                                                                        
                                                                 ## ##################  # #######                                                                                                                  # ###########      # ######     # ##########                   # ##########                                                                                            # #     # #                                                        # #     # #                                                                                                                                                                                        
                                                                #  ##################  # ########   # ##############################################################  # ########  # ########                      # ###########      # #######      # ##########                 # ##########                                                                                             # #     # #                                                        # #     # #                                                                                                                                                                                        
                                                               # ####################  # #########   # #############################################################  # ########  # ########                     # ###########      # #########      # ##########               # ##########                                                                                              # #     # #                                                        # #     # #                                                                                                                                                                                        
                                                              # #####################  # #########   # #############################################################  # ########  # ########                    # ###########      # ##########       # ##########              # #########                                                                                               # #     # #                                                        # #     # #                                                                                                                                                                                        
                                                             # ############# ########  # ##########   # ############################################################  # ########  # ########                   # ###########      # ###########        # ##########            # ##########                                                                                               # #     # #                                                        # #     # #                                                                                                                                                                                        
                                                            # #############  ########  # ##########   # ############################################################  # ########  # ########                   # ##########      # ############        # ##########           # ##########                                                                                                # #     # #                                                        # #     # #                                                                                                                                                                                        
                                                           # ############# # ########  # ##########    # ###########################################################  # ########  # ########                  # ##########       # #############        # ##########         # ##########                                                                                                 # #     # #                                                        # #     # #                                                                                                                                     #####################                              
                                                         ## ############  # ########  # ############   # ###########################################################  # ########  # ########                 # ##########       # ##############         # ##########       # ##########                                                                                                  # #     # #                                                        # #     # #   ############################                                                                                                      #         #         #                              
                                                        #  ############   # ########  # ############   # ##########################################################  # ########  # ########                 # ##########       # ###############          # ##########      # #########                                                                                                   # #     # #                                                        # #     # #   #                          #                                                                                                      # ####### # ####### #                              
                                                       # #############    # ########  # ############    #                        ########                            # ########  # ########                # ##########       # ################           # ##########    # ##########                                                                                                   # #     # #                                                        # #     # #  # ######################## #                                                                                                       # #     # # #     # #                              
                                                      # #############     # ########  # #############   ######################## ######## #########################  # ########  # ########               # ###########      # ######### ########           # ##########  # ##########                                                                                                    # #     # #                                                        # #     # #  # #                      # #                                                                                                       # #     # # #     # #                              
                                                     # #############      # ########  # #############                          # ########                            # ########  # ########              # ###########      # ########## ########            # ##########  ##########                                                                                                     # #     # #                                                        # #     # #  # #                      # #                                                                                                       # #     # # #     # #                              
                                                    # #############       # ########  # ##############                         # ########                            # ########  # ########             # ###########      # ##########  ########            # #####################                                                                                                      # #     # #                                                        # #     # # # #                      # #                                                                                                        # #     # # #     # #                              
                                                   # #############       # ########  # ###############            # ########   # ########   # ########               # ########  # ########            # ###########       # ######### # ########             # ###################                                                                                                       # #     # #                                                        # #     # # # #                      # #                                                                                                        # #     # # #     # #                              
                                                 ## ############         # ########  # ###############            # ########   # ########   # ########               # ########  # ########           # ###########       # ##########  # ########             # #################                                                                                                        # #     # #                                                        # #     # # # #                      # #                                                                                                        # #     # # ####### #                              
                                                #  ############          # ########  # ################           # ########   # ########   # ########               # ########  # ########          # ###########       # ##########   # ########              # ################                                                                                                        # #     # #                                                        # #     # ## ##################     # #                                                                                                         # #     # #         #                              
                                               # #############           # ########  # ################           # ########   # ########   # ########               # ########  # ########         # ###########       # ##########    # ########               # ##############                                                                                                         # #     # #                                                        # #     # ##                  #     # #                                                                                                         # #     # ###########                              
                                              # #############            # ########  # #################          # ########   # ########   # ########               # ########  # ########        # ###########       # ##########     # ########                # ############                                                                                                          # #     # #                                                        # #     # ################### #     # #                                                                                                         # #     # #                                        
                                             # #############             # ########  # ######## ########          # ########   # ########   # ########               # ########  # ########       # ###########       # ##########       # ########                # ##########                                                                                                           # #     # #                                                        # #     # #                 # #     # #                                                                                                         # #     # #                                        
                                            # #############             # ########  # ######### ########          # ########   # ########   # ########               # ########  # ########      # ###########       # ##########        # ########                # ##########                                                                                                           # #     # #                                                        # #     # #                # #     # #                                                                                                          # #     # #                                        
                                           # #############              # ########  # ######## # ########         # ########   # ########   # ########               # ########  # ########      # ##########        # #########         # ########               # ############                                                                                                          # #     # #                                                        # #     # #                # #     # #                                                                                                          # #     # #                                        
                                          # #############               # ########  # ######## # ########         # ########   # ########   # ########               # ########  # ########     # ##########        # ##########         # ########              # ##############                                                                                                         # #     # #                                                        # #     # #                # #     # #                                                                                                          # #     # #                                        
                                        ## #############                # ########  # ######## # #########       # ########   # ########   # ########                # ########  # ########    # ##########        # ##########           # ########            # ################                                                                                                        # #     # #                                                        # #     # #               # #     # #                                                                                                           # #     # #                                        
                                       #  ############                  # ########  # ########  # ########       # ########   # ########   # ########                # ########  # ########   # ##########        # ##########            # ########           # ##################                                                                                                       # #     # #                                                        # #     # #               # #     # #                                                                                                           # #     # #                                        
                                      # #############                   # ########  # ########  # ########       # ########   # ########   # ########                # ########  # ########  # ##########        # ##########             # ########           # ###################                                                                                                      # #     # #                                                        # #     # #               # #     # #                                                                                                           # #     # #                                        
                                     # #############                   # ########  # ########    # ########      # ########   # ########   # ########                # ########  # ######## # ###########       # ##########                ########          # ########## ##########                                                                                                     # #     # #                                                        # #     # #              # #     # #                                                                                                            # #     # #                                        
                                    # ###########################################  # ########    # ########      # ########   # ########   # ########               # ########  # ######## # ###########       # ####################################        # ########## # ##########                                                                                                    # #     # #                                                        # #     # #              # #     # #                                                                                                            # #     # #                                        
                                   # ############################################  # ########    # #########     # ########   # ########   # ########                 ########  # ######### ###########       # #####################################       # ##########  # ##########                                                                                                    # #     # #                                                        # #     # #              # #     # #                                                                                                            # #     # #                                        
                                  # #############################################  # ########     # ########     # ########   # ########   # #################################  # ######## ###########        # #####################################      # ##########    # ##########                                                                                                   # #     # #                                                        # #     # #             # #     # #                                                                                                             # #     # #                                        
                                ## ##############################################  # ########     # ########     # ########   # ########   # #################################  # ######## ##########        # ######################################     # ##########      # ##########                                                                                                  # #     # #                                                        # #     # #             # #     # #                                                                                                             # #     # #                                        
                               #  ###############################################  # ########     # #########    # ########   # ########   # #################################  # ######### #########       # ########################################   # ##########        # ##########                                                                                                 # #     # #                                                        # #     # #             # #     # #                                                                                                             # #     # #                                        
                              # ################################################  # ########       # ########    # ########   # ########   # #################################  # ######## # #########     # #########################################  # ###########         # ##########                                                                                                # #     # #                                                        # #     # #            # #     # #                                                                                                              # #     # #                                        
                             # #################################################  # ########       # #########   # ########   # ########   # #################################  # ########  # ########    # ##########################################  # ##########           # ##########                                                                                               # #     # #                                                        # #     # #            # #     # #                                                                                                              # #     # #                                        
                            # ##################################################  # ########        # ########   # ########   # ########   # #################################  # ########  # #########  # ###########################################  # #########             # ##########                                                                                              # #     # #                                                        # #     # #            # #     # #                                                                                                              # #     # #                                        
                           # #############                              ########  # ########        # ########   # ########   # ########   # #################################  # ########   # ########## ###########                          ########  # #######              # ##########                                                                                              # #     # #                                                        # #     # #           # #     # #                                                                                                               # #     # #                                        
                          # ############# ############################# ########  # ########        # #########  # ########   # ########   # #################################  # ########    # ######### ########## ######################### ########  # ######                # ##########                                                                                             # #     # #                                                        # #     # #           # #     # #                                                                                                               # #     # #                                        
                         # #############                              # ########  # ########         # ########  # ########   # ########   # ########                 ########  # ########    # ###################                          # ########  # ######                 # ##########                                                                                            # #     # #                                                        # #     # #           # #     # #                                                                                                               # #     # #                                        
                       ## ############                               # ########  # ########          # ######### # ########   # ########   # ######## ############### ########  # ########     # #################                           # ########  # #####                   # ##########                                                                                           # #     # #                                                        # #     # #           # #     # #                                                                                                               # #     # #                                        
                      #  ############                                # ########  # ########          # #########   ########   # ########   # ########               # ########  # ########      # ###############                             # ########  # ###                     # ##########                                                                                          # #     # #                                                        # #     # #          # #     # #                                                                                                                # #     # #                                        
                     # #############                                 # ########  # ########           # ######### #########  # #########  # #########               # ########  # ########       # #############                              # ########  # ##                       # ##########                                                                                         # #     # #                                                        # #     # #          # #     # #                                                                                                                # #     # #                                        
                    # #############                                  # ########  # ########           # ######### ########   # ########   # ########                # ########  # ########       # ############                               # ########  # #                         # ##########                                                                                        # #     # #                                                        # #     # #          # #     # #                                                                                                                # #     # #                                        
                   # #############                                   # ########  # ########            # #################   # ########   # ########                # ########  # ########        # ##########                                # ########  #                            # ##########                                                                                       # #     # #                                                        # #     # #         # #     # #                                                                                                                 # #     # #                                        
                  # #############                                    # ########  # ########            # #################   # ########   # ########                # ########  # ########        # #########                                  # ########  #                           # ##########                                                                                       # #     # #                                                        # #     # #         # #     # #                                                                                                                 # #     # #                                        
                 # #############                                    # ########  # ########             # #################   # ########   # ########                # ########  # ########       # # #########                                 # ########  #                            # ##########                                                                                      # #     # #                                                        # #     # #         # #     # #                                                                                                                 # #     # #                                        
               ## ############                                      # ########  # ########              # ################   # ########   # ########               # ########  # ########       # ### #########                                # ########  #                             # ##########                                                                                     # #   # # #                                                        # #  #  # #        # #     # #                                                                                                                  # #     # #                                        
              #  ############                                       # ########  # ########              # ################   # ########   # ########               # ########  # ########      # ##### #########                               # ########                                 # ##########                                                                                    # #     # #                     #######                    ####### # #     # #        # #     # #                                                                                                                  # #     # #                                        
             # #############                                        # ########  # ########              # ################   # ########   # ########               # ########  # ########     # ####### ########                                # ########                                 # ##########                                                                                   # #     # #                  ###       ###              ###       ## #     # #        # #     # #                                                                                                                  # #     # #                                        
            # #############                                         # ########  # ########               # ###############   # ########   # ########               # ########  # ########    # ######## #########                               # ########                                  # ##########                                                                                  # #     # #                ##   #######   ##          ##   #######   #     # #       # #     # #                                                                                                                   # #     # #                                        
           # #############                                          # ########  # ########               # ###############   # ########   # ########               # ########  # ########   # ########## #########                              # ########                                   # ##########                                                                                 # #     # #               #  ###       ###  #        #  ###       ####     # #       # #     # #                                                                                                                   # #     # #                                        
          # #############                                          # ########  # ########                 # ##############   # ########   # ########               # ########  # ########   # ########### #########                             # ########                                   # ##########                                                                                 # #     # #              #  #             #  #      #  #             #     # #       # #     # #                                                                                                                   # #     # #                                        
         # #############                                           # ########  # ########                 # ##############   # ########   # ########               # ########  # ########  # ########## # #########                              # ########                                   # ##########                                                                                # # #   # #             #  #               #  #    #  #                    # #      # #     # #                                                                                                                    # #     # #                                        
       ##                                                          #           #                          # ##############   # ########   # ########               #           #          #              # #########                             #                                             #                                                                                          # #     # #            #  #     #           #  #  #  #     #             # # #      # #     # #                                                                                                                    # #     # #                                        
      ###############                                              ##########  ##########                  # #############   # ########   # #######                ##########  ########## ###########     # #########                            ##########                                     ############                                                                              # #    ## #           #  # #                 # # #  # #            #       # #      # #     # #                                                                                                                    # #     # #                                        
                                                                                                           # #############   # ########   # #######                                                        # ########                                                                                                                                                                     # #     # #           # #        #####     # # # # #        #####      #   # #     # #     # #                                                                                                                     # #     # #                                        
                                                                                                           # #############   # ########   # ######                                                         # #########                                                                                                                                                                    # #     # #          # #    #  ##     # #   #  ## #    #  ##     ##      # # #     # #     # #                                                                                                                     # #   # # #                                        
                                                                                                            # ############   # ########   # #####                                                           # #########                                                                                                                                                                   # #  #  # #          # # #    #  ##  #   # #  # # # #    #  #####  #       # #     # #     # #                                                                                                                     # #     # #                                        
                                                                                                            # ############   # ########   # ####                                                             # #########                                                                                                                                                                  # #     # #          # #     #  ##  #  #  #  #  # #     #  #     #  # #  # # #    # #     # #                    #######        ########### #######         ########### #######                     #######        # #     # #####################   #######          
                                                                                                             # ###########   # ########   # ###                                                              # #########                                                                                                                                                                  # #   # # #         # #   #  # ##  # #   #  #  # #   #  # #       # #  #  ## #    # #     # #                 ###       ###     #         ##       ###      #         ##       ###               ###       ###     # #     # #         #         # ##       ###       
                                                                                                             # ##########   # ########   # ###                                                                # #########                                                                                                                                                                 # # #  ## #         # # #  ## ##  ##  # #  #   # # #  ## #         # #  #  # #    # #     # #               ##   #######   ##   # #######   #######   ##    # #######   #######   ##           ##   #######   ##   # #     # # ####### # ####### ##  #######   ##     
                                                                                                             # ##########   # ########   # ##                                                                  # #########                                                                                                                                                                # ##  # # #         # ##  # # #  # # ###  #    # ##  # # #         # # #  ## #    # #     # #              #  ###       ###  #  # #     ####       ###  #   # #     ####       ###  #         #  ###       ###  #  # #     # # #     # # #     # # ##       ###  #    
                                                                                                              # #########   # ########   # #                                                                    # ########                                                                                                                                                                # # ### # #         # # ### #   ### # #  #     # # # # # #         # ### ### #   # #     # #              #  #             #  # # #     #             #  #  # #     #             #  #       #  #             #  # # #     # # #     # # #     #  #            ## #   
                                                                                                              # #########   # ########   #                                                                      # #########                                                                                                                                                               # #### ## #         # #### ##  ## ####  #     ## #### ## #         # # ## ## #   # #   # # #             #  #               #  ## #                    #  # # #                    #  #     #  #               #  ## # #   # # # #   # # # #   # #               # #  
                                                                                                              # #########   # ########   #                                                                       # #########                                                                                                                                                              # # # ### #         # # # ### #######  #     # # # # ### #         # ### ### #   # #     # #            #  #     #           #  # # #             #     #  ## # #             #     #  #   #  #     #           #  # #     # # #     # # #     ##                # #  
                                                                                                               # ########   # ########                                                                            # #########                                                                                                                                                             # ####### #         # ############ #  #    ##  # ##### ## #       # ######## #  # #     # #            #  # #                 # # #       #            # #  # #       #            # #  # #  # #                 # # #    ## # #    ## # #    ##               #  # # 
                                                                                                               # ########   # ########                                                                            # #########                                                                                                                                                             # ### ### #          # ## #### ####  #   ##  # ## ## ####  #     #  ## ## ## #  # #   # # #            # #        #####     # # # #   #      #####        #   #   #      #####        # # # #        #####     # # # #     # # #     # # #     #  #               # # 
                                                                                                                # #######   # ########                                                                             # #########                                                                                                                                                            # ####### ############ ###########  #####  ### ## ########  #####  ##### ### #  # #     # #           # #    #  ##     # #   #  # # #      ##     ##  #    #  # #      ##     ##  #    # # #    #  ##     # #   #  # #     # # #     # # #          #####   #     # # 
                                                                                                                # #######   # ########                                                                              # #########                                                                                                                                                           # ##### #            # #### #####        ##### ## ### ######     ########### # # #  #  # #            # # #    #  ##  #   # #  ## #       #  #####  #    # #  #       #  #####  #    # # # # #    #  ##  #   # #  ## #  #  # # #  #  # # #  #  #  ##     ##     #  # #
                                                                                                                # #######   # #######                                                                                # #########                                                                                                                                                          # ################## ## ####### ############## # # ###### ################ # # # ##    # #            # #     #  ##  #  #  #  # # # #  # #  #     #  #     #  # #  # #  #     #  #     # # #     #  ##  #  #  #  # # #     # # #     # # #       #  #####  # #     # #
                                                                                                                 # ######   # ######                                                                                 # #########                                                                                                                                                          # ########## ###### # #  ##################### # #  ######################## # # # # # # #           # #   #  # ##  # #   #  #  # ##  #  # #       # #  #   # ##  #  # #       # #  #   # #   #  # ##  # #   #  #  # #   # # # #   # # # #   #  #  #     #  #    # # #
                                                                                                                 # ######   # #####                                                                                   # #########                                                                                                                                                         # # ############### #  #  ###################  #  #  ####################### ## # # # # #            # # #  ## ##  ##  # #  #   # #  #  # #         # ##  # # #  #  # #         # ##  # # # #  ## ##  ##  # #  #   # # #  ## # # #  ## # # #  # # #       # #  #  ## #
                                                                                                                 # ######   # ####                                                                                     # #########                                                                                                                                                        # ################ #    #  #################  #    #  ###################### ## # ## ## #            # ##  # # #  # # ###  #    # ##  # # #         # # #  ## ##  # # #         # # #  ## ##  # # #  # # ###  #    # ##  # # # ##  # # # ##  # # #         # ##  # # #
                                                                                                                  # #####   # ###                                                                                      # #########                                                                                                                                                        # ################ #     #  ###############  #      #  ##################### ## ### ### #            # # ### #   ### # #  #     # ### ### #         # # # # # ### ### #         # # # # # # ### #   ### # #  #     # # ### # # # ### # # # ### # #         # # ### # #
                                                                                                                  # #####   # ##                                                                                        # #######                                                                                                                                                         # ############### #       #  #############  #        #  #################### # ## #### #             # #### ##  ## ####  #     ## ## ## # #         # ## #### ## ## # #         # ## #### #### ##  ## ####  #     ## #### ## # #### ## # #### ## #         # #### ## #
                                                                                                                   # ####   # #                                                                                          # #####                                                                                                                                                          # ############### #        ##   #######   ##          ##   #######   ####### # ### # # #             # # # ### #######  #     # # ### ### #         # ### # # ### ### #         # ### # # # # ### #######  #     # # # # ### # # # ### # # # ### #         # # # ### #
                                                                                                                   # ####   #                                                                                             # ###                                                                                                                                                           #                #           ###       ###              ###       ##         # # ##### #             # ############ #  #    ##  # ######## #       # ## ##### ######## #       # ## ##### ############ #  #    ##  # ####### # ####### # ####### #         # ####### #
                                                                                                                   # ####   #                                                                                             # ###                                                                                                                                                           ##################              #######                    ####### ############### ## #               # ## #### ####  #   ##  # # ## ## ##  #     #  #### ##  ## ## ##  #     #  #### ## # ## #### ####  #   ##  # # ### ### # ### ### # ### ### #         # ### ### #
                                                                                                                    # ##                                                                                                   # #                                                                                                                                                                                                                                        # ####### ################# ###########  #####  ### # ### #####  #####  ########  ### #####  #####  ######## # ###########  #####  ### # ####### # ####### # ####### #         # ####### #
                                                                                                                    # ##                                                                                                    #                                                                                                                                                                                                                                         # #######                 # #### #####        ##### # ###########     ###### ###  ###########     ###### ### # #### #####        ##### # ##### # # ##### # # ##### # #         # ##### # #
                                                                                                                    # ##                                                                                                                                                                                                                                                                                                                                              # # ### ################# ## ####### ############## # ###### ########### ######   ###### ########### ###### ### ####### ############## # ####### # ####### # ####### #         # ####### #
                                                                                                                     # #                                                                                                                                                                                                                                                                                                                                             # ########### ############ ##  ##################### # ########################  # ########################  # #  ##################### # ####### # ####### # ####### #         # ####### #
                                                                                                                     # #                                                                                                                                                                                                                                                                                                                                             # ######################## # #  ###################  # #######################  ## #######################  #   #  ###################  # ####### # ####### # ####### #         # ####### #
                                                                                                                      #                                                                                                                                                                                                                                                                                                                                              # ######################## #  #  #################  ## ### ##################  # # ### ##################  #     #  #################  ## ####### # ####### # ####### #         # ####### #
                                                                                                                      #                                                                                                                                                                                                                                                                                                                                             # ######################## #    #  ###############  # # #####################  #  # #####################  #       #  ###############  # # ####### # ####### # ####### #         # ####### #
                                                                                                                      #                                                                                                                                                                                                                                                                                                                                             # ######################## #     #  #############  #  # ####################  #   # ####################  #         #  #############  #  # ####### # ####### # ####### #         # ####### #
                                                                                                                       #                                                                                                                                                                                                                                                                                                                                            # ######################## #      ##   #######   ##   # #######   #######   ##    # #######   #######   ##           ##   #######   ##   # ####### # ####### # ####### #         # ####### #
                                                                                                                       #                                                                                                                                                                                                                                                                                                                                           #                          #         ###       ###     # ####### ##       ###      # ####### ##       ###               ###       ###     #         #         #         #         #         #
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ############################            #######        # ####### # #######         # ####### # #######                     #######        ###############################         ###########
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          # ####### #                 # ####### #                                                                                               
     ############################################################################################################################################################################################################################################################################################################################                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                                                                     #                                                                     #                                                                     #                                                                     #                                  #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                                                                                                                                                                                                              ##                                                                                                          #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                                                                     #                                                                     #                                                                #### #                                                                     #                                  #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                                                                                                                 #                                                                                       #######                                                                                                          #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                                                                     #                                          ##                         #                                                           ##### ##  #                                                                     #                                  #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                                                                                                               ##                                                                                    ####    #                                                                                                            #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                                                                     #                                         ##                          #                                                       ####          #                                                                     #                                  #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                                     #######                                                                  ##                                                                                 ####                                                                                                                     #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                                  #############                      #                                        ##                           #                                                   ####              #                                                                     #                                  #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                         #### ##################                                                             ##                                                                               ###                                                                                                                         #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                        #########################                    #                                       ##                            #                                                ####                 #                                                                     #                                  #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                        ###############    #######                                                          ##                                                                            ####                                                                                                                            #                                                                                                                                                                                         # ##### # #                 # ##### # #                                                                                               
     #                       #############         ######                  #                                      ##                             #                                             ###                     #                                                                     #                                  #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                     ## #########              #####                                                        #                                                                          ###                                                                                                                                #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                        ######                 #####                 #                                     ##                              #                                          ###                        #                                                                     #                                  #                                                                                                                                                                                         # # ##### #                 # # ##### #                                                                                               
     #                        #####                   #####                                                      ##                                                                       ###                                                                                                                                   #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                        #####                   #####                #                                     #                               #                                      ###                            #                                                                     #                                  #                                                                                                                                                                                         # ### ### #                 # ### ### #                                                                                               
     #                        #####                   #####                                                      #                                                                     ###                                                                                                                                      #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                         ####                  ######                #                                    ##                               #                                    ###                              #                                                                     #                                  #                                                                                                                                                                                         # ### # # #                 # ### # # #                                                                                               
     #                         ####                 ######                                                      #        ####                          #                            ####                                                                                                                                        #                                                                                                                                                                                         # ## #### #                 # ## #### #                                                                                               
     #                         ####                 ######                 #                                    #        #####                   #    #                            ####                                #                                                                     #                                  #                                                                                                                                                                                         # # ### # #                 # # ### # #                                                                                               
     #                         ####                ######                                                      #         #####                       ###                        ######                                                                                                                                          #                                                                                                                                                                                         # # #  ## #                 # # #  ## #                                                                                               
     #                         ####                ######                  #                                   #         #####                   #  ###                         #####                                  #                                                                     #                                  #                                                                                                                                                                                         # ##  # # #                 # ##  # # #                                                                                               
     #                         ####               ######                                                       #         #####                     ###                         #####                                                                                                                                            #                                                                                                                                                                                         # # #   # #                 # # #   # #                                                                                               
     #                         ####               ### #                    #            #                     #          #####                    ###                         ######                                   #                                                                     #                                  #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                         ####              ### #                                ####                    #          #####                   ###                         ## ###                                                                                                                                             #                                                                                                                                                                                         # #  #  # #                 # #  #  # #                                                                                               
     #                         ####             ### #                      #        ######                    #          #####                  ####                       ###  ###                                    #                                                                     #                                  #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                         ####            # #                 ###              #######                   #          ####                  ####                       ###  ####                    ##                                                                                                                       #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                         ####           # # #               #####    #        #######                  #           ####                 ####                       ##    ####                  ###               #                                                                     #                                  #                                                                                                                                                                                         # ##    # #                 # ##    # #                                                                                               
     #                         ####            # #                ######            #######                  #            ###                #####                      ###    ###                 ###                                                                                                                          #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                         ####         # ##                  ######   #       ########                  #            ###               ######                       ##    ###               ###                   #                                                                     #                                  #                                                                                                                                                                                         # #   # # #                 # #   # # #                                                                                               
     ## # # # # # # # # # # #  #### # # # #  ##   # # # # # # #  #######  # # # #  ########   # # # # # # #  #  # # # # # ### # # # # #   #######   # # # # # # # # # #     ## ###  # # # #    ###    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                         ####         ##                   #######           #########                 #            ##             #######                               ###           ###                                                                                                                                #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                         ####     #  ##                    #######           ###  ####                #             ##            #######                                ##   #      ###                                                            #       ##                                                            #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          ###       ##                     ######           ####  ####                #             ##           #######                                 ##       ####           ###                                                        ###                                                           #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          ###      ##                      # ####           ###    ####               # #           ##          #######                                  ###   #####            #####                   #####          ####         #       ##                                                            #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          # #     ##                       # ###            ###    #####              #             ##          ######                                   #########              #####                 #########       #######              ###                                                            #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          # #    ##                        # ###           ####     #####             # #           #          ######                                    #######                #####                ##########        #######      #      ##                           ############                      #                                                                                                                                                                                         # # #   # #                 # # #   # #                                                                                               
     #                          # #   ##                        # ####           ###      ######            #             #          #####                                     #####                  #####               #####   ####        #######           ##                      ########################                #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          # ## ##                         # ###            ###       ######          ## #           #         ######                                     ###                    ####                ###      ###          #####     #     ##                 ###########            #######               #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          # # ##                          # ###            ###       #######         ##             #        ######                                      ##                     ####                ##       ###           #####         ##            ###########                        ###             #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          ## ##   #                       # ###            ###        ######         ## #           #       #######                                    ###    #                 ####               ##         ##            #####   #   ##          #########                              ###            #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          # ##                            # ##            ###         ######         ##             #      #######                                    ## #                      ###                ##         ##             #####      #           ###                                     ##            #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                           ##     #                       # ##            ###          ######        ## #           #      #######                                  ###  #    #                 ###                ##         ##               #####   ##                 ####                               ##           #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          ##                              # ##            ###           #####        ##             #     #######                                  ##    #                      ###                #          ##                ##### ##                 ######                              ##           #                                                                                                                                                                                         # #     # #                 # #     # #                                                                                               
     #                          # #     #                      #  ##            ###           #####        ###            #    ####  ##                                ###    ##    #                 ###                #          #                  #######                 ######                              ##           #                                                                                                                                                                                         # ####### #                 # ####### #                                                                                               
     #                         # ##                            # ##             ##             #####       ###            #   ###    ###                              ##      ##                     ###                 #          #                  ######                  ######                              ##           #                                                                                                                                                                                         #         #                 #         #                                                                                               
     #                         ####     #                      # ##            ###              ####       ###            #  ###      ##                                      ##    #                ###                 ##        ##                   #####                  ######                             ##            #                                                                                                                                                                                         ###########                 ###########                                                                                               
     #                        #####                            # ##            ###               ####     ####            # ###       ###                                     ##                     ###                 ##        #                    #####                   #####                             ##            #                                                                                                                                                                                                                                                                                                                               
     #                       ######     #                      # ##            ###                ###     ####            ####         ###                                    #     #                ###                 ##        #                    #####                   #####                            ##             #                                                                                                                                                                                                                                                                                                                               
     #                      ### ###                            # ##            ##                 ####    ####            ###          ###                                    #                      ##                  ###       ##                   ####                    #####                           ##              #                                                                                   ##                                                                                                                                                                                                                             ##           
     #                     ###   ##     #                      # #             ##                  ###    #####          ###            ###                                   #     #                ##                  ###       ##                   ####                    #####                          ##               #                                                                                  #  ###                                                                                                                                                                                                                       ###  #          
     #                    ###    ##                           #  #             ##                   ###   #####           ##            ####                                  #                      ##                   ###     ###                   ####                    ####                          ##                #                                                                                  #     ###                                                                                                                                                                                                                 ###     #          
     #                    ##     ##     #                     # ##             ##                    ##   #####            #             ####                                 #     #                ##         #####     ######  ###                    ###                    ####                         ##                 #                                                                                   #   #   ###                                                            ##########                                                               ##########                                                            ###   #   #           
     #                   ##      ##                           # ##            ###                    ###  #####            #             ####                                 #                      ##      ####          ##########                    ###                    ####                        #                   #                                                                                   #          ###                                                 ########          ####                                                       ####          ########                                                 ###          #           
     #                  ##       ##     #                     # ##            ##                      ##  ######           #              ####                                #     #                ###  #####              #######                     ###                    ####                       #                    #                                                                                    ##   #   #   ###                                        ######   #   #   #   #   #  ###                                                 ###  #   #   #   #   #   ######                                        ###   #   #   ##            
     #                 ##        ##                           # #             ###                     ### ######           #              #####                               #                      #######                                             ###                    ####                      #                     #                                                                                     ##             ######                           #######                               ##                                             ##                               #######                           ######             ##             
     #                ##         ##     #                     # #             ###                      #########           #               ####                               #     #                ######                                              ##                     ####                     #                      #                                                                                       #   #   #   #   #  ##########         ########  #   #   #   #   #   #   #   #   #   # #                                           # #   #   #   #   #   #   #   #   #   #  ########         ##########  #   #   #   #   #               
     #                #          ##                           # #             ####                      #######             #              #####                              #                      #####                                               ##                     ####                    #                       #                                                                                        #                           #########                                                 ##              ###########              ##                                                 #########                           #                
     #               #            ##    #                    #  #             ####                      ######              #               ####                             ##     #                 ###                                                ##                     ####                  ##                        #                                                                                         ##  #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #  #         ###################         #  #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #  ##                 
     #            ###             ##                         # ##             ####                       ###                #                ####                            ##                                                                         ###                     ####                 #                          #                                                                                           #                                                                                     #     #########################     #                                                                                     #                   
     #           ###              ##    #                    # ##             ##                              #             #                  ##                            ##     #                                                                   ###                     ####                #                           #                                                                                            ## #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #     #############################     #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   # ##                    
     #           ##               ##                         ###                                                            #                  ###                           #                                                                          ###                     ####              ##                            #                                                                                              ##                                                                                   #################################                                                                                   ##                      
     ## # # # #     # # # # # # # ##  # # # # # # # # # # #  ###  # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #   ##  # # # # # # # # # # # #  #  # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #   ### # # # # # # # # # # ####  # # # # #  #    # # # # # # # # # # # # # #                                                                                           ###  ##   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #    ###################################    #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   ##  ###                   
     #                            ##                         ###           #                                                #                    ##                          #                                         #                               ####                     ####         #  #                               #                                                                                           #  ##  ##                                                                            #######################################                                                                            ##  ##  #                   
     #                             #                        ####                                                            #                    ##                          #                                                                         ####                     ###            #                                #                                                                                            #  #### ####   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #########################################   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #### ####  #                    
     #                             #                        ####           #                                                #                     ##                         #                                         #                               ####                     ###          ##                                 #                                                                                             #     ### ##                                                                     ###########################################                                                                     ## ###     #                     
     #                             #                        ####                                                            #                      ##                        #                                                                        ######                    ###         #                                   #                                                                                              #  #   ######  #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   ###########  ###################  ###########   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #  ######   #  #                      
     #                             #                        ###            #                                                #                    # ##                        #                                         #                              ######                    ###       ##                                    #                                                                                               ##         ####                                                              ##########     #################     ##########                                                              ####         ##                       
     #                             #                         ##                                                              #                      ##                       #                                                                        ######                    ###      #                                      #                                                                                                 ###   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   ##########   #  #################  ##  ##########   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   ###                         
     #                             #                                       #                                                 #                   #  ##                       #                                         #                              ######                    ####   ##    #                                  #                                                                                                   ##                                                                     ##########    #   ###############   #    ##########                                                                     ##                           
     #                              #                                                                                        #                       ##                      #                                                                        ######                    ####  #                                         #                                                                                                     ##  #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #########   #   #  ###############  #   #   #########   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #  ##                             
     #                              #                                      #                                                 #                   #                           #                                         #                               ####                     #######      #                                  #                                                                                                       ###                                                               ########        #   #############   #        ########                                                               ###                               
     #                              #                                                                                        #                                               #                                                                                                 #######                                          #                                                                                                          ###  #   #   #   #   #   #   #   #   #   #   #   #   #   #    ########   #   #  # ############### #  #   #   ########    #   #   #   #   #   #   #   #   #   #   #   #   #   #  ###                                  
     #                               #                                     #                                                 #                   #                          ##                                         #                                                       ######        #                                  #                                                                                                      ####   ####                                                      #########          # ####### ####### #          #########                                                      ####   ####                              
     #                               #                                                                                       #                                              #                                                                                                  #####                                            #                                                                                                      #  ####### ### #   #   #   #   #   #   #   #   #   #   #   #     ########  #   #   ## ####### ####### #    #   #  ########     #   #   #   #   #   #   #   #   #   #   #   # ### #######  #                              
     #                                #                                    #                                                 #                   #                          #                                          #                                                      #####          #                                  #                                                                                                       #        ########                                              ########              ######   ######              ########                                              ########        #                               
     #                                                                                                                       #                                              #                                                                                                ####                                               #                                                                                                        ## #   #   #   #   #   #   #   #   #   #   #   #   #   #   #  #######  #   #   #   #######   #######   #   #   #  #######  #   #   #   #   #   #   #   #   #   #   #   #   #   #   # ##                                
     #                                                                     #                                                 ##                  #                         ###                                         #                                                    ###              #                                  #                                                                                                          ##                                                         ########              ##             ##              ########                                                         ##                                  
     #                                                                                                                        #                                            ###                                                                                             ##                                                   #                                                                                                            #### #   #   #   #   #   #   #   #   #   #   #   #   #   #######     #   #   # ###           ### #   #   #     #######   #   #   #   #   #   #   #   #   #   #   #   #   # ####                                    
     #                                                                     #                                                  #                  #                         ###                                         #                                                  ##                 #                                  #                                                                                                                ####                                                 #######               #####       #####               #######                                                 ####                                        
     #                                                                                                                        #                                           #####                                                                                         ##                                                      #                                                                                                                    ####   #   #   #   #   #   #   #   #   #   #    ########   #   #   #  #######     #######  #   #   #   ########    #   #   #   #   #   #   #   #   #   #   ####                                            
     #                                                                     #                                                  ##                 #                        #####                                        #                                               ##                    #                                  #                                                                                                                 ###########                                        #######               ######       ######               #######                                        ###########                                         
     #                                                                                                                       ###                                           ###                                                                                        #                                                         #                                                                                                                 #   #   #  ######   #   #   #   #   #   #   #   #  #######  #   #   #    ######   #   ######    #   #   #  #######  #   #   #   #   #   #   #   #   ######  #   #   #                                         
     #                                                                     #                                                 ###                 #                                                                     #                                            ##                       #                                  #                                                                                                                  ##                                                #######               #####   ###   #####               #######                                                ##                                          
     #                                                                                                                        ##                                                                                                                                   ##                                                           #                                                                                                                    ## #   #   #   #   #   #   #   #   #   #   #   #######     #   #   # ###### ####### ###### #   #   #     #####             #   #   #   #   #   #   #   #   # ##                                            
     #                                                                     #                                                                     #                                                                     #                                         ###                         #                                  #                                                                                                                      ###                                          #######               #####################               #     #########                                  ###                                              
     #                                                                                                                                                                                                                                                         ####                                                             #                                                                                                                         #####   #   #   #   #   #   #   #   #     #######   #   #   #   #####################   #   #   #     ####         ##   #   #   #   #   #   #   #####                                                 
     #                                                                     #                                                                     #                                                                     #                                      #####                          #                                  #                                                                                                                              ###                                                       ##########     ##                   ###              ##                       ###                                                      
     #                                                                                                                                                                                                                                                        #####                                                             #                                                                                                                             #######   #   #   #   #   #   #      ##########   #   #    ########   ###    ####     #      ##                  #    #   #   #   #   #######                                                     
     #                                                                     #                                                                     #                                                                     #                                      #####                          #                                  #                                                                                                                             #      ######                     ###     ######           ###      ## ### #######         ##       ######       ##             ######      #                                                     
     #                                                                                                                                                                                                                                                        #####                                                             #                                                                                                                              #  #   #   #####   #          ###          ####    #   #  ##  ##  #    # ###  ###  #    ##      ###  ######     ## #   #   #####   #   #  #                                                      
     #                                                                     #                                                                     #                                                                     #                                       ###                           #                                  #                                                                                                                               #                   ####   ##                           ##  ### #      ###    ##      #      ##       ####     ##                       #                                                       
     #                                                                                                                                                                                                                                                                                                                          #                                                                                                                                ## #   #   #     #####   #       ################      #  #####      ###     ##    ##     ##          ####   ### #     #   #   #   # ##                                                        
     #                                                                     #                                                                     #                                                                     #                                                                     #                                  #                                                                                                                                  ##            ####### #    #####        #########    # ### #  ##   ###     ##   #     ##            ########## ##                ##                                                          
     ############################################################################################################################################################################################################################################################################################################################                                                                                                                                    ##   #   # ##### ###   #####            ########     ##     ###  ###    ##   #    ##          #   #########  #       #   #   ##                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ##       ###        #####    ######    ##   ###   ###       #  ###    ## ##   ##          ###    #######  #    ##        ##                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ## #  ###        ### ##  ####  ###   #     ##   ###       #   ###   ###   ###    ##    ####    ###     #     ###   # ##                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ##  ###        #   #  ###     ##   #      ## ###        #    ##        ###     ###  #####   ###    ###     ###   ##                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             # ##        #    #  ##      ##   #      ## ###        # ##  ##      ####     ###  ####    ##     ##      ##  ##                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ##        #   #   ##  ##       #      ## ###       #  ##  ###   ######    ###    ###    ##     ##     ##  #                                                                      
                                                                                                             #                                                                                                                           #                                                                                                                                                                                                                                     ###      #    #  ### ####     #  ##  ### ###       #  #     ##  #### ##   ###    ###    ##     ###    ##  ##                                                                     
                                                                                                           ###                                                                                                                           ###                                                                                                                                                                                                                                ##  ###   ###    #  ## ## ##     #  ####### ###       #  #     ##    #  ##  ####    ###    #      ####  ##     ##                                                                   
                                                                                                         ###  #                                                                                                                         #  ###                                                                                                                                                                                                                            ##    ###### ###   #  ###      ##  #  ######  ###      #  #       ##   #  ##### #     ##     #     #########    #  ##                                                                 
                                                                                                        ###   #                                                                                                                         #   ###                                                                                                                                                                                                                          #        ##   # ## #   ###     ###  #  ###      ###    ##  ###     ##   #   #### #     ##    ##     ###   ##          #                                                                
                                                                                                      ####     #                                                                                                                       #     ####                                                                                                                                                                                                                        #  #   #     ##  # #   ##     ####  #   ##      ###  ###  ####     ##   #   ###  ##    ##    ##     ##     #   #   #  #                                                                
                                                                                                    ######     #                                                                                                                       #     ######                                                                                                                                                                                                                     #             #   # #   ##     ##   ##   ##       ######   #####   ###  #    ###  ##    ##    ##     ##    #            #                                                               
                                                                                                   ######      #                                                                                                                      #       ######                                                                                                                                                                                                                   #  # ###       #    ##  ##     ###   ##    ##        ##    # #########   #     #   ###  ###   ###    ##     #        # #  #                                                              
                                                                                                 #######        #                                                                                                                     #        #######                                                                                                                                                                                                                #   ##         ##    #   ####  ###    ##    ##            ##  #######    ##     #   ###  ###  ####    ##    ##    ###  ##   #                                                             
                                                                                                #######         #                                                                                                                    #          #######                                                                                                                                                                                                               # ##      ##   #    ##  ##########   ###      ##       ###     ###       ##     #  ####  ###  ####    ##    ###  #####   ## #                                                             
                                                                                              ########           #                                                                                                                   #           ########                                                                                                                                                                                                             # #      ###  ##    ##  ##   ###     ###        ########       ##  #   ###         ###   ###  ###    ####  ######## ##    # #                                                             
                                                                                            #########            #                                                                                                                  #             #########                                                                                                                                                                                                            #       ######    #### #           ###          ###  ####          ######                           ####  ######   ##     #                                                              
                                                                                           #########              #                                                                                                                 #              #########                                                                                                                                                                                                                   ######    #####          #####        ##       ####         ####                          ######   ###    ##                                                                     
                                                                                         ##########               #                                                                                                                #                ##########                                                                                                                                                                                                               #  ###          ###############      ###          ####                  #########        ########          ##                                                                      
                                                                                       ############               #                                                                                                                #               #############                                                                                                                                                                                                          ###              ###                  ###   ####    #####             #####         ################ ##     ###   ###                                                                 
                                                                                      ############                 #                                                                                                               #               # ############                                                                                                                                                                                                        ##   #   # ##   ###      #   #   #   ###   ########  ###           ######    ###         ##########     ######   #   ##                                                                
                                                                                    #############                  #                                                                                                              #               #  ##############                                                                                                                                                                                                     #      ##### #  ###                 ###  ########### ###       ########    #####      ##                        ##      #                                                               
                                                                                  ##############                    #                                                                                                             #               #  ################                                                                                                                                                                                                    ######   ###   ##  #  ##   #     ###   #  ######### ###   #########    ######  #   # # ##  #   ##  #   #   ###   ######                                                                
                                                                                 ##############                     #                                                                                                            #               #    ################                                                                                                                                                                                                         ###     ###   ###        ###         ######## ###########     ########          #  #      ###    ###    ###                                                                      
                                                                               ###############                      #                                                                                                            #               #    ##################                                                                                                                                                                                                     ##   # ## ###  # #       ###     #   #   ###### ########    ##########   #   #   # #  #  #   # # # #  ## #   ##                                                                    
                                                                             ################                        #                                                                                                          #               #     ####################                                                                                                                                                                                                    ######   ####  #     #####            ##  ####  ####    ###########  ##            #  ##     # ##  #   ######                                                                     
                                                                            ################                         #                                                                                                          #               #     #####################                                                                                                                                                                                                            ####     ######      #   # ##       ##      ###########       ## #   #   # #   ###   #  ###                                                                              
                                                                          #################             ##   ##################   #######################   ##########   #######             #######             #######       #     ###########      #######################                                                                                                                                                                                                           ############            ##             ###########             ##          #    ###  #                                                                                  
                                                                         ##################           #####  ##################   #######################  ###########   #######             #######             #######       #  ###############      #######################                                                                                                                                                                                                          ##########  # #   #   ##                                         ##   #   # #      ###                                                                                  
                                                                       ######## ############        #######  ###################  ###################### # ###########   #######             #######            ########      # ##################     ################ ########                                                                                                                                                                                                          ######  ##       ###                                             ###       ##                                                                                         
                                                                     #######   #############      ######## # ###################  #####################  #############   #######            ########            ########      ###################      #################   #######                                                                                                                                                                                                              ##  #   ###                                                   ###   #  ##                                                                                       
                                                                    ######    ###############   ########## #################### # ####################   #############   #######            ########            ########     ################## #      ##################    ######                                                                                                                                                                                                             #    ###                                                         ###    #                                                                                       
                                                                  #####      ################ ###########   ########          # # #   ########       #   #############   #######            ########            # #######    #########      ## #       ###################      #####                                                                                                                                                                                                            ####                                                               ####                                                                                        
                                                                ####        #############################   ####### #          # # #  ########       #  ##############   #######            ########           #  #######   ########        #  #       ######### ##########        ####                                                                                                                                                                                                                                                                                                                                                                         
                                                               ##          ##############################   ####### #          # # #  ########        ######## #######   #######            ########           #  #######   #######         # #         ######### ##########          ##                                                                                                                                                                                                                                                                                                                                                                        
                                                                #         ###############################   ##################  ## #  ####### #       ######## #######   #######           # #######           #  #######  ########        # #          #########  ##########         #                                                                                                                                                                                                     ##                                                                                                                                                                  
                                                                 #       ################################   ##################  # # # ####### #       #######  #######   #######           # #######          #   #######  #######         # #          #########   ##########       #                                                                                                                                                                                                     #  #                                                                                                                                                                 
                                                                  #     ################################   #################### # # # ####### #      #######   #######   #######           # #######          #   #######  #######        # #           ##########   ##########     #                                                                                                                                                                                                      # ##                                                                                                                                                                 
                                                                   #   ########### #####################   ####################  # # ######## #      #################   #######           # #######          #   ####### ########        # #           ##########    ##########   #                                                                                                                                                                                                      # ###                                                                                                                                                                 
                                                                    # ###########  ########## ##########   ################### # # # #######   #    ###################  #######          #   #######         #   ####### #########      # #            ##########    ########### #                                                                                                                                                                                                       # ###                                                                              #########                                                                          
                                                                     ###########    ########  ##########   ########          # #  # ########   #    ###################  #######          #   #######        #    ########  #######      # #             ##########    ###########                                                                                                                                                                                                        # ###                                                                         #####         ##                                                                        
                                                                    ###########      #####    ##########   ####### #          # # # ########   #   ####################  #######          #   #######        #    ########  ########    # #     #        ##########  ##############                                                                                                                                                                                                      # ###                                                                       ###     #########  ##                                                                      
                                                                   ###########       ####    ##########    ####### #          # # # ########   #  ########     ########  #######          #   #######        #     #######   #########  ##   ######      ###########################                                                                                                                                                                                                     # ###                                                                    ###   ################  #                                                                     
                                                                  ###########         #      ##########    ##################  ##  # #######   #  ########     ########  #######          #   #######        #     #######   ########################    ############################                                                                                                                                                                                                    # ###                                                                  ##   ##################### #                                                                    
                                                                 ###########           #     ##########   ###################  # # # #######    ######## #     ########  ##################   ##################   #######    #######################    #############################                                                                                                                                                        ####                          ##           # ###                                                                ##  ############      # #### #                                                                    
                                                                ############            #   ###########   ####################  ##  ########    #######   #    ########  ##################   ##################   #######      ####################      #############################                                                                                                                                                     ##    #                        #  #         # ###                                                               ##  ##########        ## #### #                                                                     
                                                               ############             #   ###########   ####################  # # ########    #######   #    ########  ##################   ##################   #######        #################       ##############   #############                                                                                                                                                   #  #### #                      # ###         # ###                                                             ##  ########        ####  ######                                                                      
                                                              ############               #  ###########   ################### #  ##  #######   #######    #    ########  ##################   ##################   #######           ##########   #       ###########     #  ############                                                                                                                                                 # ########                      # ###         # ###                                                           ##  ######       #####    #######                                                                       
                                                             ############                 # #########  #   #                 ##  # # # #   #   #     #    #    #     ##  #                #   #                #   #     #                       #        ###########    #    ############                                                                                                                                     ####      # #### ####                      # ###         # ###                                                          #  ######    #####     #########                                                                         
                                                            ############                   ########    #   #                 # #  ##  #     #   #    #    #    #     ##  #                #   #               #   #     #                       #         ############  #      ############                                                                                                                                   #   #      # ##### ###                     # ###         # ###                                                         ## ######  ####     ############                                                                           
                                                           ############                    ######       #   #                 ##  # # #     #   #     #    #   #     ##  #                #  #                #   #     #                      #          ############ #        ############                                                                                                                                 # ### #    # #### # ###                     # ###         # ###                                                        #  #####   #    ##############                                                                              
                                                          ############                     #####         #   #                # # # #  #    #   #     #    #    #    ##  #               #   #               #   #     #                       #           ############          ############                                                                                                                               # ######   # ####  # ##                      # ###         # ###                                                       # #####    # ##############                                                                                  
                                                         ############                     ####            #  #                 ##  ##  #     #  #     #    #    #    ##  #               #   #               #   #     #                      #            ############           ############                                                                                                                              # ######  # ####  # ###           ###        # ###         # ###                                                      # ####      ###########                                                                                       
                                                        #############                     ##              #   #                # # # # #     #   #    #    #    #    ##  #               #   #               #  #     #                      #             ############           #############                                                                                                                            # #######  # ###   # ##     ###   #   #       # ###         # ###                                                     # ####        #####                                                                                            
                                                       #############                       #               #   #                ##  ##  #    #   #     #    #   #    ##  #               #   #              #   #     #                     #             # ############           #############                                                                                                                          # #### ### # ####   # ##    #   #  # ###      # ###         # ###                                                     # ####                                                                                                          
                                                      #############                         #               #   #               # # # # #     #  #     #    #   #     #  #               #  #               #   #    #                      #            #    ##########            #############                                                                                                                         # ##### ## # ###    # ##    # ###  # ###      # ###         # ###                                                    # ####                                                                                                           
                                                     #############                           #               #  #                ##  ##  #    #   #    #    #   #     #  #               #  #               #  #     #                     #            #       ########             #############                                                                                                                       # ###### ### ###    # ###    # ###   ###       # ##########  # ###                                                   # ####                    ###                                                                                     
                                                    #############                             #              #   #               # # # # #    #   #    #    #   #     #  #              ##  #              #   #    #                     #            #         ########             #############                                                                                                                     # ##### # #######    # ###     ###            #######      ## # ###                                                  # ####                    #  ##                                                                                    
                                                   #############                               #              #   #               ##  ## #     #  #     #   #   #     #  #              ##  #              #  #     #                    #            #            ######              #############                                                                                                                    # #### # #######     # ###              ######       ###### # # ###                               ##                # ####                    # ####                  ###                                                               
                                                  #############                                 #              #  #               # # ##  #    #   #    #    #   #    #  #              ##  #             #   #    #                     #            #              ####               #############                                                                                                          ##      # ####  # #######     # ###         #####      ############### # ###        ###       ##          #  #              # ####                    # ####                  #   #                                                              
                                                 #############                                  #               #  #               ## # # #    #   #    #    #   #    #  #              ## #              #  #     #                    #            #                ####               #############                                                                                                        #  #     # ###   # ######      # ###     ####     #################### # ###        #   #     #  #        # ###             # ####                    # ### #                  # ###   ###                                                        
                                                #############                                    #              #   #              # # ##  #    #  #    #    #   #    ## #              ## #              #  #    #                    #            #                   ##                #############                                                                                                      # ###    # ####   # ######     # ###    ##    ##################        # ###       # ####    # ###        # ###             # ###                    # #### #                  # ###  #   #                                                       
                                               ##############                                     #              #  #               ## # # #    #  #     #   #   #    ## #              ## #             #   #    #                   #            #                    #                 ##############                                                                                                     # ###    # ###    # #####      # ###   #  #############  # ###          # ###      # ####     # ###        # ###            # ###                    # ###### #            ###   ###   # ###                                                       
                                              ##############                                       #              #  #              # # ## #    #  ##    #   #   #    ## #             # # #             #  #    #                    #           #                    #                   ##############                                                                                                   # #####  # ####    # #####      # ###   # ########        # ###          # ###     # ####      # ###       # ###            # ###                    # #### ### #          #  ##        # ###                                                       
                                             ##############                                         #             #   #              ## ##  #    # ##    #    #  #    ## #             # # #            ##  #    #                   #           #                   ##                     ##############                                                                                                 # ######  # ###    # #####       # ###    ####             # ###          # ###    # ####       # ###       # ###            # ###                   # ####  ### #         # ####         ###                                                        
                                            ##############                                           #             #  #              # # #  #    # ##    #    #  #    ## #             # ##             ## #    #                   #           #                   #                        ##############                                                                                                # ###### # ####    # #####       # ###         ####        # ###          # ###    # ###       # ###        # ###           # ###                    # ###    ### #       # ####                                                                     
                                           ##############                                             #             #  #              ####   #   # # #   #    ####    ## #             # ##             ## #    #                  ##          #                   #                          ##############                                                                                              # ### ### # ###     # #####      # ###        ##    #       # ###         # ###    # ###        # ###       # ###            # ###                   # ###      ### #     # ####          ###                                                         
                                          ##############                                               #             #  #             # #    #    ## #    #   #   #   ## #             # ##            # ##    #                   ##         #                   #                            ##############                                                                                             # #### #### ###     # ####       # ###       #  #### #     # ###          # ###    # ###        # ###       # ###           # ###                   # ####      ### #    # ####          #  ##                                                        
                                         ##############                                               # #            #  ##             ##    #    ## #    #   #   #   ## #             # ##            # ##    #                  #  #       #                   #                              ##############                                                                                           # ### # ### ###      # ####       # ###      # #########    # ###          # ###    # ###        # ###       # ###           # ###                  # ####      # ####   # ####          # ####                                                        
                                        ##############         ##                                    #   #            # ##             # #    #   ##  #   #  #    #   ## #            #  ##            # ##   #                  #   #      #                   #                     ##         ##############                                                                                         # ###  # ### ###      # ####       # ###     # ##### ####    # ###          # ###    # ###        # ###       # ###           # ###                 # ####       # ###    # ###          # ####                                                         
                                       ###############     ##### ##                                 #     #            ## #             ##    #    #  #   # #     #   ## #            #  #            #  #    #                ##    #      #                 ##                    ## #####     ###############                                                                                        # ###  # ## ####      # ####       # ###    # ###   # ###    # ###          # ###     # ###       # ###      # ###           # ###                  # ###       # ####   # ###          # ####                                                          
                                      ###############   ######     #                               #       #            #  #            ##     #   #  #    ##     #    #  #           #  #            #  #   # ###          ###      #     #                 #                     #     ######   ###############                                                                                      # ###   # ## ###      # ####        # ###    # ###   # ####   # ###          # ###     # ####     # ###       # ###           # ###                 # ####      # ####   # ####         # ####         ######                                            
                                     ########################       ##                            #        #            #   ##############     #####  ######      ######  #############  ##############  ####     ##########         #    #                 #                    ##       ########################                                                                                     # ###   # ## ###      # ####       # ###    # ###     # ###   # ###         # ###       # ###     # ###       # ###           # ###                # ####       # ###   # ####         # ####      ####      #                                           
                                    #######################           #                           #         #         ##                                                                                                             #   #                 #                    #           #######################                                                                                   # ###    # ######      # ####       # ###    # ###     # ###  # ###          # ###      # ###      # ###       # ###           # ###                # ###       # ####  # ####         # ####    ###    #######                                           
                                   ######################              ##                        #           #      ##                                                                                                                # #                 #                   ##              ######################                                                                                  # ###    # #####       # ####       # ###    # ###     # ###  # ###          # ###     # ###       # ###      # ###           # ###                # ####      # ####   # ###         # ####    #   ##########                                            
                                  #####################                  #                      #             #    #                                                                                                                  ##                ##                   #                  #####################                                                                                # ###     # #####       # ####       # ###   # ###      # ###  # ###          # ###    # ####       # ###      # ###           # ###                # ###      # ####  ## ###        ## ####    # #########                                                
                                 #####################                    ##                   #               # ##                                                                                                                   #                #                   ##                    #####################                                                                               # ###     # #####       # ####       # ###   # ###      # ###  # ###         # ####   # ####        # ##      #  ###           # ###               # ###       # ######  ####      ##  ####     # #####                                                    
                                ####################                        #                 #                 #                                                                                                                      #              # #                 #                        ####################                                                                             # ###      # #####       # ###        # ###   # ###      # ###  # ###         # ####   # ###        # ###     # # ###           # ###               # ###      # #####  #####     ##  #####     # ####                                                      
                               ###################                           ##              #                                                                                                                                          ##           #   #              ##                           ###################                                                                            # ###      # ####        # ###        # ###   # ###      # ###  # ###        # #####  # ####        # ###    # # ###            # ###              # ###      # ####  ######    ##  ######      # ###                                                       
                              ###################                              #            #                                                                                                                                             #         #     #            #                              ###################                                                                          # ###       # ####        # ###       # ###    # ###      # ###  # ###       # ######  # ####       # ####   # ## ###            # ###              # ###      # ## #########  ##  #### ##       # ###                                                       
                             ##################                                 ##         #                                                                                                                                               ##      #       #         ##                                 ##################                                                                         # ###      # #####        # ###       # ###   # ###      # ###  # ###       # ######   # ###       # #####  # ### ###            # ####             # ##      # ####### ### ###  ##### ###     ### ###                                                       
                            #################                                     #       #                                                                                                                                                  ##  ##         #       #                                     #################                                                                       # ###       # #####       # ###        # ###   # ###      # ###  # ###      # #######  # ####      # #### ### #### ###            # ####              ##       # ##### # ####   ####### ##    ##   #####                                                      
                           ################                                        ##     #                                                                                                                                                    ##           #     ##                                        ################                                                                       # ##       # ####        # ###        # ###   # ###      # ###  # ###     # #### ###  # ####     # ######   #### ###              # ####                      #  ##   # ########### # ### ###  ########                                                      
                          ################                                           #   #                                                                                                                                                                   #   #                                           ################                                                                       ##        # ####        # ###        # ###   # ###      # ###  # ###    # ##### ### # #####   ## ############## ###              # ### ###                    ##      # ########  # #####   #########                                                       
                         ###############                                              ###                                                                                                                                                                     ###                                              ###############                                                                                # ####        # ###        # ###   # ###      # ###  # ###  ## #### # #### #########  ##### ####### # ###               # ###   #######                      #####      # ###  ###########                                                        
                        ##############                                                  #                                                                                                                                                                     #                                                  ##############                                                                               # ####        # ###        # ###   # ###     # ###   # #####  ####  # ##  ######    #####  # #####  # ###                #  ####       ##########                      # ######### #####                                                          
                       ##############                                                    ##                                                                                                                                                                 ##                                                    ##############                                                                              # ####        # ###       # ###    # ###     # ###   # ###  #####   # ####### ##########    ####   # ###                  ## ##########          #######               # ###### # ####              ###                                           
                      #############                                                        #                                                                                                                                                               #                                                        #############                                                                             # ###         # ###       # ###   # ####     # ###   # #########    # ######   ########            # ###                    #####################       #####           ####    # ###           ####   #                                          
                     ############                                                           #                                                                                                                                                             #                                                           ############                                                                            # ###         # ###       # ###   # #####   # ###    # ########      # ####     #####              # ###                       #########################     #####              # ####      ####    ####                                          
                    ############                                                           #                                                                                                                                                               #                                                           ############                                                                           # ###        # ###        # ###  # ######   # ###     # ######        ###                          # ###                               ######################     ####          # ### ######    #######                                           
                   ###########                                                           ##                                                                                                                                                                 ##                                                           ###########                                                                         # ####        # ###        # ### # ### ###### ###      #  ####                                      # ###                                         #################    ###       # ####      #########                                             
                  ##########                                                           ##                                                                                                                                                                     ##                                                           ##########                                                                        # ####        # ###        # #### ##### #########       ####                                       # ###                                                 ##############   ###     # ###############                                                
                 ##########                                                           #                                                                                                                                                                         #                                                           ##########                                                                       # ####        # ###        # ##  ####  # #######                                                   # ###                                                      ############   ###   #############                                                   
                #########                                                           ##                                                                                                                                                                           ##                                                           #########                                                                      # ###         # ###        # ########   #######                                                    # ###                                                           ##########   ##    ######                                                       
               ########                                                           ##                                                                                                                                                                               ##                                                           ########                                                                     # ###         # ###         # ######      ###                                                      # ###                                                               #########  ###                                                              
              ########                                                           #                                                                                                                                                                                   #                                                           ########                                                                    # ###         # ###         # #####                                                                # ###                                                                  ########   ###                                                           
             #######                                                           ##                                                                                                                                                                                     ##                                                           #######                                                                   # ###          # ##          # ###                                                                 # ###                                                                     ########   ##                                                         
            ######                                                           ##                                                                                                                                                                                         ##                                                           ######                                                                  # ###           ##            ##                                                                  # ###                                                                         ########  ##                                                       
           #####                                                           ##                                                                                                                                                                                             ##                                                           #####                                                                 # ###                                                                                             # ###                                                                           ########  #                                                      
          #####                                                           #                                                                                                                                                                                                 #                                                           #####                                                                # ###                                                                                             # ###                                                                              ###### #                                                      
         ####                                                           ##                                                                                                                                                                                                   ##                                                           ####                                                              # ###                                                                                              # ###                                                                                 #####                                                      
        ###                                                           ##                                                                                                                                                                                                       ##                                                           ###                                                             # ###                                                                                              # ###                                                                                   ##                                                       
       ###                                                           #                                                                                                                                                                                                           #                                                           ###                                                            # ###                                                                                              # ###                                                                                                                                            
      ##                                                           ##                                                                                                                                                                                                             ##                                                           ##                                                           # ###                                                                                              # ###                                                                                                                                            
     ###                                                         ##                                                                                                                                                                                                                 ##                                                         ###                                                          # ###                                                                                             # ###                                                                                                                                             
        ####                                                    #                                                                                                                                                                                                                     #                                                    ####                                                             # ###                                                                                             # ###                                                                                                                                             
            #####                                             ##                                                                                                                                                                                                                       ##                                             #####                                                                 # ###                                                                                             # ###                                                                                                                                             
                 ####                                       ##                                                                                                                                                                                                                           ##                                       ####                                                                      # ###                                                                                             # ###                                                                                                                                             
                     #####                                ##                                                                                                                                                                                                                               ##                                #####                                                                          # ###                                                                                             # ###                                                                                                                                             
                          ####                           #                                                                                                                                                                                                                                   #                           ####                                                                                # ##                                                                                             # ###                                                                                                                                             
                              #####                    ##                                                                                                                                                                                                                                     ##                    #####                                                                                     ##                                                                                              # ###                                                                                                                                             
                                   ####              ##                                                                                                                                                                                                                                         ##              ####                                                                                                                                                                                          # ###                                                                                                                                             
                                       #####        #                                                                                                                                                                                                                                             #        #####                                                                                                                                                                                             # ###                                                                                                                                              
                                            ####  ##                                                                                                                                                                                                                                               ##  ####                                                                                                                                                                                                  # ###                                                                                                                                              
                                                ##                                                                                                                                                                                                                                                   ##                                                                                                                                                                                                      # ###                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             # ###                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             # ###                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             # ###                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             # ###                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             # ###                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              # ##                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ##                                                                                                                                               
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                  #                                  #                                                                                                                 #                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                 # #                                # #                                                                                                               # #                                                                                                                                                                                                                       ##################         ##################         ##################      #####################      #####################      #####      ##################      ######             #####      ##################                         
                                 #  #                              #   #                                                                                                             #   #                                                                                                                                                                                                                    ##                  ##     ##                  ##     ##                  ##    #                    ##    #                    ##    #   ##   ##                  ##    #     #            #   ##   ##                  ##                       
                                #    #                            #    #                                                                                                            #    #                                                            ################                                                                                                                                        #                    ##    #                    ##    #                    ##   #                     ##   #                     ##   #   ##   #                    ##   #     ##           #   ##   #                    ##                      
                               #      #                           #     #                                                                                                          #      #                                                     ######                #######                                                                                                                                #                      #   #                      #   #                      #   #                      #   #                      #   #   ##  #                      #   #      #           #   ##  #                      #                      
                              #        #                         #       #                                                                                                        #        #                                                ####                             #####                                                                                                                           #     ###########      ##  #    ############      ##  #     ############     ##  #    ###########       ##  #    ###########       ##  #   ##  #     ############     ##  #      ##          #   ##  #     ###########      ##                     
                              #  #      #                       #         #                                                                                                      #          #                                            ###          ################            ###                                                                                                                        #    #############     ##  #   ##############     ##  #    ##############    ##  #   #############      ##  #   #############      ##  #   ##  #    ##############    ##  #       #          #   ##  #    #############     ##                     
                             #  ##       #                     #          #                                                                                                     #           #                                         ###       ######                #######        ###                                                                                                                     #   ###           #    ##  #   ###           #    ##  #   ###            #   ##  #   ###          #     ##  #   ###          #     ##  #   ##  #   ###            #   ##  #       ##         #   ##  #   ###           #    ##                     
                            #  # #       #                    #            #                                                                                                  ##     #       #                                      ##      ####                             #####      ##                                                                                                                   #   ##            #   ###  #   ##            #   ###  #   ##             #   ##  #   ##           #    ###  #   ##           #    ###  #   ##  #   ##             #   ##  #        #         #   ##  #   ##            #   ###                     
                            #  # #       #                  ##    ##       #                                                                                                 #      ##       #                                    ##     ###                                      ###     ##                                                                                                                 #   ##           #    ##   #   ##           #    ##   #   ##            #    ##  #   ##           #    ##   #   ##           #    ##   #   ##  #   ##            #    ##  #        ##        #   ##  #   ##           #    ##                      
                           #  #  #       #                 #    ## #       #                                           #                                                    #      # #       #                                   #     ##                                            ##     ##                                                                                                               #    #           #   ###   #   ##           #   ###   #   ##            #    ##  #   ##          #    ###   #   ##          #    ###   #   ##  #   ##            #    ##  #         #        #   ##  #    #           #   ###                      
                          #  #   #       #                #  ###   #       #                                          # #                                                  #     ##  #       #                                 ##    ##                                                ##     ##                                                                                                             #    #          #    ##    #   ##          #    ##    #   ##           #     ##  #   ##         #    ###    #   ##         #    ###   #    ##  #   ##           #     ##  #         ##       #   ##  #    #          #    ##                       
                          #  #   #       #               ####      #       #                                        ##   #                                                #     #    #       #                                #    ##                                                    ##     #                                                                                                            # ### ##       # ## ###    # # ##         # ## ###    # # ##          # #### ##  # # ##         # ## ##     # # ##         # ## ##   # ### ##  # # ##          # #### ##  # ##  #### #       # # ##  # ### ##       # ## ###                       
                         #  #    #       #              ##         #       #                                       #     #                                              ##    ##     #       #                              ##    #                                                        ##    #                                                                                                            #      #      #    ##     #   ##         #    ##     #   ##          #      ##  #   ##        #    ###     #   ##        #    ###   #     ##  #   ##          #      ##  #   ##     ##      #   ##   #      #      #    ##                        
                        #  #     #       #                         #       #                                      #       #                                            #     #       #       #                             #    ##                                                           #    ##                                                                                                          #       #      #  ###     #   ##          #  ###     #   ##         #       ##  #   ##       #    ###      #   ##       #     ##   #      ##  #   ##         #       ##  #   ###     #      #   ##   #       #      #  ###                        
                        #  #     #       #                         #       #                                     #         #                                         ##    ##        #       #                            #   ##                                                              #     #                                                                                                          #       #      ####      #   ##           ####      #   ##        #        ##  #   ##       #    ##       #   ##       #    ###   #      ##  #   ##        #        ##  #   ###     ##     #   ##    #       #      ####                         
                       #  #      #       #  #                      #       #                                    #           #            #                          #    ##          #       #                       #####   #                                                                 ##    #                                                                                                          ##      #      ##       #   ##            ##       #   ##       #         ##  #   ##      #    ###       #   ##      #    ###   #       ##  #   ##       #         ##  #   ## #     #     #   ##     ##      #      ##                          
                      #  #       #       #  ##                     #       #                                  ##            #           #                         ##   ##            #       #                     ##      ##                                                                    #    #                                                                                                          ## #### #              # # ##                     # # ##       # ####### ##  # # ##     # ## ###        # # ##     # ## ###   # ###### ##  # # ##       # ####### ##  # # ## # ### ##    # # ##      ## #### #                                 
                      #  #       #       #  # #                    #       #                                 #   #####       #         ##                       ##   ##              #       #                    ####     #                                                                      #    #                                                                                                           #      #             #   ##                     #   ##      #          ##  #   ##     #    ##         #   ##     #    ##   #         ##  #   ##      #          ##  #   ##  #     #    #   ##        #      #                                
                     #  #        #       #  #  ##                  #       #                                #####    #       #        ##                      ##   ##                #       #                   ##        #                                                                       #    #                                                                                                           #      ##           #   ##                     #   ##     #           ##  #   ##    #    ###         #   ##    #    ###   #         ##  #   ##     #           ##  #   ##  #     ##   #   ##         #      ##                              
                    #  #         #       #  #    ##                #       #                              ##         #       #      ###                     ##  ###                  #       #                  #          #                                                                        #    #                                                                                                           #  ###  #          # # ##                     # # ##     ########### ##  # ## #   # ## ###          # ## #   # ## ###   # ######## ##  # # ##     # ######### ##  # ## #   # ### #   # # ##          #  ###  #                             
                    #  #         #       #  #      #               #       #                            ## #         #       #     # #                    ## ###                     #       #                 #        # #                                                                          #    #                                                                                                           ##      #         #   ##                     #   ##    #            ##  #    #   #    ##           #    ##  #    ##   #           ##  #   ##    #            ##  #    ##  #     ##  #   ##           ##      #                            
                   #  #          #       #  #       #              #       #                           #   #         #       #   ## #                   #####                        #       #                 ###      # #                                                                           #   #                                                                                                  #####     ##      ##       #   ##             #####   #   ##   #             ##  #     #   #    #           #     # #    ###   #           ##  #   ##   #             ##  #     #   #     #  #   ##  #####     ##      ##                          
                   #  #          #       #  #       #              #       #                         ##    #         #       # ##  #                 ####                            #       #                ##    #  ###                                                                             #   #                                                                                                 #    #      # ####  #      # # ##            #    ##  # # ##   # ########### ##  # ### #   # ### #          # #### # ## ###   # ########## ##  # # ##   # ########### ##  # ### ##  # ### ## # # ##  #    #      # ####  #                         
                  #  #           #       #  #       #  ##          #       #                        #      #         #       ##   #                                                  #       #                 #    # ##                                                                               #   #                                                                                                 #     #      #       #     #   ##           #     ##  #   ##   #             ##  #      #   #     ###       #           ##   #             ##  #   ##   #             ##  #      #   #     # #   ##  #     #      #       #                        
                 #  #            #       #  #       #  # ###       #       #                         ##    #         #           #                                                   #       #                #   ## #                                                                                  #   #                                                                                                # #### #      #  #### #    # # ##          # #### ##  # # ##  # ############ ##  # #### #   # ####   ####   # ######## ###   # ########### ##  # # ##  # ############ ##  # #### ##  # ### ### # ##  # #### #      #  #### #                       
                 #  #            #       #  #       #  #    ####   #       #                           #   #         #         ##                                                    #       #                ####                                                                                      #   #                                                                                                #       #      ##     ##   #   ##         #       ##  #   ##  #              ##  #       #   #          ##  #         ###   #              ##  #   ##  #              ##  #       #   #     ##   ##  #       #      ##     ##                      
                #  #             #       #  #       #  #       #   #       #                            ## #         #        #                                                      #       #                                                                                                           #   #                                                                                               # ###### ##     ## ### #   # # ##       ## ###### ##  # # ##  # ############ ##  # ##### #   # ######## ##  # ####### ##   #  ############ ##  # # ##  # ############ ##  # ##### ##  # ### ## # ##  # ###### ##     ## ### #                      
                #  #             #       #  #       #  #       #   #       #       #                 #    ##      ###        #              #                                        #       #           #                          #                      #             #                               #   #                                                                                               # #######  #      # ## ##  # # ##      #  ####### ##  # # ##  # ############ ##  # ###### #   # ####### ##  # ###### ###   #  ############ ##  # # ##  # ############ ##  # ###### #   # ### # # ##  # #######  #      # ## ##                     
               #  #              #       #  #       #  #       #   #       #      # #               # #        ###           #            ## ##                                      #       #          # #                       ## ##                  ## #           # #                               #   #                                                                                              #           #     #    ##  #   ##     #           ##  #   ##  #              ##  #        ##  #         ##  #        ##    #               ##  #   ##  #              ##  #        ##  #     #   ##  #           #     #    ##                     
               #  #              #       #  #       #  #       #   #       #     #   #             #   #    ###              #           #     #                                     #       #         #   #                     #     #                #    #         #   #                              #   #                                                                                              # ########## #     # # ##  # # ##    # ########## ##  # # ##  # ############ ##  # ###### ##   # ###### ##  # ###### ##    # ############# ##  # # ##  # ############ ##  # ###### ##   # ### ## ##  # ########## #     # # ##                     
              #  #               #       #  #       #  #       #   #       #    #    #            #    #      ##             #          #       #                                    #       #        #    #                    #       #              #     #        #    #                              #   #                                                                                              # ########### #    # # ##  # # ##   # ########### ##  # # ##  # ############ ##  # ####### #    # ##### ##  # ####### #    # ############# ##  # # ##  # ############ ##  # ####### #   # ###### ##  # ########### #    # # ##                     
              #  #               #       #  #       #  #       #   #       #   #      #          #      #       #  ###       #        ##         ##                                  #       #       #      #                 ##         ##           #       #      #      #                              #   #                                                                                             #             ##   #   ##  #   ##   #             ##  #   ##  #              ##  #         ##   #       ##  #         ##   #               ##  #   ##  #              ##  #         ##   #       ##  #             ##   #   ##                     
             #  #                #       #  #       #  #       #   #       #  #        #        #        #       ##  #       #       #             #                                 #       #      #        #               #             #        ##         #    #        #                             #   #                                                                                             # ############ #   # # ##  # # ##  # ############ ##  # # ##  # ############ ##  # ####### ##    # #### ##  # ####### ##   # ############# ##  # # ##  # ############ ##  # ####### ##   # ##### ##  # ############ #   # # ##                     
             #  #                #       #  #       #  #       #   #       # #          #      #          #          #       #      #    ##         #                                #       #     #          #             #    ##         #      #            #  #          #                            #   #                                                                                             # ############ ##  # # ##  # # ##  # ############ ##  # # ##  # ############ ##  # ####### ##    # #### ##  # ####### ##   # ############# ##  # # ##  # ############ ##  # ####### ##    # #### ##  # ############ ##  # # ##                     
            #  #                 #       #  #       #  #       #   #       ##           #     #           #          #       #    ##     # #         ##                              #       #    #           #           ##     # #         ##  ##      #      # #           #                            #   #                                                                                             # ############ ##  # # ##  # # ##  # ############ ##  # # ##  # ############ ##  # ####### ##     # ### ##  # ####### ##   # ############# ##  # # ##  # ############ ##  # ####### ##    # #### ##  # ############ ##  # # ##                     
            #  #                 #       #  #       #  #       #   #       #    ##       #   #    ##       #         #       #   #       #  ##         #                             #       #   #    ##       #         #       #  ##         ##       ##       #    ##       #                            #   #                                                                                            #               # #    ##  #    # #               ##  #    # #               ##  #         ##     #     ##  #         ##   #               ##  #    # #               ##  #         ##     #     ##  #               # #    ##                     
           #  #                  #       #  #       #  #       #   #          ## #       #  # #### #       #         #       #   #       #    #        #                             #       #  # #### #       #         #       #    #        #      ## #          ## #       #                            #   #                                                                                            # ############## # ### ##  # ### # ############## ##  # ### # ############## ##  # ####### ##      # ## ##  # ####### ##   # ############# ##  # ### # ############## ##  # ####### ##     # ### ##  # ############## # ### ##                     
           #  #                  #       #  #       #  #       #   #        ##   #       # ###     #       #         #       #   #       #     #       #                             #       # ###     #       #         #       #     #            ##   #        ##   #       #                            #   #                                                                                            # ############### #### ##  # #### ############### ##  # #### ############### ##  # ####### ##      # ## ##  # ####### ##   # ############# ##  # #### ############### ##  # ####### ##      # ## ##  # ############### #### ##                     
          #   #                  #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #     #       #                             #       #         #       #         #       #     #          ##     #       #     #       #                            #   #                                                                                             # ################## ###   # ################## ###   # ################## ###  # ####### ##       # # ##  # ####### ##   # ############# ##   # ################## ###  # ####### ##      # ## ##   # ################## ###                     
          #  #                   #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #     #       #                             #       #         #       #         #       #     #        ##       #       #     #       #                            #   #                                                                                             ##                  ###    ##                  ###    ##                  ###   #         ##       #   ##  #         ##   #               ##   ##                  ###   #         ##       #   ##   ##                  ###                      
          #  #                   #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #     #       #                             #       #         #       #         #       #     #       #         #       #     #       #                             #   #                                                                                             ######################     ######################     ######################   ############        #####  ############    #################    ######################   ############       ######    ######################                      
         #   #                   #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #     #       #                             #       #         #       #         #       #    #        #         #       #     #       #                             #   #                                                                                               ##################         ##################         ##################      ##########          ####   ##########      ###############       ##################      ##########         #####      ##################                        
         #  #                    #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #     #       #                             #       #         #       #         #       #  ##         #         #       #     #       #                             #   #                                                                                                                                                                                                                                                                                                                                              
         #  #                    #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #     #       #                           ###       #         #       #         #       ###   #       #         #       #     #       #                             #   #                                                                                                                                                                                                                                                                                                                                              
        #   #                    #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #     #       #                       ####  #       #         #       #         #           ###       #         #       #     #       #                             #   #                                                                                                                                                                                                                                                                                                                                              
        #  #                     #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #     #       #                    #####    #       #         #       #         #         ##  #       #         #       #     #       #                             #   #                                                                                                                                                                                                                                                                                                                                              
        #  #                     #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #     #       #                ######       #       #         #       #         #        #    #       #         #       #     #       #                             #   #                                                                                                                                                                                                                                                                                                                                              
       #   #                     #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       #  ####       #             ### ###         #       #         #       #         #       #     #       #         #       #     #       #                             #   #                                                                                                                                                                                                                                                                                                                                              
       #   #                     #       #  #       #  #       #   #       #     #       #         #       #         #       #   #       ###           #          ###  ##            #       #         #       #         #       #     #       #         #       #     #       #                             #   #                                                                                                                                                                                                                                                                                                                                              
       #  #                      #       #  #       #  #       #   #       #     #       #         #       #         #       #   #                   ###      ####   ##              #       #         #       #         #       #     #       #         #       #     #       #                            #   #                                                                                                                                                                                                                                                                                                                                               
       #  #                      #       #  #       #  #       #   #       #     #       #         #       #         #       #   #               ####      ###    ###                #       #         #       #       ##        #     #       #         #       #     #       #                            #   #                                                                                                                                                                                                                                                                                                                                               
      #   #                      #       #  #       #  #       #   #       #     #       #         #       #         #       #   #            ###       ###     ##                   #       #         #       #     ##          #     #       #         #       #     #       #                            #   #                                                                                                                                                                                                                                                                                                                                               
      #   #                      #       #  #       #  #       #   #       #     #       #     ### #       #     ### #       #   #         ###        ##      ##                     #       #         #       #    #    #       #     #       #         #       #     #       #                            #   #                                                                                                                                                                                                                                                                                                                                               
      #   #                      #       #  #       #  #       #   #       #     #       # #### #  #       # #### #  #       #   #       ##        ###      ##                       #       #         #       #  ##    ##        #    #       #         #       #     #       #                            #   #                                                                                                                                                                                                                                                                                                                                               
      #   #                      #       #  #       #  #       #   #       #     #       ##    #   #       ##    #   #       #   #       #      ###       ##                         #       #         #       ###     # #         ##  #       #         #       #     #       #                           #   #                                                                                                                                                                                                                                                                                                                                                
     #   #                       #       #  #       #  #       #   #       #      #           #     #           #    #       #    ##     #    ##        ##                           #       #          #      #      #   ##         # #     ##          #       #     #       #                           #   #                                                                                                                                                                                                                                                                                                                                                
     #   #                       #       # ##       # ##       #   #       #       #         #       #         #     #       #      #    # ###        ##                             #       #           #           #      #         ##    #             #      #     #       #                           #   #                                                                                                                                                                                                                                                                                                                                                
     #   #                       #       ##         ##         #   #       #       #        #        #        #      #       #       #   ##          #                               #       #           #         ##        #             #               ##    #     #       #                          #   #                                                                                                                                                                                                                                                                                                                                                 
     #   #                       #                             #   #       #        #      #          #      #       #       #        ##           ##                                #       #            #       #           ##         ##                  #   #     #       #                          #   #                                                                                                                                                                                                                                                                                                                                                 
     #   #                       #           #          #      #   #       #         #    #            #    #        #       #          #        ##                            #     #       #             #     #              #       #                     #  #     #       #                          #   #                                                                                                                                                                                                                                                                                                                                                 
     #   #                       #          # #        # #     #   #       #          #  #              #  #         #       #           #     ##                              ##    #       #              #  ##                #     #                       # #     #       #                         #   #                                                                                                                                                                                                                                                                                                                                                  
     #   #                       #         #   #       #  #    #   #       #          # #               # #          #       #            ## ##                               #  #   #       #              # #                   ## ##                         ##     #       #                         #   #                                                                                                                                                                                                                                                                                                                                                  
     #   #                       #         #    #     #    #   #   #       #           #                 #           #       #              #                                 #   #  #       #               #                      #                            #     #       #                        #    #                                                                                                                                                                                                                                                                                                                                                  
     #   #                       #        #      #    #     #  #    #      #                                         #       #                                               #     # #       #                                                                         #       #                       #    #                                                                                                                                                                                                                                                                                                                                                   
      #   #                      #       #       #   #      #  #     #     #                                         #       #                                               #      ##        #                                                                        #       #                       #    #                                                                                                                                                                                                                                                                                                                                                   
      #   #                      #       #        #  #       # #     #     #                                         #       #                                              #        #        #                                                                        #       #                      #    #                                                                                                                 #######                                                                                                                                                                           #######                                          
      #   #                      #      #          ##         ##      #    #                                          #      #                                             #                   #                                                                       #       #                      #   #                                                                                                                 ########                                                                                                                                                                          ########                                          
      #   #                      #     #            #          #       #   #                                           #     #                                             #                    #                                                                       #      #                     #    #                                                                                                                      ###                                                                                                                                                                               ###                                          
      #   #                      #     #                                #  #                                           #     #                                            #                      #                                                                       #     #                    #    #                                                                                                                       ###                                                                                                                                                                               ###                                          
       #   #                     #    #                                 #  #                                            #    #                                           #                        #                                                  ##                   #    #                   #    #                                                                                                                        ###                                                                                                                                                                               ###                                          
       #   #                     #    #                                  # #                                            #    #                                           #                         #                                             #####                     #   #                  #     #                                                                                                                        ###                                                                                                                                                                               ###                                          
       #   #                     #   #                                   # #                                             #   #                                          #                           ##                                       ####   #                      #   #                 #     #                                                                    ####                                                 ###                                                                               #                        #                                                                      ###                                       #  
        #   #                    #   #                                    ##                                             #   #                          ################                              ###                             #######      #                        #  #                #     #                                                                    ##################################################    ###        #######      #######     ##########################          ######   ##            ######    ##   ######              ########          #########                     ###    #########                ######   ##  
        #   #                    #  #                                     ##                                              #  #             #############                                                 ####                #########            #                          # #               #     #                                                                      ################################################     ###      ###########   ########     #########################        ##############         ##############   ########            #########         ###########                    ###   ##########             ##############  
        #    #                   #  #                                      #                                              #  #   ##########                                                                  ################                    #                            ##              #     #                                                                               ###           #####         #####            ###    ##############       ###     ###################            ######     ####        #####      #####       #####                 ###               #####                    ###        ####            ######     ####   
         #   #                   #  #                                                                                     #  ####                                                                                                               #                             ##            ##     #                                                                               ##              ###            #####          ###   ###      ######       ###     ##         ####              #####          ##       ###           ##        ######                ###               ######                   ###        ###           #####          ##   
         #    #                  # #                                                                               ####### # #                          #######################                                                                 #                              #          ##      #                                                                               ##               ###             #####         ###  ##          #####      ###     #          ###              ####            ##      ###             #        #######               ###               #######                  ###       ###           ####            ##   
          #   #                  # #                                                                         ######        # #             #############                       ###############                                                 #                                         #       #                                                                               ##                ###              #####        ### ##            ####      ###     #          ###             ####              #     ###              #        ### ####              ###              ########                  ###      ###           ####              #   
          #    #                 # #                                                                    #####              # #   ##########                                                   ############                                    #                                        ##      ##                                                                               ##                 ###               #####       #####              ###      ###                ###            ####               #     ###                       ###  ####             ###              #### ####                 ###     ##            ####               #   
           #   #                 ##                                                                 ####                  #######                                                                         #########                           #                                     ###       #                                                                                 ##                 ###                ####       ####               ####     ###                ###            ###                #    ####                       ###   ###             ###              ###   ####                ###    ##             ###                #   
           #    #                ##                                                              ###               #######  ##                                                                                     #######                   ########                           ####        ##                                                                                 ##                  ###                 ####      ####               ####     ###                ###           ####               #     ######                     ###    ###            ###             ####    ####               ###   ##             ####               #    
            #    #               ##                                                          ####            ######         ##                                                                                            ######                     ########              #####          ##                                                                                   ##                  ###                 ####      ###                 ###     ###                ###           ###               ##     ##########                 ###    ####           ###             ###     ####               ###  ####            ###               ##    
             #    #              ##                                                       ###           #####               ##                                                                                                  #######                      ##############             ##                                                                                    ##                   ###                  ####     ###                 ###     ###                ###          #####################      #############             ###     ####          ###            ####      ####              ###  ######         #####################    
              #    #             #                                                    ####          ####                     #                                                                                                         ######                                       ####                                                                                      ##                   ###                  ####     ###                 ###     ###                ###          #####################       ###############          ###      ####         ###            ###        ####             ###   ######        #####################    
               #    #            #                                                  ##           ###                         #                                                                                                               ########                           ####                                                                                         ###                   ###                  ####     ###                 ###     ###                ###          ######             ##          ##############        ###       ####        ###           ####       #####             ###     ######      ######             ##    
                #    ##          #                                               ###         ####                            #                                                                                                                       ########              #####                                                                                             ###                   ###                   ###     ###                 ###     ###                ###          ####                #               ##########       ###        ####       ###           ###     #########            ###       #####     ####                #    
                 #     #         #                                            ###         ###                                #                                                                                                                               ##############                                                                                                  ####                  ###                   ###     ###                 ###     ###                ###          ####                #                  #######       ###         ####      ###          ###    #####   ####           ###        #####    ####                #    
                  #     ##                                                 ###        ####                                                                                                                                                                                                                                                                                   ####                  ###                   ###     ###                 ##      ###                ###          ####                 #                   ######      ###          ####     ###          ###  ####      ####           ###         #####   ####                 #   
                   ##     ###                                          ####         ##                                                                                                                                                                                                                                                                                       ####                  ####                  ###     ###                ###      ###                ###          #####                #                     ####      ###           ####    ###         ### ####         ####          ###          ####   #####                #   
                     ##      ##                                    ####          ###                                                                                                                                                                                                                                                                                         #####                 ####                  ##      ###                ###      ###                ###           ####                #     #               ####      ###            ####   ###         ######            ####         ###           ####   ####                #   
                       #       ###                             ####           ###                                                                                                                                                                                                                                                                                            #####                ######                ###      ###                ###      ###                ###           #####               #     #                ###      ###             ####  ###        #####               ####        ###           ####   #####               #   
                        ##        #######             #########            ###                                                                                                                                                                                                                                                                                                #####               #######               ##       ###                ##       ###                ###            #####              #     #                ###      ###              ###  ###       ####                 ####        ###            ###    #####              #   
                          ###            #############                 ####                                                                                                                                                                                                                                                                                                   #######            ### ######            ###       ###                ##       ###                ###            ######            ##    ##               ###       ###              #### ###       ##                    ####       ###            ###    ######            ##   
                             ##                                    ####                                                                                                                                                                                                                                                                                                        ########        ####   #######        ####        ###               ###       ###                ###             #######         ###    ###              ###       ###               #######      ###                     ####      ###            ##      #######         ###   
                               ###                             ####                                                                                                                                                                                                                                                                                                             #################      ################          ###               ##        ###                ###              #########    ######   ######        #####        ###                ######     ###                      #####     ###            ##       #########    ######  
                                  #######             #########                                                                                                                                                                                                                                                                                                                  ##############         #############            ###               ##        ####               ####               ############## ##  ##################          ####                #####    ###                        ######  #####           ##         ############## ##  
                                         #############                                                                                                                                                                                                                                                                                                                             #########              ########               ###              ###        ###                ###                   ########     #  ###    ########             ###                  ####    ##                        ##############           ##            ########     #  
                                                                                                                                                                                                                                                                                                                                                                                                                                ###               ##        ###                ###                                 #  #                          ###                    ###   ##                                     ###         ##                          #  
                                                                                                                                                                                                                                                                                                                                                                                                                                ##                ##        ##                 ##                                                                ##                     ##   ##                                         #        ##                             
                                                                                                                                                                                                                                                                                                                                                                                                                               ##                ###       ##                 ##                                                                ##                     ##   ##                                                  ##                              
                                                                                                                                                                                                                                                                                                                                                                                                                              ##                 ##        #                  #                                                                 #                      #   ##                                                   ##                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                 ##       #                  #                                                                 #                          ##                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                 ##                                                                                                                      ##                                                                                     
                                                                                                                                   #                                                                                                                                                                                                                                                                                                             ##                                                                                                                     ##                                                                                      
                                                                                                                                 ##                                                                                                                                                                                                                                                                                                               ##                                                                                                                   ##                                                                                       
                                                                                                                                ###                                                                                                                                                                                                                                                                                                               ##                                                                                                                   #                                                                                        
                                                                                                                                ##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                               # #                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                          #############       ##############                                                                   ###                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                        #############           ###########   ###                                                              ###                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                       ############             ##### ##    ### ###                                                            ## #                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                      ### #  ##### #             ######     ##### #                                                            ###                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                      # ##   #######             #######   ##### # #                                                           #####                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                     ####    ### ###             ##### #   ########                                                             ## ##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
                     ## #     #####               ### #    ##### ###                                                            #### #                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
                    ####     ##### #             ######     ### # #                                                              #####                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
                    # ##     ######              ##### #    #######                                                               ######                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                    ### #    ####  #             #### #       ###                     ###                   ####                   ### ##                   ####                         ###                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                    ####     ######              ######                #### #####   ## # #                 #### #                  ##### #                 ### ##         ##### ###    ######          ####                                                                                                                                                                                                                                                                                                                                                                                                                                                     
                    ## #     ### # #             ### ##  ### ## ## #    ########   ########               ########                ########                ###### #         # #######  ## # # #       #### ##                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                     ####    ######               #### # # #######         #### # ##### ## #            #### #### ##            ######### ##            ### ########          #### # ##########     ###### ##                                                                                                                                                                                                                                                                                                                                                                                                                                                   
                     ## #    ######              ######      ### ###       #################           ######  #### #          #### #  #### #          ######  #### #         ##### ######### #    ###########                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                     ### #   ### ##              #### #      ######        ############## ###         ### ##    ######        ######    ######        #### #    ## ###        ##################  ######### # #                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                      ###     #### #             #####       ##### #       #### ########### #         ####       ### #        ####       ### #        #####      ### #        ### ########### ## ###############                                                                                                                                                                                                                                                                                                                                                                                                                                                
                      ####   ######              ######      ### ###        ######### ###### #       ######      #### #      ### ##      ######      #### #      ######       ################# ##### ###########                                                                                                                                                                                                                                                                                                                                                                                                                                               
                      ## #   #####              ### ##        ### #        ### #####   #######      #### #        ######    ## ###        ### ##    ######        ######      #########   #############  ##### # #                                                                                                                                                                                                                                                                                                                                                                                                                                              
                      ###    ##### #            #### #       #######       ##### ##    ##### ##     ######        ### ##    ######        ######    #### #        ### #       ###### #    #### #### #      ########                                                                                                                                                                                                                                                                                                                                                                                                                                             
                       # #   #### #            ### ##        #######       ########     #######    ######          #### ## #### # #        #### #  ### ##          ######     ########     ##########       ##### #                                                                                                                                                                                                                                                                                                                                                                                                                                             
                       ##    ######           #######        ### ##        #### ##      ### ##     #### #           #####  #######         ######  #######         ## ####    ### ###      #########         ### ###                                                                                                                                                                                                                                                                                                                                                                                                                                            
                       ###   ### ###         ######          #####         ##### #       #### #    ### #           #####   #####  #        ##### # ##### #         #### #     ##### #       ###### #         #####                                                                                                                                                                                                                                                                                                                                                                                                                                              
                       ##    ######         ##### #          #######       #######       #######   ##### #         ### ##  ### ##          ### ##  #### #          #####      #######       #### ###          ##### #                                    ################                        ##################################                   ################               ################               ##########################################                    ###################            ################                   ###########################################               ################               ################   
                       ##    #####         #### #            ## # #        ## # #        #### ##   #### #          ####### #### ##          ####   ## ####          ## ##     ## ##          ######           #### ##                                    #              ##                     ##  #                            #  ###                #              ##              #              #               #                                       # ###                 #                 #           ##              #                ### #                                        #              ##              #             ###              #   
                      ##     ######       ### ##             #####         #####  #       #####    ## ###          #####   ## ###          ##### # ######          ##### #    #######         #####            ##### #                                  #                ##                    # #                                 # ##              #                #             #                #             #                                           ###               #                   #          #                #              #####                                          #            ##                #           ###                #  
                      #      ######      #######             #### ##       #### ##        #######  #####           ### ##  #####           ## # #  ### #           #####       ####          ##### #           #######                                  #                ###                  ###                                 # ## ##            #                ##            #                #             #                                          # ##               #                   #         ##                #            #### #                                           #           ###                #          ####                #  
                      ##     ### # #    ######               ######         #####         #### #    #####          #####    ######         ######  ######          #### #     ### ##         #### ##           #### ##                                  #                ####                 ## #                             #   #######           #                ##            #                #             #                                        #  ####              #                   #         ##                #           ######  #                                         #          ####                #        ######                #  
                     ##      ######   ##### #                ##### #       ##### #        #######  #### #          #### #  ####  #         ####    ##### #         ######     ######         ######             #####                                    #              ######                ### #                              #  # #####           #              ####            #              ##              #                                         #####              ##                 #         ####              #           ########                                          #          ######              #        ########              #   
                     ##      #### #  ########                ## ###        ## ###          #####   ## ## #         ######  ######          ### ##  ### #           ## ##      ##### #        #### #            #### ##                                   ######################               ##################################### #######           ###################            #################              ########################################### ###              ####################         ###################           ###### ############################################         ######################       ########################   
                     ##      ###### ###### # #               #### #        #### ##         ### ##  ######          ## ## # ### ##          #####   ######          #######    ### ##         #####             #######                                    ## # # # # # # ########             #### # # # # # # # # # # # # # # # # #########           # # # # # # # #####           # # # # # # # ####             ## # # # # # # # # # # # # # # # # # # # ######             #### # # # # # # # ##        ##### # # # # # # #           ######### # # # # # # # # # # # # # # # # # # # # #        ######## # # # # # # ##      ########### # # # # # ###    
                     #       ################                #####         ##### #         ######  #######         #####   ##### #         ### ##  #####           #### #     #####          ### # #           ######                                      ## # # # # # # ########            ### # # # # # # # # # # # # # # # # # # ######           ## # # # # # # ####            # # # # # # # ###             # # # # # # # # # # # # # # # # # # # # # # ###             ### # # # # # # # # #        #### # # # # # # ##           ###### # # # # # # # # # # # # # # # # # # # # # #        ######## # # # # # # ##      ######### # # # # # # ##      
                     #       ######## #########               ## ###       ### ##          ##### # #### #           ## ##  ######          ####### ### ##          #######    #### #         ######            ### ###                                       # # # # # # # ########           ## # # # # # # # # # # # # # # # # # # # ######           ## # # # # # # ####           ## # # # # # # ##              # # # # # # # # # # # # # # # # # # # # # ####             ## # # # # # # # # ##       #### # # # # # # ##           ###### # # # # # # # # # # # # # # # # # # # # # #        ######## # # # # # # #       ######### # # # # # # ##       
                    ##        #########  #### ##              #### #       ##### #         #### #  ## ##           ######  ### #           #####   ##### #         ######     ######         #### #            ##### #                                        # # # # # # # ########          # # # # # # # # # # # # # # # # # # # # # ######           ## # # # # # #####            ## # # # # # ###              ## # # # # # # # # # # # # # # # # # # # # ##              ### # # # # # # # # #       ##### # # # # # ##           ###### # # # # # # # # # # # # # # # # # # # # # #        ######## # # # # # # #      ########## # # # # # ###         
                    #        ###### #     ##### #            #####         ####            ######  ##### #         #### ##  #####          ## ###   #####          ### #      #######        ######           #######                                          # # # # # # # ########          # # # # # # # # # # # # # # # # # # # # # #####           # # # # # # # #####           # # # # # # # ##              # # # # # # # # # # # # # # # # # # # # # # #              ## # # # # # # # # # #     ##### # # # # # # #           ##### # # # # # # # # # # # # # # # # # # # # # #        ######## # # # # # # #      ########## # # # # # ##           
                    #        ########      ##### #           ######        ######          #####   #### #           ####    ### #           ### #  ### ##          ######     ### #          #####            ##### #                                           ### # # # # # ########         ## # # # # # # # # # # # # # # # # # # # # #####           # # # # # # # ####           ## # # # # # ####             ## # # # # # # # # # # # # # # # # # # # # ##             #### # # # # # # # # ##     #### # # # # # # #           ##### # # # # # # # # # # # # # # # # # # # # ###        ######## # # # # # ###      ########## # # # # # ##            
                             #######        ## ###           ### ##        ### ##          ######   #####           ## ##  ## ####         ######  #####           ### ##     ######         ######            ### ##                                             ## # # # # # ########         ## # # # # # # # # # # # # # # # # # # # # #####           # # # # # # # ####           ## # # # # # ###              ## # # # # # # # # # # # # # # # # # # # ##              ### # # # # # # # # # #    #### # # # # # # #           ##### # # # # # # # # # # # # # # # # # # # # ##         ######## # # # # # ##      ######### # # # # # # #              
                             #####          #### ##          ######        ##### #         #####   ### #           ######  #####           ######  #### #           ####      #####          ## ##            ######                                               ## # # # # # ########         ## # # # # # # # # # # # # # # # # # # # # ####            # # # # # # #####           # # # # # # # ##              # # # # # # # # # # # # # # # # # # # # # #              ## # # # # # # # # # ##    ##### # # # # # #            #### # # # # # # # # # # # # # # # # # # # # ##         ######## # # # # # ##      ######### # # # # # ###               
                             ### ##          ##### #         ####          ####            #### #  ######          #### #  ### ##          ## ##   ######          ######     #### #         #####            #####                                                 ## # # # # # ########         ## # # # # # ################# # # # # # # ####           ## # # # # # #####           # # # # # # ###              ## # # # # # ############### # # # # # # ##              ### # # # # # # # # # #   ##### # # # # # ##           #### # # # # # # ##############################         ######## # # # # # ##     ########## # # # # # ##                 
                              ######          ######         #######        ######         ## ##   ## ##           ### ##  ######           ### #  #####           #### #      #####         #### ##         ##### #                                                  # # # # # # ########         ## # # # # # #######         # # # # # # ######           ## # # # # # ####           ## # # # # # ###             # # # # # # # #             # # # # # # # #             ### # # # # # # # # # ##   #### # # # # # ##           ###### # # # # # #                                      ######## # # # # # #    #### ####### # # # # # ##                  
                              ## #            ## ####        ### ##        ### ##          #####   ### ##           ####   ######          ######  ### ##          ######     ### ##          #####          ### ##                                                    # # # # # # ########          # # # # # # #######        ## # # # # # #####            ## # # # # # ####          # # # # # # # ##              # # # # # # ################# # # # # # #              ## # # # # # # # # # # #  #### # # # # # ##            ##### # # # # # ##################                     ######## # # # # # ###### ########## # # # # # #                    
                             ######            #### #        #####         #####          ####     ######          ######  #### ##         #####   ######          ### #      #####           ## #           ######                                                     # # # # # # # ######          # # # # # # #######        ## # # # # # #####           # # # # # # # ###           # # # # # # ###              ## # # # # # #             # # # # # # ##              ### # # # # # # # # # ##  ### # # # # # # #           ##### # # # # # ##                #                    ###### # # # # # # #       # ## ## # # # # # ###                     
                             #### ##           ## ###        #### #        #### #         #####    ### #           ## ## # #####           ### ##  ##### #         ######     #####          ######          ####                                                        ### # # # # # ######          # # # # # # #######        ## # # # # # #####           # # # # # # #####          ## # # # # # ##              # # # # # # ##             ## # # # # # #              ## # # # # # # # # # # # ##### # # # # # #           ##### # # # # # ##                 #                   ###### # # # # # ###       # # ### # # # # # ##                       
                             #######           #####         ######         #####         ### #    ######          ######  ### ##          ######  ######          #### #     ######         ######          #####                                                         ## # # # # # ######          # # # # # # ######         ## # # # # # ####            # # # # # # ####          # # # # # # ###              ## # # # # # ##           ## # # # # # ##              ### # # # # # # # # # ## #### # # # # # #            #### # # # # # ##                  #                  ###### # # # # # ##          ##### # # # # # #                         
                             #####             #######       #####         #####          #####     #### #        #### ##   ######        #####     ### ##        ######      #### #         #####          #### #                                     ##############       ## # # # # # #######         # # # # # # ######         ## # # # # # ####           ## # # # # # ####          # # # # # # ###              ## # # # # # ############# # # # # # ##              ### # # # # # # # # # # ##### # # # # # ##           #### # # # # # ######################                 ###### # # # # # # ############# # # # # # ###                          
                             ######            #### #         #####        ######         #####     #####         ######    #### #        ######    ######        #### #      #####          #### #         #####                                     #              ##      ## # # # # # #######         ### # # # # ######         ## # # # # ######           ## # # # # # ####         ## # # # # # ##              # # # # # # # # # # # # # # # # # # # #              ## # # # # # # # # # # # ### # # # # # ##           ###### # # # # # # # # # # # # # # ##                  ##### # # # # # # # # # # # # # # # # # # ##                            
                             ### ##             ######       ### # #       ### # #        ####       ### ##      ########    ######      ### ##      ### ##      ### ##       ### ##         #####          ###                                       #              ###      ## # # # # # #######          ## # # # # ######         ## # # # # #####            ## # # # # #####          ## # # # # ###              ## # # # # # # # # # # # # # # # # # ##              ### # # # # # # # # # # ##### # # # # ##            ##### # # # # # # # # # # # # # # ##                  ##### # # # # # # # # # # # # # # # # # # ##                             
                             ##### #            #### #       #####         #####         ####         #####      ####### #    ####       #####        #####      #####        ######          ####          #####                                     #              ####       # # # # # # #######          ## # # # # ######        # # # # # # #####            ## # # # # ######        # # # # # # ##              # # # # # # # # # # # # # # # # # # # #              ## # # # # ### # # # # # ### # # # # ##            ##### # # # # # # # # # # # # # # ##                   #### # # # # # # # # # # # # # # # # # # #                               
                             ######             ### ###      ### ##        ### ##        #####        #### #    ###### ###    ### ##    #### #        #### #    ### ##        ####           #### #        ## ##                                       ####################      # # # # # # #######          ## # # # # ######        # # # # # # #####           # # # # # # #### ########## # # # # ###               # # # # # # # # # # # # # # # # # # #               ### # # # # # # # # # # ### # # # # # #           ##### # # # # # # # # # # # # # # #                     ### # # # # # # # # # # # # # # # # # ###                                
                             ######             ##### #      ######        ######        ## #          ######  #### #### #     ######  ######          ######  ######         #####          ######        ### #                                         ## # # # # ########      ### # # # # #######          ## # # # # ######        # # # # # # ####            # # # # # # # ## #       ## # # # # ###              ## # # # # # # # # # # # # # # # # ##              ### # # # # ### # # # # # # # # # # # #            #### # # # # # ###################                      ## # # # # # # # # # # # # # # # # # ##                                  
                             #### #             ######       #### #        #### #        ###            #### #### #########     ### ###### #            ########## #          ######         #####         ####                                           ## # # # # # ######       ## # # # # #######          ## # # # # ######        # # # # # # ####            # # # # # # ## #        # # # # # # ##              # # # # # # # # # # # # # # # # # ##               ## # # # # # ### # # # # ### # # # # #            #### # # # # # #                                          ## # # # # # # # # # # # # # # # ###                                    
                             ### #               #######     ######        ######       #####             ##### ##  ##### #       ##### ##                ## #####            #####          ######        ## #                                             ### # # # # ########     ## # # # # #######          ## # # # # ######        # # # # # # ####           ## # # # # # ###        ## # # # # ###              ## # # # # # # # # # # # # # # ###                 ### # # # # # # # # # # # # # # # # ##           #### # # # # # #                                            ## # # # # # # # # # # # # # ####                                      
                             ######             ##### # ##  ###### #      ########      ## #               ######   ########       ######                  ######            #### ###       #######        ###                                                ## # # # # ##### ######### # # # # #######           # # # # # ############### # # # # #####            ## # # # # # # ########### # # # # ###              ## # # # # ########### # # # # ###                ## # # # # ## ## # # # # # # # # # ##            ##### # # # # #####################                          ###### # # # # # # #########                                          
                             ######            ######################    ##########     ####                ## #     ######         ####                    ####           ###########     #########      ####                                                 ## # # # # ###### #     ## # # # # #######           # # # # # #####        ## # # # # #####            ## # # # # # # # # # # # # # # # # ##              # # # # # ##         ## # # # # # #              ## # # # # # # # # # # # # # # # # ##            ##### # # # # ##                   #                           #### # # # # # # ##                                                  
                             ##### #         #####            #############      ####  ####                          ##### ##                                             #######   ###   ###      ##     ###                                                    # # # # # #### #        # # # # # #######           # # # # # ####         ## # # # # #####           # # # # # # # # # # # # # # # # # ###              ## # # # # #          ## # # # # ##              ### # # # # #  ## # # # # # # # # # #           ##### # # # # ##                    #                         ##### # # # # # # ##                                                   
                             ######                                 ####            ## ####                           #######                                            ###          #                   ####                                                    ### # # # # ###         # # # # # #######           # # # # # ###          ## # # # # ####            # # # # # # # # # # # # # # # # # ##              # # # # # ##           ## # # # # #              ## # # # # ##  # # # # # # # # # # #            #### # # # # ##                     #                        ##### # # # # # # ##                                                    
                             #### #                                                    ## #                           ###### #                                                                            # #                                                       ## # # # # # ########### # # # # #######           # # # # # ############### # # # # ####            # # # # # # # # # # # # # # # # ###               # # # # # #           # # # # # #               ### # # # # #  ## # # # # # # # # #            #### # # # # #########################                       ##### # # # # # # #                                                      
                              #####                                                    ###                             #### ###                                                                           ####                                                       ## # # # # # # # # # # # # # # # # #####           # # # # # # # # # # # # # # # # # ####            # # # # # # # # # # # # # # # # ##               ## # # # ##           ## # # # ##               ## # # # # #    ## # # # # # # # #            #### # # # # # # # # # # # # # # # # #                       ##### # # # # # ###                                                       
                             ### ##                                                   ####                             ##### # #                                                                          ###                                                          ### # # # # # # # # # # # # # # # ######          ### # # # # # # # # # # # # # # #####            ## # # # # # # # # # # # # # # # ##              # # # # # #           # # # # # #              ## # # # # ##    # # # # # # # # ##            ##### # # # # # # # # # # # # # # ###                       ##### # # # # # ##                                                         
                             #####                                                    ###                               ##### ##                                                                         ####                                                            ## # # # # # # # # # # # # # # # ######           ## # # # # # # # # # # # # # # #####            ## # # # # # # # # # # # # # # ###              ## # # # # #         # # # # # ##              ### # # # ##     ## # # # # # # ##            ##### # # # # # # # # # # # # # # ##                       ###### # # # # # ##                                                          
                             #####                                                    ## #                               # ####                                                                          ## #                                                             ## # # # # # # # # # # # # # # # ######           ## # # # # # # # # # # # # # # #####            #  # # # # # # # # # # # # # # ##              # # # # # ##         ## # # # ##               ## # # # # #     # # # # # # # # #           ##### # # # # # # # # # # # # # # ##                       ###### # # # # # ##                                                           
                             ######                                                   ####                               #####                                                                           ###                                                                # # # # # # # # # # # # # # # # ######           ## # # # # # # # # # # # # # # ####            # # # # # # # # # # # # # # # ###               # # # # # #         # # # # # #               ### # # # ##     ## # # # # # # #            #### # # # # # # # # # # # # # # ##                       #### # # # # # ###                                                             
                             ### ##                                                  ####                               ### ##                                                                           ####                                                                ### # # # # # # # # # # # # # # ######           ## # # # # # # # # # # # # # # ####            # # # # # # # # # # # # # # # ###              ## # # # ##         ## # # # ##              ### # # # ##      # # # # # # # #            #### # # # # # # # # # # # # # # ##                       #### # # # # # ##                                                               
                             ######                                                  ###                               ## ##                                                                             ####                                                                  #                              ######           #                              ####            #                             ##              #         #         #         #              ##         #      ##           #            ####                              #                      #####            #                                                                
                             #####        #                                          ## #        #### ##              #### #                                                                             ##                                                                     ## # # # # # # # # # # # # # # ######           ## # # # # # # # # # # # # # # ###            ## # # # # # # # # # # # # # ###              ## # # # ##         ## # # # ##              ### # # # ##      ### # # # # ##            ### # # # # # # # # # # # # # # ##                      ##### # # # # # ##                                                                 
                             ## ###    ###                      ###                  #####      ######### ##        # ### #                                                                              ###                                                                      # # # # # # # # # # # # # # # ######            # # # # # # # # # # # # # # #####            ## # # # # # # # # # # # # # ##               ## # # # #         # # # # ##               ## # # # ##       ## # # # # ##            ##### # # # # # # # # # # # # # #                       ##### # # # # # #                                                                   
                             ######  ####                     ### #                  ### ##      ###  ######## #  ##### ##                                                                               # #                                                                       ### # # # # # # # # # # # # # ######            # # # # # # # # # # # # # #  ####            ## # # # # # # # # # # # # # #               # # # # ##         ## # # # #               # # # # # #       ### # # # ##            ##### # # # # # # # # # # # # # #                       ##### # # # # ###                                                                    
                             ### #######                     ##### #                 #### #               ##############                                                                                 ###                                                                         ##                            #####            #                            ###            #                            ##              #        #         #        #              ##        #       ###         #            ###                            #                      #####           #                                                                      
                             ##### ###                     #########                  ####                    ####### ##                                                         #                       ####                                                                          # # # # # # # # # # # # # # ######            # # # # # # # # # # # # # # ####            # # # # # # # # # # # # # # ##              # # # # ##         ## # # # #              ## # # # ##       #### # # # #            #### # # # # # # # # # # # # # #                      ###### # # # # ##                                                                       
                             #### ###                     ####### ###                                            #####                                                          ##                       ## ##                                                                          ### # # # # # # # # # # # # ######            # # # # # # # # # # # # # # ####            # # # # # # # # # # # # # ###               # # # # #         # # # # #               ### # # # #      #### # # # #            #### # # # # # # # # # # # # # #                      #### # # # # # #                                                                         
                             ########                   ############                                                                                                          ##                          ### #                                                                           #                           #####            ##                          ###             #                          #               #       #         #       #               #        #       ###       #             ###                          ##                      ####          ##                                                                          
                             ## ####                   ######## #### #                                                                                      ##              #####                         #####                                                                            ## # # # # # # # # # # # # ######             ## # # # # # # # # # # # # ###            ## # # # # # # # # # # # # ##              # # # # ##       ## # # # #              ## # # # ##      ### # # # ##            ### # # # # # # # # # # # # ##                       #### # # # # ##                                                                            
                             ######                  ###### #   #####                                                                                      ## # #         ##### #                          ###                                                                               # # # # # # # # # # # # # # #####            ## # # # # # # # # # # # #####            ## # # # # # # # # # # # ###              ## # # # #       # # # # ##              ### # # ##       #### # # ##            ##### # # # # # # # # # # # ##                      ##### # # # # ##                                                                             
                             ######                 #### ###     ### ##              ####                         ###                                     ##########   #########                                                                                                              ##                          #####            #                         ###             #                        ##               #       #       #       #               ##       #      ###       #             ###                         #                      ####          #                                                                               
                             #####                #### ###       ######             #### #         ## ##### #   #### #          ###                      ######## ########## ##                                                                                                                 ## # # # # # # # # # # # # #####            ## # # # # # # # # # # # ####            # # # # # # # # # # # # ###               # # # # #       # # # # #               ### # # ##      ### # # # #            #### # # # # # # # # # # # ##                      ##### # # # # #                                                                                
                             ####                ########         #### #           ########         ##### ###  #### ###       ### ##                   ####################  # #                                                                                                                  #                         #####            #                        ####            #                        #               #       #       #       #               #       #      ###       #            ####                        #                      ####         ##                                                                                 
                             ####              ##### ##            ######        ######### ##          #####  ######## #     ###### #                 #### ## ###########    ##                                                                                                                    ### # # # # # # # # # # # #####            ## # # # # # # # # # # # ###             # # # # # # # # # # # # ##              # # # # #       # # # # #              ## # # # #      ## # # # #             ### # # # # # # # # # # # ##                     #### # # # # ##                                                                                   
                             ###               #######              ### #       ######  #### #         ############## ##    ######## #               ### ##         ###       #                                                                                                                      #                        #####            ##                       ###            #                       ##               #      #       #      #               ##       #     ###       #            ###                       ##                     ####         ##                                                                                    
                             ##               #### # #                ####     #### #    ######        ### ############ #  ####### ####             #####                     #                                                                                                                       ##                       #####             #                       ###            #                      ##               #      #       #      #               ##      #      ##       #            ###                       #                      ####         #                                                                                      
                            ###               ##### #                  ####    ### #      ## #          ######## ##### ## ########### #            #####                     #                                                                                                                          # # # # # # # # # # # # #####             # # # # # # # # # # # ####             ## # # # # # # # # # # #               # # # ##       ## # # #               # # # # #     ### # # ##             #### # # # # # # # # # # #                      #### # # # ###                                                                                       
                            ##                #######                    #    ######      ######       ####### ############### #########           ### #                     #                                                                                                                           ##                       ####             #                      ###             #                     #               #      #       #      #               #      #      ##      #             ###                      #                      ###         #                                                                                         
                            ##                ### # #                        #####         ### ##      #########   ##### ####### ###### #          #####                     #                                                                                                                             #                       ####             #                      ###            #                     ##               #     #       #     #               ##      #     ###      #            ###                      #                     ####        ##                                                                                          
                            #                 #### #                         ######        ######      ########    ###########    #### #           ####                      #                                                                                                                              ##                      ####             #                     ###             #                    ##               #     #       #     #               ##      #     ##      #             ###                     #                     ####        #                                                                                            
                            #                 ######                        ######          #### #     ###### #     ######## #     #######         ## ###                    #                                                                                                                                ### # # # # # # # # # #####             ### # # # # # # # # # ###             # # # # # # # # # # ##               ## # # #     # # # ##               ## # # #     ### # # #             ### # # # # # # # # # ###                     ### # # # # #                                                                                             
                            #                 ### # #                       #### #          ######     ### ###      #########      ####  #        ######                    ##                                                                                                                                  #                     ####              #                    ###            #                    #               #      #     #      #               #      #     ##      #            ###                    #                      ###        ##                                                                                              
                           #                   #####                        ##### #         #####      #######       #######        #######       ##### #               #### #                                                                                                                                   ##                    ####              #                    ##             #                   ##               #     #     #     #               ##      #    ##      #             ##                    #                     ####        #                                                                                                
                           #                  #####                          #####          ### ##     ##### #       #### ###       #####         ### ####### ##### #########                                                                                                                                      #                    ####              #                   ###             #                  ##               #     #     #     #               ##     #     ##     #             ###                   #                     ####       ##                                                                                                 
                           #                  ### ##                         ###  #         ##### #    ###### #       ######         ##### #      ######################### ##                                                                                                                                      ##                    ####             #                   ###            #                  ##               #     #     #     #               ##     #    ##      #            ###                   #                     ###        #                                                                                                   
                                              #### ##                         ####          ######     #####          ##### #        #### ##      ######## ################# #                                                                                                                                        ## # # # # # # # # # ####             ## # # # # # # # # ###             # # # # # # # # # ##               ## # ##     ## # ##               ## # ##     ## # # #             ### # # # # # # # # ##                     #### # # ###                                                                                                    
                                              ## ##                          ## ##          #### #     ### ###        #### #          #######     #### ######### ##     #####                                                                                                                                          ##                   ####             #                  ###             #                 #                #    #     #    #                #     #    ##     #             ###                  #                     ###       #                                                                                                      
                                              ######                        #####            #####     #####          ##### #         ##### #     ##### ##                ###                                                                                                                                            #                   ####             ##                 ###             #                ##               #    #     #    #               ##     #    ##    #             ###                 ##                    ####      ##                                                                                                       
                                              #####                         ######          ##### #    ######         ### ##          #######     ### ##                  ##                                                                                                                                              ##                  ####              #                 ##             #                ##               #    #     #    #               ##    #    ##     #             ##                 #                     ###       #                                                                                                         
                                              ### # #                        ### #          ### #      ### ##          #####           ## ## #    ##### #                  ##                                                                                                                                               ##                 ####              #                ###             #                #               #    #     #    #               #     #    ##    #             ###                #                     ###       #                                                                                                          
                                              ######                        #####           ######     ##### #        #####            #### ##    #### #                   ##                                                                                                                                                 #                 ####              #                ###             #               #               #    #     #    #               #    #    ##    #             ###                #                     ###      ##                                                                                                           
                                              #####                         ######          ######     ######         #######          ######    #### ##                   ##                                                                                                                                                  ##                ####              #                ##             #               ##               #   #     #   #               ##    #   ###    #             ##                #                    ####      #                                                                                                             
                                              ### ##                        ### #           ### #      ### ##         ### ##           ##### #   ######                     #                                                                                                                                                    ## # # # # # # # ####              # # # # # # # # ###             # # # # # # # ###               # # ##   ## # #               ### # #   ### # #             ### # # # # # # # #                    #### # # ##                                                                                                              
                                              ##### #                       #####           ######     ##### #        ##### #          ### ###   #######                    #                                                                                                                                                     ##                ###              ##              ###             #              #               #    #   #    #               #    #   ##    #             ###              ##                    ###      #                                                                                                                
                                              #### #                        ## ###          #####      ## ##          ######           ######    ##### #                    #                                                                                                                                                       #                ###               #              ##             #              #               #    #   #    #               #    #   ##    #             ##              #                     ###     ##                                                                                                                 
                                              # ###                         #####            ## ##     ######          ## #            #### ##   #######                    #                                                                                                                                                        ##               ###               #              ##             #             #                #   #   #   #                #    #  ##    #             ##              #                    ###      #                                                                                                                   
                                              ######                        #### #          ######     ### #          #### #           ######    ### ####                   #                                                                                                                                                          ##              ###               #             ###             #            ##               #   #   #   #               ##   #   ##   #             ###             #                    ###     ##                                                                                                                    
                                              ### ##                        #####           ##### #     #####         #####           #### #     ######                     #                                                                                                                                                            #              ###               #             ##             #            ##               #   #   #   #               ##   #  ##    #             ##             #                    ###     #                                                                                                                      
                                              #######                       #### #           #####     ######         ## ###          #######     #######                    #                                                                                                                                                            ##             ####              #             ##             #            #               #   #   #   #               #   #   ##   #             ##             #                    ###    ##                                                                                                                       
                                              #### #                        ######          #### #     ### # #        ##### #         ### ###     #### # #                   #                                                                                                                                                              #             ####              ##            ##             #           #                #  #   #  #                #   #  ##   #             ##            ##                    ##     #                                                                                                                         
                                               #### #                       ## ##           #####       #####         #### #          ######      ########                   #                                                                                                                                                               ##             ###               #           ##              #          ##               #  #   #  #               ##   #  ##  #              ##           #                    ###     #                                                                                                                          
                                               ######                       ######          ######      ## ##         #####           #### #       #### # #                  #                                                                                                                                                                 #             ###               #           ##             #          ##               #  #   #  #               ##  #  ##   #             ##           #                    ###    ##                                                                                                                           
                                              ### ###                   ##   ####           #####      #####          ## ###          ## ##        #######                   #                                                                                                                                                                  ### # # # # # ###               # # # # # # ##             ## # # # # #               # ##   ## #               # # #  ## ##             ## # # # # # #                    #### # #                                                                                                                             
                                              ######                   # #   ## ##          ### ##     #### #         ######         #####         ##### ##                  #                                                                                                                                                                    #            ###               #          ##              #         #                # #   # #                #  #  ##  #              ##          #                    ##    ##                                                                                                                              
                                              #### ##                 ###    #### #        ## ###      #####           ###           ######         ###### #                 #                                                                                                                                                                     ##           ###               #          ##             #         #                #  # #  #                #  #  #   #             ##          #                   ###    #                                                                                                                                
                                              ######                ## ##     #####        ######      ######          #####         ### #          #### ##                  ##                                                                                                                                                                      ##          ###               #          ##             #        ##               #  # #  #               ##  # ##  #             ##          #                   ###   ##                                                                                                                                 
                                              #######              #####      ## # #      #### #       ## ##          #####          ## ##           #######                # #                                                                                                                                                                        #          ###               ##        ##              #        #               #  # #  #               #  #  #  #              ##        ##                   ##    #                                                                                                                                   
                                              ### ###             ### ###      #####      ### #        #### #         #### #         #####           #### ####          ## ####                                                                                                                                                                         ##          ##                #        ##             #        #                # # # #                #  # ##  #             ##        #                    ##   ##                                                                                                                                    
                                              #####               ##### #      #### #    ######        #####          ### ##        #####            ####### ## ## ### ###### #                                                                                                                                                                           #          ##                #        ##             #       #                # # # #                #  # #  #             ##        #                    ##   #                                                                                                                                      
                                              #######             #### ##       ######  #### #         ######         #####         ####              ########### ## ######### #                                                                                                                                                                           ##         ##                #        #              #      #                # # # #                # # ## #              #        #                   ###   #                                                                                                                                       
                                               #####              ######         ### ##### ##          ### ##         ######        ### #             ###### # #################                                                                                                                                                                             #         ##                #       ##              #      #               # # # #               #  # # #              ##       #                   ##   ##                                                                                                                                        
                                              ### # #             #### ##          ########            ######         ### ##        ## #                ###################   ##                                                                                                                                                                              ##        ##                #       ##             #      #                ## ##                # # ## #             ##       #                   ##   #                                                                                                                                          
                                              ######               #####            ######            ###### #        ######        ####                   ###########         ##                                                                                                                                                                               ##       ###               ##      #              #     #                ## ##                # # # #              #      ##                   ##  ##                                                                                                                                           
                                              #######              #### #            ####            ##########      ########      #####                      ####              #                                                                                                                                                                                 #       ###                #     ##              #    #                ## ##                # ####              ##     #                   ###  #                                                                                                                                             
                                              ##### #              ######                                   ####    ##     ###     ## #                                         #                                                                                                                                                                                  ##      ###                #     ##             #    ##               ## ##               ### # #             ##     #                   ##  ##                                                                                                                                              
                                               #######            ### ##                                                     ##    ####                                        ##                                                                                                                                                                                    #       ##                #     #              #    #                # #                # ## #              #     #                   ##  #                                                                                                                                                
                                               ##### #            #### #                                                           ##                                         ###                                                                                                                                                                                     ##      ##                #     #              #   #                ###                ## ##              #     #                   ## ##                                                                                                                                                 
                                                #####            ### ##                                                            ####                                      ###                                                                                                                                                                                        #      ##                #    ##             #   #                ###                ### #             ##    #                   #  #                                                                                                                                                   
                                                 ######         ######                                                             ###                                                                                                                                                                                                                                   ##     ##                ##   #              #  #                ###                ####              #   ##                  ##  #                                                                                                                                                    
                                                  ### ##      #### ##                                                             ## #                                                                                                                                                                                                                                     #     ##                 #   #              #  #                #                ####              #   #                   ## ##                                                                                                                                                     
                                                   #######   #######                                                              ###                                                                                                                                                                                                                                       ##    ##                 #   #              # #                #                ###              ##  #                   ## #                                                                                                                                                       
                                                    ### ### ##### #                                                               ####                                                                                                                                                                                                                                        ##   ##                 #  #              # #                #                ###              #  #                   # ##                                                                                                                                                        
                                                     ########## ##                                                                ## #                                                                                                                                                                                                                                          #   ##                 #  #              ##                #                ##              #  #                  ## #                                                                                                                                                          
                                                       ###### ##                                                                  ####                                                                                                                                                                                                                                           ##  ##                 #  #              ##                               ##              ## #                  ####                                                                                                                                                           
                                                        #######                                                                   ##                                                                                                                                                                                                                                               #  ##                 # #              ##                               ##              # #                  ###                                                                                                                                                             
                                                         ### #                                                                    ###                                                                                                                                                                                                                                               ## ##                 ###              #                               #              ###                  ###                                                                                                                                                              
                                                          ###                                                                     # #                                                                                                                                                                                                                                                 #  ##                 ##                                                           ##                  ###                                                                                                                                                                
                                                                                                                                  ###                                                                                                                                                                                                                                                  ## ##                 #                                                           #                  ###                                                                                                                                                                 
                                                                                                                                  ####                                                                                                                                                                                                                                                   # ##                 #                                                         #                  ##                                                                                                                                                                   
                                                                                                                                  ## ##                                                                                                                                                                                                                                                   ####                                                                                            ##                                                                                                                                                                    
                                                                                                                                   ### #                                                                                                                                                                                                                                                    ###                                                                                          ##                                                                                                                                                                     
                                                                                                                                   #####                                                                                                                                                                                                                                                      ##                                                                                       ##                                                                                                                                                                       
                                                                                                                                    ###                                                                                                                                                                                                                                                        ##                                                                                     ##                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                ##                                                                                   #                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
