ZAHN SOFTWARE

Modern Web, API, Mobile App Development

About

ZAHN software believes that software quality matters because software is valuable to society in that it improves the quality of life.

Developed by Stuart Zahn.

Solutions

Data

Data mining, scraping, collection and transformation. Data entry automation.

Visualizations

Business intelligience, visualization components, data grids, content-rich user interfaces.

Middleware

Integration and extension of existing software products. Laserfiche, Filebound, Alfresco.

Imaging

OCR, Leadtools, PDF

Industries

ZAHN Software has delivered document-centric, data-driven solutions for a wide array of industries.

  • ECM: Electronic Content Management
  • Document & Records Management
  • Retail
  • Financial
  • Entertainment
  • Startups

Technologies

Cloud-Hosted Enterprise Web Development

Single page applications in ReactJS and Typescript. ASP.NET MVC.

Microservice-Focused Rest APIs & Services

NodeJS, ASP.Net Web Api, .Net Core

Server-side Enterprise Business Applications

.Net Applications

Contact

                                                                                                                                                                                                        
                                                                                                  ````.,,,,,,,,.````                                                                                    
                                                                                           `,::::::::::::::::::::::::::::::,,                                                                           
                                                                                      `,::::::::::::::::::::::::::::::::::::,,,,`                                                                       
                                                                                  `,::::::::::::::::::::::::::::::::::::::::,,,,,,,`                                                                    
                                                                               .:::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,`                                                                 
                                                                            .::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,`                                                              
                                                                         .:::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,`                                                            
                                                                      `:::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,.                                                          
                                                                    ::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,::                                                        
                                                                 `:::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,''''.                                                      
                                                               .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,;'''''''`                                                    
                                                             .::::::::::::::::::::::::::::::::;;'''''+++''';;:::::::::::,,,,,,,,,,,,,,,,,,'''''''''';                                                   
                                                           .:::::::::::::::::::::::::::;'+########################+';:::,,,,,,,,,,,,,,,,;''''''''''''':                                                 
                                                         `::::::::::::::::::::::::;+####################################':,,,,,,,,,,,,,''''''''''''''''',                                               
                                                        :::::::::::::::::::::::'############################################+:,,,,,,,'''''''''''''''''''''                                              
                                                      ,:::::::::::::::::::::'###################################################':,:''''''''''''''''''''':::                                            
                                                    `::::::::::::::::::::;####################';,.``      `..,;+####################+''''''''''''''''''':::::                                           
                                                   ,:::::::::::::::::::'###############'.`                          .;+################+''''''''''''''':::::::,                                         
                                                 `:::::::::::::::::::+############+.                                     .'###############+'''''''''''::::::::::                                        
                                                ,::::::::::::::::::'###########,                                             .+##############+'''''''::::::::::::,                                      
                                               ::::::::::::::::::;#########+`                                                   `'#############+'''':::::::::::::::                                     
                                              ::::::::::::::::::########+`                                                         `+#############+:::::::::::::::::.                                   
                                            `:::::::::::::::::'#######,                                                               ,#############;::::::::::::::::,                                  
                                           ,:::::::::::::::::+#####'`                                                                   `+###########+:::::::::::::::::                                 
                                          ,:::::::::::::::::#####:                                                                         '###########;::::::::::::::::                                
                                         :::::::::::::::::;###+`                                                                             '##########+::::::::::::::::                               
                                        :::::::::::::::::'##+                                                                                 '##########+::::::::::::::::                              
                                       :::::::::::::::::+#'                                                                                   #############::::::::::::::::                             
                                      :::::::::::::::::+;                                                                                    ,##############::::::::::::::::                            
                                     :::::::::::::::::,                                                                                      ################::::::::::::::::                           
                                    .::::::::::::::::`                                                                                      .#################::::::::::::::::                          
                                   `::::::::::::::::,                                                                                       ###################::::::::::::::::                         
                                   ::::::::::::::::,                                                                                        ####################:::::::::::::::                         
                                  ::::::::::::::::,                                                                                        +####################+:::::::::::::::                        
                                 ::::::::::::::::`                                                                                         ######################'::::::::::::::.                       
                                `:::::::::::::::                                                                                          ;#######################;:::::::::::::.                       
                                ::::::::::::::,                                                                                           #########################:::::::::::::.                       
                               ::::::::::::::                                                                                             '#########################::::::::::::                        
                              `::::::::::::                                                                                                 ;#######################+:::::::::::                        
                              ::::::::::,                                                                                                     ,######################;:::::::::                         
                             `::::::::.                                                                                                         `+####################::::::::.                         
                             ::::::.                                                                                                               ;##################+::::::...                        
                            .:::`                                                                                                                    :#################'::::.....                       
                            `                                                                                                                          ,################:::,.....:                      
                                                                                                                                                         ,###############:,.....,:,                     
                                                                                                                                                           :#############'......:::`                    
                                                                                                                                                             '############,.....::::                    
                                                                                                                                                               +###########.....:::::                   
                                                                                                                                                                ,##########+...,:::::.                  
                                                                                                                                                                  ##########;..:::::::                  
                                                                                   .,;'''''''''''''''''''''';;,.                                                   ;#########..::::::::                 
                                                                             .;''''''''''''''''''''''''''''''''''''''';,                                            .#########.::::::::`                
                                                                        `;'''''''''''''''''''''''''''''''''''''''''''''''''':.                                        ########+:::::::::                
                                                                     ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';.                                    ########'::::::::`               
                                                                 .'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',                                 ########;::::::::               
                                                               ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',                              +#######::::::::`              
                                                            ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`                           +#######::::::::              
                                                          ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',                         +######':::::::`             
                                                        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                       #######::::::::             
                                                      :'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                     #######:::::::             
                                                    .''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                  .######'::::::`            
                                                   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':                ;######:::::::            
                                                 .''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`              +#####+::::::            
                                                ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''##               ######::::::,           
                                               ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+####:               ;######::::::           
                                              ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+#######                 ######::::::           
                                             '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''##########                 `#####+:::::.          
                                            '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''############,                  +#####::::::          
                                           '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+##############                    #####':::::          
                                          ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''#################                    '#####:::::`         
                                         ''''''++###################++'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+##################`                     #####:::::.         
                                        ;'+###############################+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''#####################                      +####+:::::         
                                       ,######################################+'''''''''''''''''''''''''''''''''''''''''''''''''''''''+######################,                      `#####:::::         
                                      ,###########################################''''''''''''''''''''''''''''''''''''''''''''''''''+########################                        #####:::::         
                                     `##############################################+'''''''''''''''''''''''''''''''''''''''''''''##########################,                        ,####;::::`        
                                    `#################################################''''''''''''''''''''''''''''''''''''''''''############################                          #####::::`        
                                    ################################################+'''''''''''''''''''''''''''''''''''''''''#############################                           '####::::,        
                                   ################################################'''''''''''''''''''''''''''''''''''''''''##############################`                           `####:::::        
                  :               +###############################################''''''''''''''''''''''''''''''''''''''''###############################                              ####;::::        
                `::              :##############################################+'''''''''''''''''''''''''''''''''''''''+##############################.                               ;###;::::        
               `:::             ,##############################################+''''''''''''''''''''''''''''''''''''''+#############################;                                  `###'::::        
               ::::             :#############################################'''''''''''''''''''''''''''''''''''''''#############################.                                     ####::::        
              :::::               ###########################################''''''''''''''''''''''''''''''''''''''############################:                                        '###::::`       
             .:::::                +#######################################+'''''''''''''''''''''''''''''''''''''+###########################`                                          ,###::::`       
             :::::,                 ,#########################+';;;''+####''''''''''''''''''''''''''''''''''''''##########################:                                              ###::::`       
            .:::::.                  `#################'.               `'''''''''''''''''''''''''''''''''''''+#########################.                                                ###::::,       
            ::::::`                    '###########;`                  `'''''''''''''''''''''''''''''''''''''########################'                                                   '##::::,       
            ::::::`                      '#####+`                     ,'''''''''''''''''''''''''''''''''''''#######################:                                                     ,##::::,       
            ::::::                                                   :''''''''''''''''''''''''''''''''''''''#####################.                                                        ##:::::       
           .::::::                                                  ''''''''''''''''''''''''''''''''''''''''''#################`                                                          #':::::       
           :::::::                                                 ''''''''''''''''''''''''''''''''''''''''''''+#############`                                                            +;:::::       
           :::::::                                                '''''''''''''''''''''''''''''''''''''''''''''''+#########`                                                              ;::::::       
           :::::::                                              `''''''''''''''''''''''''''''''''''''''''''''''''''######.                                                                .::::::       
           ::::::,                                             ,'''''''''''''''''''''''''''''''''''''''''''''''''''''##:                                                                   ::::::       
          `::::::`                                            :''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                                                    ::::::       
          .::::::                                            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                                                 .:::::,       
          ,::::::                                           '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':                                                               .:::::,       
          :::::::                                          '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.                                                             ::::::`       
          :::::::                                         ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`                                                           ::::::`       
          :::::::                                        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                                                          ::::::`       
          ::::::.                                      `''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',                                                        ::::::        
          ::::::`                                     `''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`                                                      ::::::        
          ::::::                                     `'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                                     ::::::        
          ::::::                                    `''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',                                                   ::::::        
         `::::::                                   `''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`                                                 ::::::        
         `::::::                                  `'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                               .::::::        
         .:::::;                                 `''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',                                             .:::::,        
         .:::::'                                `''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                                            .:::::`        
         .:::::+`                               ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;,                                          ,:::::`        
         .:::::+:                              '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;`                                        ,:::::         
         ,:::::+#                             '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;,                                       ,:::::         
         ,:::::+#                            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;`                                     ,::::          
         ,:::::+#`                          :''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;,                                    ,:::           
         .:::::+#:                         `''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;`                                  ,::            
         .:::::+#+                         '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;,                                 ,.             
         .:::::+##                        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;                                               
         .:::::+##`                      :'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;.                                             
         .:::::+##;                     `'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;:                                            
         `:::::'###                     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;`                                          
          :::::'###                    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;:                                         
          :::::;###:                  `'''''+####################+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;                                        
          :::::;####                  `  ;###############################'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;,                                      
          ::::::####                       +##################################+'''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:                                     
          ::::::####'                        +#####################################+'''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                                   
          ::::::#####                          '#######################################+''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:                                  
          .:::::#####.                           `+#########################################''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                                 
           :::::######                                `````````````````:;'+####################+'''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                               
           :::::+#####`                                                          `.;+##############+'''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,                              
           :::::+######                                                                  `;############+''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:                             
           ,::::'######.                                                                      `'##########+'''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                            
           `::::;#######                                                                          `'##########+''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                          
            :::::#######;                                                                             .+#########+'''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:                         
            :::::########                                                                                 :##########+''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                        
            `::::#########                                                                                   `'##########+'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                       
             ::::#########'                                                                                      :###########+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                     
             ,:::+#########`                                                                                        ,###########';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                    
              :::+##########                                                                                           .+##########';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:                   
              ,::'##########+                                                                                             `+##########';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                  
               :::###########+                                                                                               .+##########';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                 
               .::############'                                                                                                 .###########;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                
                ::#############'                                                                                                   :##########+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`              
                `:##############'                                                                                                     +##########';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.             
                 ,###############+                                                                                                      ,##########+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,            
                  +###############+                                                                                                        '##########;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:           
                  '#################                                                                                                         :##########';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:          
                  :##################.                                                                                                         .##########+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:         
                   ###################;                                                                                                           +##########;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:        
                   ####################+                                                                                                            ;##########;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:       
                   ######################:                                                                                                            ,##########;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:      
                   :::::,,,,##############+                                                                                                             .##########';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:     
                  `,,,,,,,,,;###############;                                                                                                             .##########;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;     
                  ,,,,,,,,,,,#################`                                                                                                             .##########;;;;;;;;;;;;;;;;;;;;;;;;;;;;     
                 `,,,,,,,,,,,:#################+                                                                                                              .##########;;;;;;;;;;;;;;;;;;;;;;;;;;     
                 ,,,,,,,,,,,,,+##################;                                                                                                              :##########;;;;;;;;;;;;;;;;;;;;;;;;     
                .,,,,,,,,,,,,,,####################,                                                                                                              '#########+;;;;;;;;;;;;;;;;;;;;;;     
                 ,,,,,,,,,,,,,,;#####################`                                                                                                              ##########+;;;;;;;;;;;;;;;;;;;;     
                  ,,,,,,,,,,,,,,######################;                                                                                                              `##########;;;;;;;;;;;;;;;;;;;     
                  .,,,,,,,,,,,,,,#####################+                                                                                                                :##########;;;;;;;;;;;;;;;;;     
                   ,,,,,,,,,,,,,,;#####################                                                                                                                  +#########+;;;;;;;;;;;;;;;     
                    ,,,,,,,,,,,,,,+####################                                                                                                                   `##########;;;;;;;;;;;;;;     
                    .,,,,,,,,,,,,,,############@@@@@@#'                                                                                                                     ;##########;;;;;;;;;;;;     
                     ,,,,,,,,,,,,,,,##########@@@@@@@,                                                                                                                        ##########;;;;;;;;;;;     
                      ,,,,,,,,,,,,,,:#########@@@@@@@                                                                                                                          ,##########;;;;;;;;;     
                       ,,,,,,,,,,,,,,;########@@@@@@;                                                                                                        `.                  ##########;;;;;;;;     
                        ,,,,,,,,,,,,,,;########@@@@'                                                                                                   `.:::::                    :##########;;;;;;     
                         ,,,,,,,,,,,,,,'#######+@#                                                                                                 `:::::::::                       ##########;;;;;     
                         .,,,,,,,,,,,,,,'########`                                                                                              .:::::::::::.                        '#########';;;     
                          .,,,,,,,,,,,,,,;########+                                                                                          `:::::::::::::,                          `##########;;     
                           .,,,,,,,,,,,,,,;#########,                                                                                      ,:::::::::::::::                             +#########;     
                            .,,,,,,,,,,,,,,,#########+                                                                                   ,::::::::::::::::                               :#########     
                             .,,,,,,,,,,,,,,:+#########'                                                                               `:::::::::::::::::                                 `########     
                              .,,,,,,,,,,,,,'''##########,                                                                            ::::::::::::::::::                                    #######     
                               .,,,,,,,,,,,;''''+##########,                                                                         ::::::::::::::::::                                      '#####     
                                `,,,,,,,,,,'''''''+##########,                                                                     .::::::::::::::::::                                        ,####     
                                  ,,,,,,,,;'''''''''+##########;                                                                  ,::::::::::::::::::                                          `###     
                                   ,,,,,,,''''''''''''###########+`                                                            ;#:::::::::::::::::::                                             ##     
                                    ,,,,,'''''''''''''''############:                                                      .+##+:::::::::::::::::::                                               #     
                                     `,,,'''''''''''''''''############+,                                               `;#####'::::::::::::::::::,                                                      
                                       ,''''''''''''''''''''+#############;`                                       `;+######+:::::::::::::::::::`                                                       
                                        ,'''''''''''''''''''''+##############+;.                               ,'##########;:::::::::::::::::::                                                         
                                          ;''''''''''''''''''''''+#################',.                  .,'+#############;:::::::::::::::::::,                                                          
                                           `''''''''''''''''''''''''###################################################:::::::::::::::::::::`                                                           
                                             `'''''''''''''''''''';::::'############################################;:::::::::::::::::::::,                                                             
                                               ,'''''''''''''''''::::::::::;+####################################;:::::::::::::::::::::::                                                               
                                                 ;''''''''''''''::::::::::::::::;'##########################+;:::::::::::::::::::::::::`                                                                
                                                   ''''''''''''::::::::::::::::::::::::;;;'#########+';;:::::::::::::::::::::::::::::`                                                                  
                                                    `'''''''';:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`                                                                    
                                                      `''''':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`                                                                      
                                                        ,''::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`                                                                        
                                                          ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`                                                                           
                                                             ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,                                                                              
                                                                ,:::::::::::::::::::::::::::::::::::::::::::::::::::::,                                                                                 
                                                                   `,::::::::::::::::::::::::::::::::::::::::::::::`                                                                                    
                                                                        ,:::::::::::::::::::::::::::::::::::::,                                                                                         
                                                                              ,,::::::::::::::::::::::::,