Monday, September 15, 2014

ASCII mouse from my head

                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                     ``                                                                                                                                                                                               
                                                                                                                   '@#@#`                                                                                                                                                                                             
                                                                                                                  @+++++#                                                                                                                                                                                             
                                                                                                                  @+++++#                                                                                                                                                                                             
                                                                                                                  +++++++                                                                                                                                                                                             
                                                                                                                  @++++++                                                                                                                                                                                             
                                                                            `@@@@,                                ;@+++++                                                                                                                                                                                             
                                                                            @++++@                                 #+++#+                                                                                                                                                                                             
                                                                           `#++++@                                 `@++#`                                                                                                                                                                                             
                                                                           `+++++#                                  @+#++                                                                                                                                                                                             
                                                                           `+++++#                                  .##+@`                                                                                                                                                                                            
                                                                           `#+++#@                                  `@+#+@                                                                                                                                                                                            
                                                                           `@+++@`                                   `##+@`                                                                                                                                                                                           
                                                                            @+++;                                    `@+++.                                   ``;#`                                                                                                                                                   
                                                                            '+#+;                                     @+++@`                               ``###++@@.`                                                                                                                                                
                                                                            '+#+`                                     `#++#'                           `#@@@,,,,,,,,,@,                                                                                                                                               
                                                                            '+++`                                      @+++@                        ,`@@,,,,,.......,,'@`                                                                                                                                             
                                                                            ++++`                                      @+++@`                      @@@,,,,....````...,,,'#`                                                                                                                                           
                                                                            ++++                                       '+++#`                     @@,,,,....````````..,,,.@                                                                                                                                           
                                                                            ++++`                                       @+++@                   `@@,,....````````````...,,,@                                                                                                                                          
                                                                            #+++`                                       @+++@`                 .@,,...`````````````````..,,;;                                                                                                                                         
                                                                            #++++                                       #+++#`                ,@,...````````````````````..,,@                                                                                                                                         
                                                                            #+++#                                        ++++#               `#,...``````````...;:##`````..,,#                                                                                                                                        
                                                                            @+++@                                        #+++@`             `@...``````````...@@@#````````..,@                                                                                                                                        
                                                                            ;+++@`                                       @+++@;             +...``````````..,@@'..`````````.,@`                                                                                                                                       
                                                                            `+++#`                                       @+++#@            `@..``````````.,;@@@@,.`````````..:`                                                                                                                                       
                                                                            `++++#                                      `@++++@`           :..``````````.;@@:,,,@+.`````````..+                                                                                                                                       
                                                                            `@+++@`                                     `@++++@`          `#..`````````.@@,,,...,@'.````````..@`                                                                                                                                      
                                                                             @+++++                                     `@++++#'          `..`````````.@@,,,.....,#.````````..@`                                                                                                                                      
                                                                             @++++@`                                    `@+++++@         `@..````````.@@,,,..````..`````````...`                                                                                                                                      
                                                                             @+++++`                                    `@+++++@`        @,.`````````@@,,,..`````````````````.,@                                                                                                                                      
                                                                             .#++++@                                    `@++++++`       `@..````````#@,,,..``````````````````.,@                                                                                                                                      
                                                                             `@++++@`                                   `@++++++@      `@..````````.@:,,,.```````````````````.,@                                                                                                                                      
                                                                              '+++++`                                   `@++++++@      +:..````````@@,,,,.```````````````````.,@                                                                                                                                      
                                                                              `@++++@                                    @++++++@     `@..````````,@,,,,..```````````````````.,@                                                                                                                                      
                                                                              `@++++#`                       #.          @++++++@`    @,..````````@,,,,,..```````````````````.,@`                                                                                                                                     
                                                                               ;#++++;                   ,:@@''@`        '++++++@`   `@,.````````.@,,,,,.````````````````````.,@`                                                                                                                                     
                                                                               `@++++@`                @@@''''''@,       `@+++++@`   ;,..````````@,,,,,,.````````````````````.,@`                                                                                                                                     
                                                                                @+++++'             +@@@#''''''''@@@@@@##+@++++++;   @,.````````.@,,,,,,.````````````````````.,@`                                                                                                                                     
                                                                                .+++++@`          @@@@'''''''''''@:``````@@@@@+++@  `.,.````````',,,,,,,.````````````````````.,@`                                                                                                                                     
                                                                                `@+++++'        #@@'''''''''''''''@```````...:@@#@` @,..````````@,,,,,,,.```````````````````..,@`                                                                                                                                     
                                              @@@@@@@@@@`                        `#++++@`     ,@#'''''''''''''''''@,````````````@@.`@..````````.#,,,,,,,.```````````````````..,@`                                                                                                                                     
                                           @@,``````````,@@.                      @+++++@`  :@+''''''''''''''''''''@``````````````@@@@.````````+,,,,,,,..```````````````````.,,@`                                                                                                                                     
                                         @:`````````````````@#                     #+++++@:@@''''''''''''''''''''''@@```````````````@#@+``````.@,,,,,,,.````````````````````.,,@`                                                                                                                                     
                                        @`````````````````````.+                   #+++++@@#''''''''''''''''''''''''@``````````````````:@`````@:,,,,,,,.```````````````````..,,@                                                                                                                                      
                                       @````````````````````````';                  #++@@#''''''''''''''''''''''''''@+``````````````````@+```.@,,,,,,,..```````````````````.,,,`                                                                                                                                      
                                      #```````````````````````````@`                @+@@'''''''''''''''''''''''''''''@```````````````````@``.@,,,,,,,,.````````````````````.,,@`                                                                                                                                      
                                      '````````````````````````````#@               `@@''''''''''''''''''''''''''''''@````````````````````..@,,,,,,,,,.````````````````````.,,@                                                                                                                                       
                                     #,``````````````````````````````@@             @@'''''''''''''''''''''''''''''''#````````````````````@@.,,,,,,,,..````````````````````.,,+                                                                                                                                       
                                     @`````````````````````````````````@#          @@'''''''''''''''''''''''''''''''''@```````````````....`'@,,,,,,,,.`````````````````````.,,#                                                                                                                                       
                                     @`````````````````````````````````;@@#       @#''''''''''''''''''''''''''''''''''@`````````````...@@@``.@@,,,,,..````````````````````..,,@                                                                                                                                       
                                    @`````````````````````````````````````@@+    @#''''''''''''''''''''''''''''''''''''.``````````...+@...```..@,,,,.`````````````````````..,,@                                                                                                                                       
                                    @`````````````...........```````````````'@@ +#'''''''''''''''''''''''''''''''''''''@````````...,@@...``````.+,,..`````````````````````..,,#                                                                                                                                       
                                   ``````````'@@@####@@@@,,....````````````````@@''''''''''''''''''''''''''''''''''''''@```````..,,@...`````````@...``````````````````````.,,#'                                                                                                                                       
                                   @```````````..,,,,,,,,;@@:@..``````````````:@'''''''''''''''''''''''''''''''''''''''@``````..,,@..```````````@````````````````````````..,,@`                                                                                                                                       
                                   @``````````..,,,,,,,,,,,@@@@..`````````````@@'''''''''''''''''''''''''''''''''''''''''````..,,@;`````````````@````````````````````````..,,@                                                                                                                                        
                                   '``````````.,,,,,,,,,,,,,#@@@@.````````````@'''''''''''''''''''''''''''''''''''''''''@````..,@'``````````````@````````````````````````.,,+`                                                                                                                                        
                                   #``````````.,,,,,,,,,,,,,,,@@@@#``````````@''''''''''''''@##'''''''''''''''''''''''''@````.,@+``````````````.@.``````````````````````..,,@`                                                                                                                                       
                                   ```````````.,,,,,,,,,,,,,,,,,#@@@#````````@''''''''''@@#'''''+@#'''''''''''''''''''''+```..,@``````````@#@'`.@.`````````````````@@'``..,;`                                                                                                                                        
                                   ```````````.,,,,,,,,,,,,,,,,,,,:@@@#..```.@'''''''''''''''''''''@@''''''''''''''''''''+``.,;.````````#+@@@#`.@..```````````````'' ,,`.,,@                                                                                                                                          
                                  :``````+````..,,,,,,,,,,,,,,,,,,,,@@@@@@@##''''''''''''''''''''''''''''''''''''''''''''@`..,@.```````'@,``.@`..#.```````````````'   #..,@`                                                                                                                                          
                                  ;``````@````..,,,,,,,,,,,,,,,,,,,,,,'+#''+@''''''''''''''''''''''''''''''''''''''''''''@`..:#```````@: @#````..@.````````````````@#@..,;`                                                                                                                                           
                                  '`````@``````.,,,,,,,,,,,,,,,,,,,,,,,,,,,.@''''''''''''''''''''''+''''''''''''''''''''''`..;.``````@..` `@````.#,.``````````````````.,,@                                                                                                                                            
                                  +`````@``````.,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''''''''#''''''''''''''''''''''@..;.`````@:..   '#```.,@.````````@:'``````..,.'                                                                                                                                            
                                  @`````@``````..,,,,,,,,,,,,,,,,,,,,,,,,,,@''''''''''''''''''''''''@'''''''''''''''''''''@..@`````:` `     @```.,,@```````@   '````..,.@                                                                                                                                             
                                  @`````````````..,,,,,,,,,,,,,,,,,,,,,,,,,@''''''''''''''''''''#@@@#@''''''''''''''''''''@`.#`````' .#.@   #```..,@@``````#   #````.,,@'                                                                                                                                             
                                  @``````````````..,,,,,,,,,,,,,,,,,,,,,,,,@''''''''''''''''''@@'@`.,,@@''''''''''''''''''@```````@  ,''#,  @```..,.@#`````@  #````..,@`                                                                                                                                              
                                  @```````````````.,,,,,,,,,,,,,,,,,,,,,,,,@'''''''''''''''''#'''#``.,,#@@''''''''''''''''@``````;,` '##@,  @````..,#@``````'+````..,++                                                                                                                                               
                                  @```````````````..,,,,,,,,,,,,,,,,,,,,,,,#''''''''''''''''''''''``.#+...:@''''''''''''''@`````+.``  ';+  +``````..,@#``````````..,.@                                                                                                                                                
                                  #````````````````..,,,,,,,,,,,,,,,,,,,,,@'''''''''''''''''''''':,@    `...@''''''''''''''``'#@'         @.```````..,@.````````..,.@                                                                                                                                                 
                                  #`````````````````..,,,,,,,,,,,,,,,,,,,,@''''''''''''''''''''''#+     #+@`.`@'@@@@@@+''''#````#        @@`````````..,@.``````..,,@                                                                                                                                                  
                                   ``````````````````..,,,,,,,,,,,,,,,,,,,@''''''''''''''''''''''.      ++++'     `''@+'''+@+`..@```   +#+```````````.,;@.````..,,@                                                                                                                                                   
                                   ;``````````````````..,,,,,,,,,,,,,,,,,,@''''''''''''''''''''''+`     #@@##     @''''''''#@..#@@@@+.#'`````````````..,@.``...,,@                                                                                                                                                    
                                   @```````````````````..,,,,,,,,,,,,,,,,,@''''''''''''''''''''''#`      :#      ;'''''''''''#..,,,,@@@.``````````````..@#...,,;@                                                                                                                                                     
                                   #``````@`````````````..,,,,,,,,,,,,,,,,@'''''''''''''''''''''''#`            #'''''''''''''........+@```````````````.,@,,,,@`                                                                                                                                                      
                                    @`````:,`````````````..,,,,,,,,,,,,,,,@'''''''''''''''''''''''#+`       `  @''''''''''''@.```````..````````````````..,;,,@                                                                                                                                                        
                                    ##`````@``````````````..,,,,,,,,,,,,,,@'''''''''''''''''''''''''@;`   ``.#+'''''''''+@@@,+.````````````````````````..,@@'                                                                                                                                                         
                                     @`````@```````````````..,,,,,,,,,,,,,@'''''''''''''''''''''''''''+@+##++''''''''''@@#,,,'..```````````````````````.@@@`                                                                                                                                                          
                                      ,````;@````````````````..,,,,,,,,,,,@'''''''''''''''''''''''''''''''@'''''''''''#,,,,,,,;.```````````````````````..@.                                                                                                                                                           
                                      @`````@'````````````````..,,,,,,,,,,@''''''''''''''''''''''''''''''@''''''''''@@,,,,,,,,,+.`````````````````````...@                                                                                                                                                            
                                      ;``````@#````````````````..,,,,,,,,,@'''''''''''''''''''''''''''''@''''''''''@+,,,,,,,,,,+.`````````````````````...'                                                                                                                                                            
                                       @``````#@````````````````..,,,,,,,,''''''''''''''''''''''''''''''+'''''''''@+,,,,,,,,,,,'.`````````````````````.'.'                                                                                                                                                            
                                       .```````#@.```````````````..,,,,,,.'''''''''''''''''''''''''''''''''''''''@:,,,,,,,,,,,,;```+,`````````````````.@@@                                                                                                                                                            
                                        @````````@@```````````````...,,,..+'''''''''''''''''''''''''''''''''''''@,,,,,,,,,,,,@@@@@@@@@`````````````````@`@                                                                                                                                                            
                                         @``````````````````````````.....`#''''''''''''''''''''''''''''''''''''@@,,,,,,,,,,@@@@@#';@@@```````..````````@                                                                                                                                                              
                                         ''```````````````````````````````#'''''''''''''''''''''''''''''''''''@+,,,,,,,,,,,@@+'';:;@@@``````....```````@                                                                                                                                                              
                                           @'``````````````````````@``````@''''''''''''''''''''''''''''''''''@@,,,,,,,,,,,,@@@###@@@@```````..@..``````@                                                                                                                                                              
                                           `@#``````````````````@@@```````@'''''''''''''''''''''''''''''''''@@,,,,,,,,,,,,,'@@@@@@@@@````````.;..``````@                                                                                                                                                              
                                             @@.````````````````@`````````@''''''''''''''''''''''''''''''''@@,,,,,,,,,,,,,,,:@@@@@@@:`````````..```````:                                                                                                                                                              
                                              #@#`````````````````````````@'''''''''''''''''''''''''''''''@@,,,,,,,,,,,,,,,,..@@@@@@``````````````````#                                                                                                                                                               
                                                 #@#`````````````````````.@''''''''''''''''''''''''''''''@@,,,,,,,,,,,,,,,,,..`@@@@```````````````````@                                                                                                                                                               
                                                      @@@+#````````````...#@''''''''''''''''''''''''''''@@+,,,,,,,,,,,,,,,,,..````````````````````````@                                                                                                                                                               
                                                          ;#@#.``;#@@@@@@@@@'''''''''''''''''''''''''''+@:,,,,,,,,,,,,,,,,,,,.````````````````````````#                                                                                                                                                               
                                                                        ```@'''''''''''''''''''''''''''@,,,,,,,,,,,,,,,,,,,,,.````````````````````````;                                                                                                                                                               
                                                                           @@'''''''''''''''''''''''''@',,,,,,,,,,,,,,,,,,,,,.```````````````````````@                                                                                                                                                                
                                                                           `@''''''''''''''''''''''''@#,,,,,,,,,,,,,,,,,,,,,,.```````````````````````;                                                                                                                                                                
                                                                            '@''''''''''''''''''''''@:,,,,,,,,,,,,,,,,,,,,,,,..`````````````````````#                                                                                                                                                                 
                                                                            `@''''''''''''''''''''@@,,,,,,,,,,,#,,,,,,,,,,,,,..``.@'#````,``````````@                                                                                                                                                                 
                                                                             '@''''''''''''''''''@;,,,,,,,,,,,,@,,,,,,,,,,,,,..`@##,;;```@``````````#                                                                                                                                                                 
                                                                             `@''''''''''''''''@@,,,,,,,,,,,,,,@@##@@@,,,,,,,..@+ @  ,#`@;`````````@.                                                                                                                                                                 
                                                                              `@''''''''''''@@@+,,,,,,,,,,,,,,,,#####@@,,,,,,,'`  '   ;```````````@@                                                                                                                                                                  
                                                                               `@'''''''''+@@#,,,,,,,,,,,,,,,,,,,,,,,,,@@:,,,##   '   .```````````@                                                                                                                                                                   
                                                                                `@#''#'@@@@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'@@@@@;   #  #```````````:@                                                                                                                                                                   
                                                                                 ``.@';,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+,;   `.@````````````@#                                                                                                                                                                   
                                                                                   `,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+@#@`````````````@`+                                                                                                                                                                   
                                                                                     `@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.````````````````.``+@,                                                                                                                                                                 
                                                                                      `@',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.```````````@.```'``+#;@#`                                                                                                                                                              
                                                                                       `,@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.``````````.@;.`````@@;'@@'                                                                                                                                                             
                                                                                         `@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.``````````.@;.`````+@;;'+',                                                                                                                                                            
                                                                                         `',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.``````````.@;.``````@;;;''@`                                                                                                                                                           
                                                                                         ##,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..`````````.+@,.``````@;;;;'@@@@@`                                                                                                                                                       
                                                                                         @,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.``````````+@'.```````.@;;;'@''''@`                                                                                                                                                      
                                                                                        `@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..````````.@@@..````````,@;;;@'''''@           `````````                                                                                                                                  
                                                                                        `@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..````````,@@+..``````````;;;;@';;;''`    @@@@@@@#++#@@@@@@#;                                                                                                                              
                                                                                        `,,,,,,,,,,,,,,,,,,,,,,,,,,,+,,,,,..````````#@:,..```````````#;;;@';;;'';  @@#++++++++++++++++@@@+`                                                                                                                           
                                                                                        `,,,,,,,,,,,,,,,,,,,,,,,,,,,@@@';,...::;.,@@+,,..````````````#;;;@';;;''#@:##@+++++++++++++++++++#@'`                                                                                                                         
                                                                                       `@,,,,,,,,,,,,,,,,,,,,,,,,,,..,@@@@@@@@@@@@@,,,..````````````,';;;@';;;''@.```.@++++++++++++++++++++#@`                :@@@@@@@@@@#                                                                                            
                                                                                      #@@',,,,,,,,,,,,,,,,,,,,,,,,.......,,,,,,,,,,....`````````````:;;;'@';;;'+..````@++++++++++++++++++++++@`           `#@@@@.......;@#@;                                                                                          
                                                                                    `@#'@',,,,,,,,,,,,,,,,,,,,,,,..````..............```````````````+;;;'#';;;'@.`````.@++++++++++++++++++++++#`       '@@@@,..`````````````;@,                                                                                       
                                                                                   `@'''##,,,,,,,,,,,,,,,,,,,,,,..``````````````````````````````````+;;;''';;;'@.``````@++++++++++++++++++++++@@     :@@@@,.```````````````````,+                                                                                     
                                                                                   #''''@,,,,,,,,,,,,,,,,,,,,,,,.```````````````````````````````````@;;;'';;;;@+.``````'++++++++++++++++++++++@;.@, @@@#`````````````````````````;,                                                                                   
                                                                                  `+''''@,,,,,,,,,,,,,,,,,,,,,,..````````````````````````..````````,;;;;@';;;'@..``````@++++++++++++++++++++++@;``'@@@.````````````````````````````#`                                                                                 
                                                                                 `@''''@,,,,,,,,,,,,,,,,,,,,,,..`````````````````````````...```````@;;;;@';;''@.```````'++++++++++++++++++++++@#```@`````````````````````````````````#                                                                                
                                                                               `.@''''@@,,,,,,,,,,,,,,,,,,,,,..`````````````````````````....```````@;;;;#';;''#.````````++++++++++++++++++++++#:``;```````````````````````````````````@                                                                               
                                                                              `@@'''''@,,,,,,,,,,,,,,,,,,,,,..``````````````````````````.:,.```````#;;;;'';;'@.`````````+++++++++++++++++++++++.``````````````````````````````````````:@`                                                                             
                                                                             `@+''''''@,,,,,,,,,,,,,,,,,,,,,.```````````````````````````.@..``````+;;;;;';;''@.`````````++++++++++++++++++++++++``````````````````````````````````````.;@`                                                                            
                                                                            `@@'''''''@,,,,,,,,,,,,,,,,,,,,..```````````````````````````.@..``````@;;;;;;;;'';``````````@++++++++++++++++++++++#```````````````````````````````````````.@@`                                                                           
                                                                            '@''''''''';,,,,,,,,,,,,,,,,,,,.```````````````````````````..@.```````@;;;;;;;''@.``````````@++++++++++++++++++++++#````````````````````````````````````````:@@                                                                           
                                                                           `@''''''''''#,,,,,,,,,,,,,,,,,,,.```````````````````````````.:#.``````,;;;;;;;;''@.``````````@++++++++++++++++++++++#`````````````````````````````````````````.@`                                                                          
                                                                          `@'''''''''''':,,,,,,,,,,,,,,,,,..``````````````````````````..@..``````@;;;;;;;;''.```````````@++++++++++++++++++++++@`````````````````````````````````````````.;@`                                                                         
                                                                         `@'''''''''''''#:,,,,,,,,,,,,,,,,.```````````````````````````..@.``````;;;;;;;;;;'@.```````````@++++++++++++++++++++++@``````````````````````````````````````````.@@`                                                                        
                                                                         ;+#'''''''''''''#,,,,,,,,,,,,,,,..```````````````````````````..@.``````@;;;;;;;;''#.```````````@++++++++++++++++++++++@.``````````````````````````````````````````.@@@                                                                       
                                                                        `@#,#'''''''''''''@:,,,,,,,,,,,,..````````````````````````````.,#.`````';;;;;;;;;'@.````````````@++++++++++++++++++++++@.```````````````````````````````````````````.@@@                                                                      
                                                                       ,+,,,@''''''''''''''@:,,,,,,,,,,,.`````````````````````````````....`````@;;;;;;;;;'#.````````````@++++++++++++++++++++++@.```````````````````````````````````````````.@@@`                                                                     
                                                                     `+',,,,@'''''''''''''''@,,,,,,,,,,..`````````````````````````````...`````#;;;;;;;;;'@..````````````@++++++++++++++++++++++@.````````````````````````````````````````````..@'                                                                     
                                                              ````;:`@#,,,,,,@'''''''''''''''@,,,,,,,,,.``````````````````````````````````````+;;;;;;;;;''..````````````+++++++++++++++++++++++@.``````````````````````````````````````````````.@`                                                                    
                                                           ``##@#+++@+,,,,,,,++'''''''''''''''@,,,,,,,,.`````````````````````````````````````@;;;;;;;;;;@,.````````````;+++++++++++++++++++++++@.```````````````````````````````````````````````.@                                                                    
                                                        ``#@@+######@,,,,,,,,,@@'''''''''''''''@,,,,,,,.````````````````````````````````````,';;;;;;;;;'@..``.......```@+++++++++++++++++++++++@.````````````````````````````````````````````````.#                                                                   
                                                     ``.@@###########,,,,,,,,,,@''''''''''''''''@,,,,,..````````````````````````````````````@;;;;;;;;;;+,....'@',,@..``@+++++++++++++++++++++++@.`````````````````````````````````````````````````@.                                                                  
                                                   `.@#+#############,,,,,,,,,,##''''''''''''''''@,,,,.````````````````````````````````````';;;;;;;;;;'@,,,@',,......``@+++++++++++++++++++++++#```````````````````````````````````````````````````.`                                                                 
                                                 `,@################@,,,,,,,,,,:@'''''''''''''''''@,,..````````````````````````````````````@;;;;;;;;;;@,'@;..........``#+++++++++++++++++++++++#````````````````````````````````````````````````````'                                                                 
                                                ,@@#################@,,,,,,,,,,,,@'''''''''''''''''@,.````````````````````````````````````@;;;;;;;;;;'@#.....``````````+++++++++++++++++++++++++`````````````````````````````````````````````````````#                                                                
                                               ,@###################@,,,,,,,,,,,,:@+'''''''''';;;'''@#.```````````````````````````````````@;;;;;;;;;;@,...`````````````++++++++++++++++++++++++:```````````.``````````````````````````````````````````                                                                
                                              `@#####################+,,,,,,,,,,,,:@'''''''''';;;;'''@'.`````````````...`````````````````@;;;;;;;;;;''..``````````````'++++++++++++++++++++++++.```````````..`````````````````````````````````````````+                                                               
                                             ++@#####################@,,,,,,,,,,,,,;@'''''''';;;;;;;''#@..```````````....```````````````,@;;;;;;;;;'@..```````````````@++++++++++++++++++++++++.```````````..`````````````````````````````````````````                                                                
                                          #;`..@######################,,,,,,,,,,,,,,,@''''''';;;;;;;;;''@'.``````````.,#..````````..````@;;;';;;;;'@,.````````````````@+++++++++++++++++++++++#.```````````,,.````````````````````````````````````````                                                                
                                       +;`````.@######################@,,,,,,,,,,,,,,,@@''''';;;;;;;;;;'''@..````````..@,.```````....``.#;;'@';;'+@,..````````````````++++++++++++++++++++++++@````````````,,,.``````````````````````````````````````                                                                 
                                     ..```````.@#######################:,,,,,,,,,,,,,,,,@+''';;;;;;;;;;;'''#@..```````..@..``````.,..``@;;''';;'+@+..````````````````;+++++++++++++++++++++++++````````````.,,,...```````````````````````````````````                                                                 
                                   '#`````````.@#######################@,,,,,,,,,,,,,,,,,:@'';;;;;;;;;;;;;'''@@..``````.;@.``````.@..``@;;'@';'@@'.``````````````````'++++++++++++++++++++++++.````````````.,,,,,.``````````````````````````````````                                                                  
                                 ..```````````.@########################,,,,,,,,,,,,,,,,,,,@';;;;;;;;;;;;;;;'''@@#.````..@..````..@.``@;;'@'''@@#.```````````````````#+++++++++++++++++++++++#.````````````.,,,,,,.``.``````````````````````````````                                                                  
                                +`````````````.@+#######################@,,,,,,,,,,,,,,,,:##@#;;;;;;;;;;;;;;;;''''@@..`..'..``...,@.`@;;'@+''@@..````````````````````#+++++++++++++++++++++++@.````````````.,,,,,,.`...````````````````````````````                                                                   
                               ..``````````````'+########################,,,,,,,,,,,,,;@@@;.`+@;;;;;;;;;;;;;;;;;'''''@...,......,,@.#';'@@';@@..`````````````````````@+++++++++++++++++++++++@.`````````````,,,,@,,..,,.```````````````````````````                                                                   
                              #````````````````.#########################@,,,,,,,,,,@@#...`````;@;;;;;;;;;;;;;@;;;'''''@,,,..,:@#''@+;'@@';@@..`````````````````````.#+++++++++++++++++++++++#``````````````,,,,@,,,,,,.``````````````````````````                                                                    
                             @``````````````````'+########################:,,,,,,,.....``````````@@;;;;;;;;;;;;@@#;;;''''@@@'+''''''+'@'';@+``````````````````````@@@@@@#++++++++++++++++++++.``````````````.,,,@,,,,,,,.`````````````````````````                                                                    
                            @```````````````````.+########################@,,,......``````````````:@;;;;;;;;;;;;+@@#@';;;'''#@';;;''@@'';@```````````````````````@''''';;+@@@+++++++++++++++@.```````````````,,,@:,,,,,,.````````````````````````                                                                     
                           .@```````````````````.#####################+++++@...``````````````````````@#;;;;;;;;;;;+@@@@@@+;;';@;;;;''';;@````````````````````````@''''';;;;;;;;@@+++++++++++@.```````````````,,,@;,@,,,.`````````````````````````                                                                     
                          ''````````````````````.@+############++++++++++++##.`````````````````````````@#';;;;;;;;;;;;@@@@@#;;@+;;;''+;@`````````````````````````@''''';;;;;;;;;;;@++++++++++````````````````.,,@+:@,,..````````````````````````                                                                      
                         #@``````````````````````.++++++++++++++++++++++++++@.``````````````````````````#@@@';;;;;;;;;;;'@@@@#@#;;;''+@.``````````````````````````@#''';;;;;;;;;;;;;'@@+++++.````````````````.,,@#@:,,..````````````````````````                                                                      
                        ,@```````````````````````.@#+++++++++++++++++++++++++@.`````````````````````````````#@@@;;;;;;;;;;;;+#@+;;;''@@...`````````````````````````.@#;;;;;;;;;;;;;;;;;;;#@#..```````````````.,,@@@,,,..```````````````````````                                                                       
                        #`````````````````````````:@+++++++++++++++++++++++++@:``````````````````````````````````;@@@@@@@@+;;;@;;;;'''''#@.`````````````````````````#+++@#;;;;;;;;;;;;;;;;''''```````````````.,,@@',,,,.```````````````````````                                                                       
                       @```````````````````````````@++++++++++++++++++++++++++@.```````````````````````````````````````````,@@;;;;''@'''''@.```````````````````````@+++++++#@#;;;;;;;;;;;;''''.``````````````.,,'@:,,,,.``````````````````````                                                                        
                      #:```````````````````````````@+++++++++++++++++++++++++++@.```````````````````````````````````````````@''''''@'';;'''@.``````````````````````@+++++++++++##;;;;;;;;;''''.``````````````.,,:@,,,,,.``````````````````````                                                                        
                      @````````````````````````````@++++++++++++++++++++++++++++@.``````````````````````````````````````````''@@#@+#@;;;;;''@.`````````````````````@++++++++++++@+##;;;;;;''''.``````````````.,,';,,,,,.``````````````````````                                                                        
                      @`````````````````````````````@++++++++++++++++++++++++++++@,```````````````````````````````````````,@;;'@'';;@;;;;;'''.````````````````````;@++++++++++++++++++@#''''',```````````````.,,+:,,,,,.`````````````````````                                                                         
                      ``````````````````````````````#+++++++++++++++++++++++++++++@,``````````````````````````````````````@;;;@''@;;@@;;;;;''+````````````````````@#+++++++++++++++++++++@;;.````````````````.,,@,,,,,,,`````````````````````                                                                         
                      ```````````````````````````````@+++++++++++++++++++++++++++++@.````````````````````````````````````+;;;''';@;;@@;;;;;''@.```````````````````@++++++++++++++++++++++@.``````````````````.,,@,,,,,,,````````````````````                                                                          
                      ````````````````````````````````++++++++++++++++++++++++++++++@.```````````````````````````````````#;;'@'';@;;@#;;;;;''@.```````````````````@++++++++++++++++++++++@```````````````````..,@,,,,,,,````````````````````                                                                          
                      ````````````````````````````````#++++++++++++++++++++++++++++++@,`````````````````````````````````#;;;@'';;#;;;@;;;;;;''.``````````````````@+++++++++++++++++++++++;```````````````````..,@,,,,,,,````````````````````                                                                          
                      `````````````````````````````````#++++++++++++++++++++++++++++++@,````````````````````````````````@;;;+';;;;';;;@;;;;;''+``````````````..``@+++++++++++++++++++++++.```````````````````..,#,,,,,,,.``````````````````                                                                           
                      `````````````````````````````````.+++++++++++++++++++++++++++++++@.```````````````````````````````@;;''';;;;@;;;+;;;;;''@`````````````,.+##+++++++++++++++++++++++#.````````````````````.,+,,,,,,..``````````````````                                                                           
                      ``````````````````````````````````#+++++++++++++++++++++++++++++++@:``````````````````````````````+;;''';;;#:@;;;@;;;;''#````````````.@'''';@#++++++++++++++++++++@.````````````````````.,,,,,,,,..`````````````````                                                                            
                      ```````````````````````````````````#++++++++++++++++++++++++++++++#@+``.:@@+`````````````````````#;;;''';;;@,,+#;@;;;;''@````````````.#'''';;;+@#+++++++++++++++++'`````````````````````.,,,,,,,,.``````````````````                                                                            
                      ````````````````````````````````````#+++++++++++++++++++++++++++++++@..@+++@:````````````````````@;;;''';;'#,,,#@;@;;;''@````````````.''''';;;;;;'@@+++++++++++++#.`````````````````````.;,,,,,,,.``````````````````                                                                            
                       ````````````````````````````````````@+++++++++++++++++++++++++++++++@@++++#@````````````````````@;;;;;;;;@,,,,,,@@;;;''.````````````.@''';;;;;;;;;;#@#++++++++++@``````````````````````.+,,,,,,,``````````````````                                                                             
                        ```````````````````````````````````.@+++++++++++++++++++++++++++++#@'#++++@````````````````````+;;;;;;;+#,,;,,,.@;;;'@.````````````.@@';;;;;;;;;;;;;;+@#++++++#.``````````````````````,@,,,,,,,`````````````````                                                                              
                        `````````````..`````````````````````,++++++++++++++++++++++++++++#@;;'#+++'````````````````````;;;;;;;;@,,,+,,,,@;;;'@.`````````````.+##;;;;;;;;;;;;;;;;+@@+++@.``````````````````````,@:,,,,,,`````````````````                                                                              
                         ````````````..``````````````````````#+++++++++++++++++++++++++++@;;;;'@#@`````````````````````.@;;;;;@@,,;+,,,,@;;;',.``````````````@++#@';;;;;;;;;;;;;;;;'@@#``````````````````````.:@:,,,,,,````````````````                                                                               
                          ```````````...``````````````````````@+++++++++++++++++++++++++@+;;;;;;@```````````````````````@;;;;;@;,,+',,,,@;;'@..``````````````@++++++@@;;;;;;;;;;;;;;;''@'````````````````````,#@#,,,,,.````````````````                                                                               
                           ``````````...```````````````````````@+++++++++++++++++++++++@+;;;;;;@@.``````````````````````@;;;;'@.,,+:,,,,@;;'#.``````````````;++++++++++@#;;;;;;;;;;;;'''@```````````````````,,@@@,,,,..```````````````                                                                                
                            `````````.,.````````````````````````++++++++++++++++++++++@+;;;;;;@#+@;``````...````````````@;;;;@@.,,+,,,,,@;'@..``````````````@++++++++++++++@;;;;;;;;;'''#``````````````````.,,@#@,,,..``````````````                                                                                  
                             ``````.`.,.````````````````````````@++++++++++++++++++++@@;;;;;;@#+++@;````.,@@.```````````;;;;;@`.,,+,,,,,@+@,..``````````````+++++++++++++++++@';;;;;;'''+``````````````````,,'@#@,,,```````````````                                                                                   
                              `````..,,,.````````````````````````@++++++++++++++++++@@;;;;;;@@+++++@'`..@'''@.```````````@;;'@`.,,+,,,,,'@@,.``````````````@++++++++++++++++++++@@@''''@```````````````````,,@,##,,.``````````````                                                                                    
                               ````..,,,.`````````````````````````@++++++++++++++++#@;;;;;;#@+++++++@#,@''''@````````````@;;@.`..,,,,,,,,@@..``````````````++++++++++++++++++++++++#@@@.``````````````````,,,@,#,,,.`````````````                                                                                     
                               ````.,,,,..````````````````````````#@+++++++++++++++@;;;;;;'@+++++++++@@'''''@`````````````';@``..,,,,,,,,@@.``````````````++++++++++++++++++++++++++@.````````````````````,,@#,@,,,.````````````                                                                                      
                                ```.,,,,,..````````````````````````@++++++++++++++@';;;;;;@++++++++++@''''''+`````````````@;@```.,,,,,,,,,,.``````````````@+++++++++++++++++++++++++'````````````````````.,,@:,@,,,.```````````                                                                                       
                                 ...,,,,,,..````````````````````````@++++++++++++@;;;;;;;@++++++++++##''''''.`````````````@+@```.,,,,,,,,,,.``````````````+++++++++++++++++++++++++@.````````````````````.,:@,,@,,,.``````````                                                                                        
                                  ..,,,,,,,..````````````````````````;+++++++++++#;;;;;;##++++++++++@''';''@``````````````,@@```.,,@,,,,,,,..````````````@+++++++++++++++++++++++++@.````````````````````,,:@,,@,,,.`````````                                                                                         
                                   ,,,,,,,,,..```...``````````````````+++++++++#@;;;;;;#@++++++++++@''';;'#,```````````````@@```.,,@,,,,,,,,.````````````@+++++++++++++++++++++++++@.````````````````````,;@:,,@#,,.```````                                                                                           
                                    ,,,,,,,,,........``````````````````++++++++@;;;;;;'@++++++++++#'''';''#@.``````````````##```.,,@,,,,,,,,..``````````@++++++++++++++++++++++++++.`````````````````````,@@,,,@@,..``````                                                                                            
                                      ,,,,,,,,..,,,...``````````````````;+++++@;;;;;;'@+++++++++++@''';''@++@.``````````````#```.,,@,,,,,,,,,.`````````.#++++++++++++++++++++++++++.````````````````````.:@;,,,@;,,.`````                                                                                             
                                      ,,,,,,,,,.,,,,,..```````````````````#+##;;;;;;'#+++++++++++@''';;''++++@.`````````````````.,,@,,,,,,,,,.`````````@++++++++++++++++++++++++++.`````````````````````:@:,,,,@,,,.````;                                                                                             
                                       ,,,,,,,,,,,,,,,.```````````````````.@#;;;;;;+#++++++++++#@''';;''#+++++@..```````````````..,:,,,,,,,,,..````````@+++++++++++++++++++++++++'``````````````````..`.@#,,,..@,,,.```` .  `                                                                                         
                                        ,,,,,,,,,,,,,,,.```````````````````@;;;;;;##+++++++++++@''';;;'#+++++++#@.``````````````..,,,,,,,,,,,,.```````@+++++++++++++++++++++++++#.``````````````````...@@:,,,..@,,,..``   ``                                                                                          
                                         ,,,,,,,,,,,,,,,..`````````````````;;;;;;;@+++++++++++@''';;;'#++++++++++@,`````````````..,,#,,,,,,,,,..`````.++++++++++++++++++++++++++@.```````````....`....@@',,,,``@,,,..  ,,,  .  ::                                                                                     
                                          ,,,,,,,,,,,,,,,..````````````````+;;;;;@++++++++++++@'';;;'#++++++++++++@;````````````..,,@,,,,,,,,,,.`````@++++++++++++++++++++++++++.```````````.,,...,,,#@#,,,,,``@,,,.   :       `;   .,                                                                                
                                           ,,,,,,,,,,,,,,,..```````````````;@;;;@++++++++++++@'';;;;'++++++++++++++@#.```````````.,,@,,,,,,,,,,..````@+++++++++++++++++++++++++#.``````````.,,,,,,,,,@@:,,,,,``@,,     ,   ,,  `;;;;;;;,`                                                                             
                                           ,,,,,,,,,,,,,,,,...``````````````:@@@#@++++++++++@'';;;;'#+++++++++++++++#@.``````````.,,@,,,,,,,,,,,.```.++++++++++++++++++++++++++#``````````.,,,,,,,,,@@:,,,,,.``@.      .       `;;;;;;;;.                                                                             
                                            ,,,,,,,,,,,,,,,,,,,...`.`````````````@@++++++++@';;;;;'#++++++++++++++++++@.`````````.,,';,,,,,,,,,,.```@++++++++++++++++++++++++++.`````````.,,,,,,,,,:@:,,,,,,```     .`.   . .,   `;; ;;.                                                                              
                                             ,,,,,,,,,,,,,,,,,,,,....`````````````@@++++++@;;;;;;'#++++++++++++++++++++@'.```````..,,@,,,,,,,,,,..`@++++++++++++++++++++++++++#.````````..,,,,,,,,:@+,,,,,,.`   , ` , .  ,  `     ::`;.                                                                               
                                              ,,,,,,,,,,,,,,,,,,,,....````````````.@@++++#';;;;;;'++++++++++++++++++++++@@#```````.,,#,,,,,,,,,,,.+#++++++++++++++++++++++++++.````````..,,,,,,,,;@#,,,,,,,      .   `  `  `      ;`                                                                                  
                                               ,,,,,,,,,,,,,,,,,,,,,,..`````````````@@++#;;;;;;;'@++++++++++++++++++++++++@@#`````.,,;,,,,,,,,,,,.@++++++++++++++++++++++++++@.``````..,,,,,,,,,#@@,,,,,,,     .`. `   .                                                                                              
                                                ,,,,,,,,,,,,,,,,,,,,,,.``````````````;@@;;;;;;;'@+++++++++++++++++++++++++++@@;```.,,,,,,,,,,,,,,#++++++++++++++++++++++++++@.``````..,,,,,,,,,#@#,,,,,,         `,   ,                                                                                               
                                                ,,,,,,,,,,,,,,,,,,,,,,,.``..``````````#@;;;;;;'@++++++++++++++++++++++++++++++@@``..,,,,,,,,,,,,,#++++++++++++++++++++++++@@@.`````..,,,,,,,,,#+,,,,,,     .`  , `   ,                                                                                                
                                                  ,,,,,,,,,,,,,,,,,,,,,,,...``````````@+;;;;''+++++++++++++++++++++++++++++++++#@:..,,,,,,,,,,,,++++++++++++++++++++++++++@@.`````..,,,,,,,,,@;,,,,,,        ,.:   `.                                                                                                 
                                                  ,,,,,,,,,,,,,,,,,,,,,,,,...`````````@;;;;''##+++++++++++++++++++++++++++++++++#@@.,,,,,,,,,,,,#++++++++++++++++++++++++@@#.````..,,,,,,,,'@,,,,,,,   ,       :                                                                                                      
                                                   ,,,,,,,,,,,,,,,,,,,,,,,,,..````````,;;;;''#++++++++++++++++++++++++++++++++++++@@,,,,,,,,,,,@++++++++++++++++++++++++#@@.````..,,,,,,,+@;,,,,,,,    ,   :`  ..                                                                                                     
                                                   ,,,,,,,,,,,,,,,,,,,,,,,,,,,..```````'@;;@@++++++++++++++++++++++++++++++++++++++#@@,,,,,,,,@+++++++++++++++++++++++++@@:......,,,,,,#@',,,,,,,,       :`                                                                                                           
                                                   ,,,,,,,,,,,,,,,,,,,,,,,,,,,..`````````````@+++++++++++++++++++++++++++++++++++++++@@;,,,,,#+++++++++++++++++++++++++@@#....,,,,,,,,@,,,,,,,,,,       ,,`:`                                                                                                         
                                                   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,..`````````````@+++++++++++++++++++++++++++++++++++++++#@@,,,+#+++++++++++++++++++++++++@@...,,,,,,,,,,,,,,,,,,,,   .:`  :..                                                                                                           
                                                     ,,,,,,,,,,,,,,,,,,,,,,,,,,,,.`````````````@++++++++++++++++++++++++++++++++++++++++#@,,@+++++++++++++++++++++++++#@...,,,,,,,,,,,,,,,,,,,,    ` .:.                                                                                                              
                                                      ,,,,@,,,,,,,,,,,,,,,,,,,,,,,..````````````@++++++++++++++++++++++++++++++++++++++++++@++++++++++++++++++++++++++@@..,,,,,,,,,,,,,,,,,,,,    .``   ,`                                                                                                            
                                                       ,,,:#,,,,,,,,,,,,,,,,,,,,,,,....``````````#++++++++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++@..,,,,,,,,,,,,,,,,,,,,    ` , ;                                                                                                                
                                                        ,,,@#,,,,,,,,,,,,,,,,,,,,,,,,,....````````#+++++++++++++++++++++++++++++++++++++++@++++++++++++++++++++++++++@...,,,,,,,,,,,,,,,,,,,,    . :;:                                                                                                                
                                                         ,,#@@,,,,,,,,,,,,,,,,,,,,,,,,,,,,..```````##++++++++++++++++++++++++++++++++++++@++++++++++++++++++++++++++#,..,,,,,,,,,,,,,,,,,,,,     `,                                                                                                                   
                                                          ,:@@@:,,,,,,,,,,,,,,,,,,,,,,,,,,,,.````````@++++++++++++++++++++++++++++++++++@+++++++++++++++++++++++++++@.`.,,,,,,,,,,,,,,,,,,,       `,                                                                                                                  
                                                           ,:#@@:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.```````@#+++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++@.``.,,,,,,,,,,,,,,,,,,                                                                                                                            
                                                             ,'@@:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.```````+@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@.``.,,,,,,,,,,,,,,,,,                                                                                                                             
                                                              ,:#@@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.````````@+++++++++++++++++++++++++++##++++++++++++++++++++++++++@@.```.,,,,,,,,,,,,,,,,                                                                                                                              
                                                               ,,:@@:,,,,,,,,,,,,,,,,,,,,,,,,,,,,.````````@#++++++++++++++++++++++++#@+++++++++++++++++++++++++++@.````.,,,,,,,,,,,,,,,                                                                                                                               
                                                                ,,,,#@,,,,,,,,,,,,,,,,,,,,,,,,,,,,..````````@+++++++++++++++++++++++@+++++++++++++++++++++++++++@'.````..,,,,,,,,,,,,                                                                                                                                 
                                                                 ,,,,,#@,,,,,,,,,,,,,,,,,,,,,,,,,,,,.````````;@++++++++++++++++++++@++++++++++++++++++++++++++++@.``````.,,,,,,,,,,,                                                                                                                                  
                                                                  ,,,,,,;@,,,,,,,,,,,,,,,,,,,,,,,,,,..`````````@++++++++++++++++++@#+++++++++++++++++++++++++++@.```````..,,,,,,,,                                                                                                                                    
                                                                   ,,,,,,,;+,,,,,,,,,,,,,,,,,,,,,,,,.```````````#@+++++++++++++++@++++++++++++++++++++++++++++#@.````````..,,,,,                                                                                                                                      
                                                                     ,,,,,,,#:,,,,,,,,,,,,,,,,,,,,,,.`````````````@+++++++++++++@@++++++++++++++++++++++++++++@:..````````..,,                                                                                                                                        
                                                                        ,,,,,,#',,,,,,,,,,,,,,,,,,,,.``````````````#@++++++++++#+++++++++++++++++++++++++++++###@@..```````..                                                                                                                                         
                                                                            ,,,:@+,,,,,,,,,,,,,,,,,,..```````````````@++++++++@@+++++++++++++++++++++++++++++@####@@#.````                                                                                                                                            
                                                                              ,,,,@@@#;:::,:::,,,,:++:````````````````@@+++++@@++++++++++++++++++++++++++++++###++##@@.``                                                                                                                                             
                                                                                  ,,:::@@@@@@@@@@@@@#.``````````````````#@++@+++++++++++++++++++++++++++++++###++++##@@                                                                                                                                               
                                                                                      ,,,:::::,'++,,,.``````````````````:`'@#++++++++++++++++++++++++++++++@###+++++#                                                                                                                                                 
                                                                                        ,,,,,,,,,,,,..````````````````````,#++++++++++++++++++++++++++++++####+++++                                                                                                                                                   
                                                                                           ,.........````````````````````.@+++++++++++++++++++++++++++++++####++++                                                                                                                                                    
                                                                                             .``````````````````````````:@+++++++++++++++++++++++++++++++@###++                                                                                                                                                       
                                                                                                                                                  +++++++@#                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      fefefefefefeffefe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
#######################################################################################
 
 
 
 
 
 
 
 
 
 
 
 
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
########################################################################################################################################################################################################################################################################################################################################
#######################################################################################################################################################################################################################################################################################