                                                                                                                        
  ::::..:. ::::.::. .   .        .              .      .    .......      .     .                   .-.             .    
  :::-=.:+.:::==.-=     .-=:   .===-=::-:   :=-:=-.  :=+: .--===--::-:  .-:   :=-   .--:  .-:.     .-.  ... ...  ..     
  -: := .=.=: -= ..  .  .-+:   .==:::..-:. .-=.:=-. .-=-=: ..:--...:=:  .-:  .---:  .--=: .-:   .. .--=-:==:====:=-=-   
  :. :- .-.-. ::         :=-   .==---. :-: .=- :-=. :=-:=-   .--.  .--::--:  --:--  .-===-.--        .-:..--=..=:- :-   
    :::::::::::::.    .. :=-   .==-::. .--.--. .--..-=:.-=:  .--.  .--:::-: :=-.:=: .-=:.=---  .     -. :=-.-:::.-.::   
    .- ---.==-:--:  .    :=:   :=-      :---:  :==.:===--==. .=-.  :-:  :-:.-==--==..-=: :---     ...   :-:  ::  .:.    
               .         -==----==----. .=--.  :==.=+-  .-=: :+=.  :-:  :=-:=-. .=+:.=-:  :--     --=:-=-.=-:----:--:   
         ..      ..  .  .=++++=-+-::--.  .-:   .:---:.   ....:-:   .:.  -=:-=:   :+-:=-.  .-:     :.::-:-::.:::::::..   
   :=-==:=:-:=--===:  . :-:..  ..      ...              :--:==:   .    ..           ..     ...   . .::..   .-:          
   :-  =:=--:--::.=: ......      ..-. .-=:     .     ...:--:--.   ..  ..    ..::   .:-.   .     ..-:. .   .---:.        
   :====:.+==- -: -: ..  ....    .--. .==:  .-=-   :---==: :::   --..-==-==..--=. :--:       ...--.   :=--=--------.    
   ....  .:-:   .:.    .. ...    .--::--=:  :--=: .--:. .. :-:...--..=-:... .-----=---.   ..:...--.    :--:   .---.     
   :--------=--=--=-.  ......: . .--:::--: .--.--. .:---:. :-------..-----. .--.:-:.--  ....  .=-..    :==:   .---.     
   ...::::::::::::::............ .=-. .-=:.-==--=:.:.  :--.:-:   --..=-.    .--. . .--.  ...  .--:..  :=--=----=---.    
     ......::::::::::......:.:.  :==. .=+::+=...-=:-=---=- :=-  .==..==---=:.=+:   .--  ..  . ..-=... ....:----.....    
 .  ...:::...::---::::--::..::.  :-.  .:..::.   ... .....  ...   ....:....:.:-:.    .:..   ...:-+=-:::..   .-:   .      
    .::-..:--::::::::::.:-:.... .::::.-. :..:.:-:  :::::.:::-:  :-:...: .: .:::.::.      ..:--+=-:.. ..::.....          
  .  :=:.--:---===----::..::....  -: ---.----:--:   -: ---:=-: .=..:---.-=:-:.=:-:.     ....::=+:. ..  .-==-::..        
   ...-::::-=+*##*+=-:=-.:....    -:.-:-:-. ::---.  -. -.::--:  :-:::.-:-:-:--:.:::.:.:.:...:==:..:.. .=+-:..     .     
  .....::-:-=+##*++=::-=:..:::::.:............::..................:.....................:.:::=-....::.==-:..       .    
  ..::...:::---=+=-:.:=-..:.--......:::::.:.:............:...:.:........::...:..........--:---....:::.-:..         ..   
     .::::-----:::::-==.....::   :.:::::::::::.:. :::::. :.... ::::::::...:::::..::.    --:........:-.:..      . ...    
       .........:::==-:...  ::   :::::..::::::.. .:::::..::::: ::::.:::::::::..:::::.   -:  ..:-:::--:.:..  ...   ..    
    . .. ..:::--::-=:.:.....::   ............... ....... .... ..:. .::: . ....:  .....  -:..:::...-=:....:::...  .  ..  
        .:....:..--...:::.  ::   -:--:--:-:-::.: :::--.-. :::.:---=-::---------. :::-:  ::..:......----::-=-::.......   
       ....... .:-:.. .:.   ::    .. ..  .  .   ...  ...  ..  .  .... ......:....   ..  :.....:...::.:::--:::.:::-:..   
       .   ......:-:.:..... ::  .-:---:-:- .-:-::-- ::-:--::.---..----:-:----:==- ::::  ..:.:-. .:. .....::..:::-=:..   
      ...::--:....:--:....  --   .........  ....... ........ ...  ...:......... .  ... .::.:::::....:... .....:..:::..  
     ...  ..:-==::.--::. .  ::  .::-:..-. ::::-..-::.::::: :::::. .::::: :..:::-:   ::-::....:=:...:..:...  ..........  
  ...        .:-+-===:......::  .::::::.  ..:::..:::.::::: .::::.. ..::: ::::::::  .....::::::::::........ ..........   
   ..         .:=+=-::..  ..::   .:......  ..... ............ ...... ...... .....  ..:.::::...... ......     .....:..   
  . .        .::--...:::.  .--   -=---:-:..----:..:--..::::-:.-:::-:.:-:.:::-::::...:......::............  .. ...:-..   
   .   .. ......::......:...--.          .                               ..  ........::::::-+-...:.... .  .    ..:-..   
  . ...      ......:.::.....-----:::-:::::-::::::::---::::::-:----::::::::----------:::::...:..::....        ..  :-..   
  ::.:. .         .::::-:.........  ..     . ....:.::.............:....:....::...:....:::....:::. ...::::::::::::--:.   
  ..:-:....  .  ...   ..:::..... .....  .     ......:..:::..  ..:=---::.....:...::...-:::::::........:---:..:-.:-..-.   
   ..:=---......... .  ...:::::::.... .. .......    ..  .:::..::-:...... .....::::--::....... ...... ::..   .. .. ..    
    . ......      ..     .      ...      ..             ....::.         ...        .....:........ :..:::::::::.:::.     
                                                                                         ....      . . . .. .  ..       
