,-.----.                             ____                                  
   ,---,       \    /  \     ,---,                ,'  , `.           .---.   ,---,        
  '  .' \      |   :    \ ,`--.' |             ,-+-,.' _ |          /. ./|  '  .' \       
 /  ;    '.    |   |  .\ :|   :  :          ,-+-. ;   , ||      .--'.  ' ; /  ;    '.     
:  :       \   .   :  |: |:   |  '         ,--.'|'   |  ;|     /__./ \ : |:  :       \    
:  |   /\   \  |   |   \ :|   :  |        |   |  ,', |  ': .--'.  '   \' .:  |   /\   \   
|  :  ' ;.   : |   : .   /'   '  ;        |   | /  | |  ||/___/ \ |    ' '|  :  ' ;.   :  
|  |  ;/  \   \;   | |`-' |   |  |        '   | :  | :  |,;   \  \;      :|  |  ;/  \   \ 
'  :  | \  \ ,'|   | ;    '   :  ;        ;   . |  ; |--'  \   ;  `      |'  :  | \  \ ,' 
|  |  '  '--'  :   ' |    |   |  '        |   : |  | ,      .   \    .\  ;|  |  '  '--'   
|  :  :        :   : :    '   :  |        |   : '  |/        \   \   ' \ ||  :  :         
|  | ,'        |   | :    ;   |.'         ;   | |`-'          :   '  |--" |  | ,'         
`--''          `---'.|    '---'           |   ;/               \   \ ;    `--''           
                 `---`                    '---'                 '---"