d888888o.  `8.`888b                 ,8' 8 888888888o     d888888o.
 .`8888:' `88. `8.`888b               ,8'  8 8888    `88. .`8888:' `88.
 8.`8888.   Y8  `8.`888b             ,8'   8 8888     `88 8.`8888.   Y8
 `8.`8888.       `8.`888b     .b    ,8'    8 8888     ,88 `8.`8888.
  `8.`8888.       `8.`888b    88b  ,8'     8 8888.   ,88'  `8.`8888.
   `8.`8888.       `8.`888b .`888b,8'      8 888888888P'    `8.`8888.
    `8.`8888.       `8.`888b8.`8888'       8 8888            `8.`8888.
8b   `8.`8888.       `8.`888`8.`88'        8 8888        8b   `8.`8888.
`8b.  ;8.`8888        `8.`8' `8,`'         8 8888        `8b.  ;8.`8888
 `Y8888P ,88P'         `8.`   `8'          8 8888         `Y8888P ,88P'
                                                               
 

 



##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
###############################################################################X ##M##########################################################################################################
#############################################################################       .M########################################################################################################
##########################################################################;+          =#######################################################################################################
#########################################################################.             X################################XX++XM################################################################
########################################################################M               ##############################;.       =X#############################################################
########################################################################M               X###########################M            =M###########################################################
########################################################################;        .      =###########################=              X##########################################################
##############################################MMMMM####################=    =MMX##      .###########################.               ##########################################################
##############################################     ;###################;   ;######M      ##########################M                X#########################################################
############################################M       .##################.   ;#######;     X#########################X                +#########################################################
############################################X        M#################.   ;#######X     ;#########################+      ;##+      =##################+==+X##################################
###########################################..        ;#################;    #######X     .#########################=     =####.     =###############M.       ;################################
##########################################            X################=    X######X      M########################+     M####=     +###############           M##############################
#########################################.            ;M###############X    .######X      X########################+    .#####;     X#############M            X##############################
########################################+              M################.    +#####X      =M#######################X    .####M      X#############=      .      ##############################
########################################=              M################+     +####X       ;.+#####################M    ;####+      X#############=      M=     X#############################
########################################;              X#################.     =+X#=           M####################    .####;      M#############=     ;##;    .#############################
########################################.              X#################M        =            X####################;    M###.      M#############=     ;##M     X############################
#######################################M     .+        X##################X                     ;###################=    ;###.      ##############=     ;###;     ############################
#######################################;     ;#X       M###################M=            ;=;     =M#################M     .XX       =+XM##########+     .###X     =###########################
#######################################X     =##;      ######################M         .M##;       .#################                    ;X#######+      X##X      +##########################
########################################;    =##;     X#######################.       ;####+        =################;                     +######M      =##M       ##########################
#########################################;   +##;    ########################M       ;#####M         ##############X                        +######       ##M        #########################
#########################################X   +..    ;=;.;###################M       =#######;        ;############.                         .######;      X#X        =########################
##########################################   ;            #################.        =########.        ;##########=    =X+;                   M#####X      =#+         +#######################
##########################################.  =     ;      .###############          X#########;        +########M     M###       ;.;M+       ;######.     ;#;          X######################
##########################################.       ;X       M#############+          ###########=        ########.    .M####=;  .=X####M;     .######+      ;            M#####################
##########################################.     =##X       +#############;         ;############;       =#######     X######MXM########+      M######.                  ######################
###########################################M=;+####X       .#############.         =############X        M######    .###################      +######M                  M#####################
##########################################M.#######X        M############          =#############.       X######.   ;###################=     =#######X                 +#####################
#########################################=  M######X         M##########M         .M#############+       =######.   =###################M;    ;########                 ;#####################
########################################    +#######.        .##########M         M###############.      .######.   X####################=    .######X                   M####################
#######################################.  .#########=         ;#########M        +#################+      ######    M####################X    .#####+                    ;####################
######################################M    M#########          +########M        ##################M      M####M    M#################M##M     M####                      X###################
######################################.    +##########=        .########M       ;#############; ;###      #####;    M################=  .#     X###;                      .###################
#####################################M     =##########;         M#######M       =#############   .##.     M####=    ################M    +     ;###                        ;##################
#####################################=     +##########;         X#######X       X############M    ##;     M####;   ;M;=##############     .     X##.                        +#################
#####################################      M##########.         +#######;       M############M    X#;     X###X    =    M############;    ;      +#;                         X################
##################################=;       ###########.         +#######.       ##############    +#;     X##X    .;    ;############+    X      X#=                          =###############
################################M         =###########.         +#######.      .##############.   +#=     +##M    =.    .############+    =;     +#+                           ;##############
################################X         M###########          ;#######.      ;##############.   =#+     +##M    X.    .############+     ;     X#M                            ;#############
#################################;       ;############    ;;   ;+#######.      =##############;   =#+     +###.   M      ###########M;          M###          +                  X############
##################################       X############    ;+   +########.      X##############=   ;#+     =###.   #      M##########M           X###;         X.                  ############
###################################      X############.   +M   =########.      M##############M   ;#+     =###;   #      M##########M;          M###=         +X                  +###########
###################################      +############.   XM   .########.      ################   ;#+     =###=   M      M###########+          X###X         ;#;                 .###########
###################################      X############.   M#.   +#######.     .################.  ;#X     ;###=   M      M###########=          X####          +#+                 M##########
###################################      X############;   ##M   =#######.     ;################;  ;#X     ;###+   X      M###########=          ;####;          ;MM=.              =##########
##################################M      M############;   ##M   ;#######.     ;################;  ;#X     ;###X   =      M###########+          =####+                             ;##########
##################################M      M############.   M+;    #######;     ;################=  .#X     ;###X   ;      M###########M          =#####                              ##########
##################################X     .#############   ;#      #######;     ;################+   MX     .###M          ############M          =#####+                             M#########
##################################+     .############M   =;      X######;     ;################M   ++     .###M         .#############.         =#####M                   .=;;.     M#########
##################################=     ;############M   =#=     =######;      #################.  .+     .###M         .##############   .;    X######X                   M###.    M#########
##################################;     +############.   =##.    ;######;      M################;  ..     .###M          M#####MX++XMM    +;   X########X                   M##=   .##########
##################################;     X###########;    ;##+     ######;      =################M         ;###M          ;###X.      =    X   .###########                  .##+   .##########
##################################;     M########MXX.    =###     X#####;      =#################.        ;###M           =X;             ;   .###########+                  ;M;   ;##########
##################################;     M######;         .+##     ;#####;      X#################;        ;###X                           .   ;############+;              +;      ###########
##################################M     ######             ##;     #####;      ##################=        +###;                               ;############     ...        +#.     M##########
###################################;    ###MM+             ;#M     X####;     .##################X        M###                                ;###########M                =#M;    ;##########
###################################+    ###;               =##;    ;####       M#################X       +####.                               .###########M                        =##########
###################################X    ;                  =##X     ###.        ;################X       X####=              ...              .###########=                        M##########
###################################M                       ;###     +##+         +######+;;;=M###+       M####X;        +XXXMM##=             .##########M                      ;=M###########
####################################                       ;###;    .##M          M####=      +##=       #######.      ;#########.           .###########=    ;......;         M##############
####################################.                       ###=     X#+            ;          ;M       .#######;      ;#########.         .  ##########X   .+M######MX+;     ;###############
####################################.                       M##X     M=                                 =#######       ;#########.        =X  X#########=   #############M    =###############
####################################;                       +##M     #=                                 M######        .#########;;       ++  +#########.  M###############   +###############
####################################;                       ;###     #=                               .M######+        .############.     +   =#########  ;################;  X###############
####################################;                        M##=    X+                              +########=        .############;     .   +########M  M################;  X###############
###################################M                         +##M    ;+     ;X                 ++    X#######;         .############=         M########X  #################=  X###############
###################################=                          ###           =X        ;        ;M    X######=          ;############X        =#########+ .#################=  X###############
################MMX###############M                           X##;          XX       .=        =+    X######=          +############X        ##########= ;#################=  X###############
#############M=.;   .###########XX                            ;##=          MX       ;         =     M#######;..;      #############X       ;##########; ;#################;  +###############
#############       ;###########                               ##+          #X       .               M##########;      #############X       =##########. =#########MMM#####;  =###############
############+       ;#########X       M                        X#+         .#+                       M##########;      #############X       +#########M  +######X;.    ;###+  ;###############
############;       ;#########.      ;X                        +#X         =#=                       M##########=      #############+       +#########=  X#####=         ;M#X  ###############
############.        ########M       M=          .             .#M         M#;                       M##########+      +############+       +#########.  =##;              +#+ M##############
############    ++   M######XM      .#;          .;             MM        .##;                       M##########X      =############;       .########M    X=                .  M##############
###########M   =##X  M###### ;      =#.                         X#.       =##.                       M###########.     ;############M        M######                      X;   X##############
###########X   X##M  M#####.        +M                          +#.X=    .##M                        M###########+     ;#############=.      X######                      +=   ###############
###########+   X##X  M###+      .;  M+            X             =####X   ###X                       =#############     ;###############;     +######+                     ;+  X###############
###########+   X##;  +###       ;X=.M;            M.            =#####X=####=                       X#############;    ;###############+     =######M     =+;                =################
###########=   =##=  .##=    .   M###;            M;            =###########;                  ;    ##############;    .##############M      =########=..M##M               ;#################
###########=    M#+  .#M     #   M##M             M;            +###########.                  ;    M#############=     ##############       +##############X               ##################
###########=    +M;  .#.    =   ;###+             X=            X##########M                   .    M#############+     M############M       X##############X               ##################
###########=         .X    .;   +###.             +=            ###########X                  ..    M#############+     ;############M       M##############X                #################
###########+          .   ;+   .###M              ;+           .###########=                  ;.    M#############=     .#############       ###############+                X################
###########X             ##    ;###.              .+           ;###########.                  M.    ##############;      #############       M##############=                =################
###########M           .+;     X##M                +           =##########M                  .#.   ;##############;      #############       M##############=                ;################
############           ;      +###M                =           +###########.                 ##.   M##############.      #############      .###############;                 ################
#############=         .     ;####M                .           X###########.                M##.  ;###############      .#############      ;###############.    ;+           M###############
#############M       .+      #####X                 .          ;###########;                ###.  +##############M      ;#############      =###############      =;          +###############
##############      .#M     +#####X                 +           ###########;               ;###   +##############X      .##########==       +##############M       +           ###############
#############M     =##X    .######X                .+           M##########;       .       ;###   ;###############=      MMMMMMMMX          +##############X       M;          =##############
#############M    ;###+    +######+                 =           M##########;       ;       =##M   ;###############X                         ;##############=       #+          .##############
#############X    ####=    M######=                             X##########.       +       +##X   ;###############X                          ##############;                    ##############
#############=    +###+    #######=                             =##########.       M       +##+   =###############=                          =#############.           .+       ##############
#############.    +###M    M######;                        ;;=+############        #.      =##;   =###############.                          =#############            ;#.     .##############
#############     #####.   =######.                       M###############M       .#;      =##.   +###############+                       .;.#############M            =##;.   M##############
############M   ;######+    +#####                        M################.      .#;      .##    M################=                    .##M##############X    +.  ;   .###M; .###############
############X   ########=    +###X                    M   M################.      .#;       MM    M#################.                   =#################=        =     X#+  ;###############
############=  .#########     ###;                    =   M################;       #;       MX   .##################M                   X#################;       .=          =###############
############;  .#########.    ;##.              ;==   ;   M################;       M;       MM   .###################;                  M#################;       ;;          M###############
############.  ;#########=    ;#;              =##.       M################=       +;       M#   ;###################M                  M#################.       +.         ;################
############   ;#########=    .#               .##;       M################=       ;;       +M   =####################.       ;         ##################        X          M################
###########M   .#########=    .#     M     #    M#;       X################+       .;       .X   =####################+       X         ##################        X         +#################
###########M    +=#######=    .#    =#+   #;    M#.       X################+       .;        =   ;####################M      ;+         #################M        M         X#################
###########M       +#####=    ;#.  .##M   .;    MM        X################+       .;            ;#####################      ;=         #################M       .X         M#################
############       =#####+    X##;=####        .#X        X################=       ;;            ;#####################.     =.         ################M        ;X        .##################
############       =#####+   .#########;       +#+        X################=       .#;           ;#####################=     +          M###############=        ;X        ;##################
############X      =#####=   ##########=       ##=        +################=       .#.           ;#####################+    .+          M###############.        =+        =##################
#############.     .#####;   +#########=       M#=        +################;       .#.           ;#####################X=   .;          M###############         =+        X##################
#############.      =####.   X#########+       ;#=        +################;       ;#;           ;######################+   .           M##############M         ++        M##################
#############.       +##M    X#########+        X=        +################.       +#            .######################M   .          ################M         +X        M##################
#############         M#+    M#########+        ++        +################.       M             .#######################.             =###############X         XX       .###################
############M         +#=    M#########+        .X        +################.      .#;            .#######################.             =###############X         XX       .###################
############M         +#+    M#########=         X        =################.      .#=            .#######################;             =###############X         XM       .###################
#############=        +#X    M#########=         M        =################.      ;#=            .#######################;             =###############X         MM       ;###################
#############M        +#X    ##########+         X;       =################.      ;#             .#######################;             =###############+         M.       ;###################
##############.       =#X    ##########X         X=       =################;      ;;             .#######################=             +###############+         +        ;###################
##############;       ;#X   .###########.        XX       =################;                      #######################+             +###############+                  ;###################
##############;       .#=   .###########+        X#.      ;################=                      ########################             +###############+                  ;###################
##############+        #;   .############=       X#=      ;################X                     +#######################;             +###############.                  .###################
##############M        M.   ;#############;      X#X      ;################M                    .########################.             +##############M                    ###################
###############;       ;    ;#############X      +##.     ;#################.                   ;########################.             +##############M                    M##################
###############M.           ;##############      +##=      #################;                   ;########################              +###############;                   M##################
################;           =##############.     +##M     ##################+                   ;#######################M              +################                   +##################
################=           =##############;     X###.   =###################                    #######################+              +###############.                   ;##################
################+           +##############.     X####   X###################.                   X######################;              +##############M                     M#################
################+           +##############.     X###.   +###################X                   .#####################M              M###############M                     +#################
################=           X###############.    X###.    ;##################M                   =#####################.             .#################;                     X################
################+           +###############=    X###.     =#################M;                 .#####################M              ;##################= .;                  M###############
################M           M###############=    X###.      ################=                   =#####################X               ###################M+M                  ;X##############
#################           ################;    X###       M##############+                    .####################.               .######################=     .;..          .#############
#################.         .###############X     X###       X#############.         =           .###################.            ====########################;   X####M          X############
#################M         =###############.      M##       =############         ;+#            ###################;            M############################+;########=.       X############
##################+X#M;    X#############M        .##       ;###########.        +M###+=.        ####################X           ;########################################+;.   ##############
####################M+    .#############X          X#       .############.     .M#######.        M####################+        ..############################################MX+##############
####################;     X############+           =#.       M###########X    =#########;        =###################+         M##############################################################
###################M     =############M            ;##+      M############= .=###########        ;##################+      #;.;###############################################################
####################    .#############+            =###==    ############################=        +################X     .####################################################################
####################;;;+###############.   ;+M; ;=.#####X; .##############################+        #################.    M####################################################################
########################################=;;M###+##########M################################=  .    ##################   =#####################################################################
############################################################################################.;##  .##################M;=+#####################################################################
################################################################################################X=############################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
##############################################################################################################################################################################################
#######       #####         #        #####M;  ;M##     .M####     ####M ##########;  ;#;   ##;  ;####     .X##     .M########M #####     #+   +#         #M   ;##+        #+   +#        #####
####### +###;X##### +## ##+ ##M ###M ####X;M##M;X##M ##M;#####M M#####+ X##########=.###= ####.=######M ##M;X##M ##M;########+ X#####M M###+.M## +## ##+ ###+;####.+M#M M###+.M###M ###M #####
####### ###+=######;### ###;### ########M.######.M## ####;##### ######.X;###########;M### ####.######## ####.### ####;#######.X;###### ###M.####;### ###;####;M##;M#### ###M.###### ##########
##########M.########### ####### ########;X######X;## ###M.##### #####M.#.###########M;###MM##M;######## #### ### ###M.######M.#.###### ##X;######### ########M;#X;##### ##X;####### ##########
##########;M########### ####### ##M #### ######## ## ##X.X##### #####+=#=X###########.###X;##X+######## ###M;### ##X.X######+=#=X#####;#+.########## #########.M.######;#+.######## ##M ######
#########++############ #######     #### ######## ##   .+###### #####.M#M;###########=X##+.##;M######## X#M;M###   .+#######.M#M;#####.+ X########## #########X +######.+ X########     ######
########M.############# ####### ##M #### ######## ## ##;####### ####M.###.###########X;#MX++#.#########   .M#### ##;#######M.###.##### XX.########## ########## ####### XX.######## ##M ######
########;M############# ####### ########;X######X;## ##M=###### ####+     X###########.#=#M.#;######### ######## ##M=######+     X#### M#X.######### ########## ####### M#X.####### ##########
#######=+####X;######## ####### ####M.##M.######;M## ###+X##### ####.M###M;###########;X;##;;=######### ######## ###+X#####.M###M;#### ###X.M####### ########## ####### ###X.M##### ####M.####
######M;#####;X#######M M#####M ###M.+###X.M##X;X##M M###;X###M M##+.#####.+##########X.X##X X########M M######M M###;X###+.#####.+##M M###; X#####M M########M M#####M M###; X###M ###M.+####
######        #######     ###        M####M;  ;M##     ##M  +     ;   ###;  ;##########.####.M#######     ####     ##M  +;   ###;  ;     #M    ###     ######     ###     #M    #        M####
########################################################################## ############################################################################################################ ######
########################################################################## X########################################################################################################### X#####
##############################################################################################################################################################################################