Skip to content

HiveLogoLovers/udfhivelogo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GenericUDFHiveLogo

What's this?

This is a simple UDF which substitutes every tuple with Hive logo.

Requirements

  • Hive 0.10.0

Installation

To build the JAR file of hivelogo, you need to install Maven (http://maven.apache.org), then type the following command:

$ mvn package

Then target/hivelogo-0.0.1-SNAPSHOT.jar is generated. To locally install the project, type

$ mvn install

To generate project files (.project, .classpath) for Eclipse, do

$ mvn eclipse:eclipse

then import the folder from your Eclipse. Next, open the preference page in Eclipse and add the CLASSPATH variable:

M2_REPO = $HOME/.m2/repository

where $HOME is your home directory.

How to use

You need to load UDF by using ADD JAR command and make function alias by using CREATE TEMPORARY FUNCTION command.

$ bin/hive
hive (default)> ADD JAR /home/ozawa/hivelogo-0.0.1-SNAPSHOT.jar;
Added /home/ozawa/hivelogo.jar to class path
Added resource: /home/ozawa/hivelogo.jar
hive (default)> CREATE TEMPORARY FUNCTION hivelogo AS 'org.apache.hadoop.hive.contrib.udf.GenericUDFHiveLogo';
OK
Time taken: 0.167 seconds

Now, it's ready start. Let's see the examples. You have a employees table as follows:

hive (default)> describe employees;
OK
col_name	data_type	comment
name	string
salary	float
subordinates	array<string>
deductions	map<string,float>
address	struct<street:string,city:string,state:string,zip:int>
Time taken: 0.223 seconds

Let's execute normal select query.

hive (default)> select name, salary from employees;
MapReduce Jobs Launched:
Job 0: Map: 1   Cumulative CPU: 1.29 sec   HDFS Read: 1003 HDFS Write: 109 SUCCESSTotal MapReduce CPU Time Spent: 1 seconds 290 msec
OK
name	salary
John Doe	100000.0
Mary Smith	80000.0
Todd Jones	70000.0
Bill King	60000.0
Boss Man	200000.0
Fred Finance	150000.0
Stacy Accountant	60000.0
Time taken: 14.089 seconds

OK, it's time to use hivelogo command.

hive (default)> select hivelogo(name,salary) from employees;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_1360856776655_0031, Tracking URL = http://ozahd.localdomain:8088/proxy/application_1360856776655_0031/
Kill Command = /home/ozawa/hadoop/bin/hadoop job  -kill job_1360856776655_0031
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
2013-02-15 20:32:59,115 Stage-1 map = 0%,  reduce = 0%
2013-02-15 20:33:05,800 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 1.47 sec
MapReduce Total cumulative CPU time: 1 seconds 470 msec
Ended Job = job_1360856776655_0031
MapReduce Jobs Launched:
Job 0: Map: 1   Cumulative CPU: 1.47 sec   HDFS Read: 1003 HDFS Write: 2587 SUCCESS
Total MapReduce CPU Time Spent: 1 seconds 470 msec
OK
_c0
                                                                                                                                                                  
                                                                                                                                                                  
                                 :@##########&|'                                                                                                                  
                               ;@#@|`......:!$######&;.                                                                                                           
                             ;@#%`................'|@#####%`                                                                                                      
                           :@#@;.......................`;&####|.                                                                                                  
                         '&##$'.............................`!@###%`                         .`:::'`                                                              
                       `$##@!''''''''''``.......................'%####$`                '&##@%|!|%@###@##&'                                                       
                     `$##@!''''''''''''''''''``.....................'%###&'          .%#$:'''''''''''`...'$#$`                                                    
         '%@$!;;|%@####&;'''''''''''''''''''''''''''`...................:$##@;     .%#|:'''''''''''`.`''`..:&#$`                                                  
       !##############&|:'''''''''''''''''''''''''''''''''`.................;&##&&##|'''''''''''''''`.':''`..;@#|                                                 
     .%##&;'''''''''':!%@##@|:''''''''''''''''''''''''''''''''''`..............`|###@|:''''''''''''''`'$$:'`...!#&'                                               
    .%#@!''''''''''''''''''':|&@|:'''''''''''''''''''''''''''''''''''``............:&###%:''''''''''''`'$#|''`..`$#!                                              
   .%#&;''''''''''''''''''''''''';%$;''''''''''''''''''''''''''''''''''''''`..........:&##@|'''''''''''``|#%'''`..!#|                                             
   !#&;'''''''''''''''''''''''''''''':!!:''''''''''''''''''''''''''''''''''''''`.........|###%:''''''''''`;&%'''`..:&%.                                           
  :@@!''''''''''''''''''''''''''''''''''''''''''````'''''''''''''''''''''''''''''''`.......!###$:'''''''''`;&|''''..'$%.                                          
  |#$;'''''''''''''''''''''''''''''''''''''''''''''''`....``'''''''''''''''''''''''''`......`%##|''''''''''`|$:'''`..:&%.                                         
 `$#$:''''''''''''''''''''''''''''''''''''''''''''''''''''`...'''`''':::::'''''''''''''......`%#$:'''''''''''|!''''`..!#%.                                        
 .%#&!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''`......':!%&######@|:''''`.....'$#|''''''''''';!''''`..;@#;                                        
  ;##%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``....... `%###%''''`.....;@$:''''''''''';:'''`..|#|                                         
   |#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''...'%#########|'''''`....|&!''''''''''''''''`.:&$`                                         
    |#$:''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..............'%###|'''''`...'$%''''''''''''''''.`%&'                                          
     ;#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``...........!#@!''''''...;%;''''''''''''''`.!#;                                           
      `$#|'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.....`%&;''''''`..|$:'''''''''''''`;@|                                            
        ;@@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`...!%:''''''`.'&#@!''''''''''':$@:                                            
          !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..:!''''''''`;;'';;'''''''''%#$`                                            
            !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..`''''''''::'''''''''''':$#|                                             
              !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.`''''''''::''''''''''''|#!                                             
               .%#$:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''''''''''''''''':$#@:                                           
                 !#&;'''''''''''''''''''''''''''''''''''''''''''''''''':;||:'''''''''''''''''''''''''''''''''''''''!|$#%.                                         
                  ;#&;''''''''''''''''''''''''''''''''''''''''':|$@#######%''''''''''''''''''''''''''''''''''''''''''|##%.                                        
                   !#$:''''''''''''''''''''''''''''''''';%@##############@!''''''''''''''''''''''''':::::'''''''''''':%##|                                        
                    !#%''''''''''''''''''''''''''':!&####################&;''''''''''''''''''''''|#$!:'''''''''''''::;;%##!                                       
                    .%@!''''''''''''''''''''':|@####$;'''!@##############$;''''''''''''''''''''';!:'''''''''''''''''''':|##|                                      
                     `&&|!!;:::''''''':!%&###$;|$:.`''''''%##############$:'''''''''''''''''''':::'''''''''''''''''''''''!@#%.                                    
                      .:!|$&@#######@$!'     :@&:.`''''''':$#############$;'''''''''''''''''''''''''''''''''''''''''''''''|@#|                                    
                                            |##@;`''''''''';&############&;''''''''''''''''''''''''!@#####&!:''''''''''''':%#@:                                   
                                          .%####%'''''''''''!@###########@!''''''''''''''''''''':::|&$&####|:'''''''';!!!!;!@#!     .|@$:                         
                                          |#####&;'''''''''''|############%:'''''''''''''''''''''':!'.;&###@$!:'''''':!!$#####;  ;@###@###!                       
                                         !#######%:'''''''''''%############@|''''''''''''''''''''';|!::''''''''''''':!||$#########$;::||%#@:                      
                                        '&########|''''''''''''%###############$;''''''''''''''''::'''''''''''''':|@#@$|;!@&;;$$%%&##|:'!@&'                      
                                        ;@#########|''''''''''':%###################%;''''''''''''''''''''''''''!|:';&#####|''''''''''':%#%.                      
                                       `:'|#########%''''''''''':%#################%:'''''''''''''''''''''''''::'''%%:''!@%:'''''''''':;&#;                       
                                       :;..!#########$:'''''''''':%###############&;''''''''''''''''''''''''''''':!;''';&$:''''''''''':|@&'                       
                                       :;...:&#########|'''''''''''%##############%'''''''''''''''''''''''''''''::'''';$|'''''''''''':;$#!                        
                                       :;....`|##########|''''''''''%#############%''''''''''''''''''''''''''''''''''!!'''''''''''''::%#&'                        
                                       :;.....`:$##########$:''''''''|############$;'''''''''''''''''''''''''''''''''''''''''''''''::|@#!                         
                                       ';.....`'';&###########|:''''''!&###########@!'''''''';$&|!;:''''''''''''''''''''''''''''''':!@#%.                         
                                       `%!....`'''':%###########@|:'''':$############$;''''';;:'|$;''''''''''''''''''''''''''''''::|@#&'                          
                                        |##|`.`''''''';&###########@|:'''!@############$;''''''!@##%:''''''''''''''''''''''''''':;%##@:                           
                                        :####$'`''''''''':%############|:'';$###########$;''':$######&;'''''''''''''''''''''''::;$##&'                            
                                        `$######|:''''''''''':|@##########$;'|###########$:';&#########@|:'''''''''''''''''':;;%###|                              
                                         ;########@!'''''''''''''':|&##########@:      '&#%:$#######@||@##&!::'''''''''''::;;%###%.                               
                                         `$##########@!''''''''''''''''':;|&####@:      '&#$;%&%%$%!!@#$'!@###@%!;;::;;;;!$####|                                  
                                          :##############&!:'''''''''''''''%#@&###%       |####@&&###&'     .|@#############$`                                    
                                           ;!'$################&|:'''''''';&#@: |###|.       `;|%|:                  ...                                          
                                            ;:..`;@###################$|:'!@##|    :$##%`      .``````...``````...````````````````    .```````````````````````    
                                             :'...`'';$########################;               |######|`|######|`;@#####$:!######$'  .|######|'$#############$`   
                                              ''...`'''''';%@###################|              |######|`|######|`;@#####$''$#####@;  `$#####&:`%#############$`   
                                               `:...`'''''''''''':!%$@#################@$!.    |######|`|######|`;@#####$'.%######%. :&#####%``%#############$`   
                                                 !&!`.`''''''''''''''''''''''%####!            |######|`|######|`;@#####$' ;@#####$'.!######! `%######$!!!!!!;`   
                                                   |###&!'''''''''''''''''''''!@###!           |######|`|######|`;@#####$` '$#####@;`%#####$' `%######!           
                                                     |######@$!:''''''''''''''';&###;          |######@&@######|`;@#####$`  |######%:$#####|. `%#########&;       
                                                       :@############################&!'       |###############|`;@#####$`  :&#####@&#####@;  `%#########@;       
                                                          !###########################$;'`..  .!@@&&&&$$%||!;;:'`;@#####$`  `%############$`  `%#########@;       
                                                             !@###############&%!:';&##################&!;!&###|`;@#####$`   !############!   `%#########@;       
                                                                `!;`.`'''''''''''''''%###########&!;!$!`|######|`;@#####$`   '&##########&:   `%#####@;           
                                                                     '!;`.``''''''''`!@####&|:'|######|`|######|`;@#####$`   .%##########%.   `%#####@!```````    
                                                                           '|$&&$%$@@$|:`.     |######|`|######|`;@#####$`    ;@########@;    `%#############&'   
                                                                                               |######|`|######|`;@#####$`    '$########$'    .%#############&'   
                                                                                               |######|`|######|`;@#####$`     |########|     `%#############&'   
                                                                                               ;%$$$$%;`;%$$$$%;.:%$$$$$|`     '|$$$$$$|'     .!$$$$$$$$$$$$$|`   

                                                                                                                                                                  
                                                                                                                                                                  
                                 :@##########&|'                                                                                                                  
                               ;@#@|`......:!$######&;.                                                                                                           
                             ;@#%`................'|@#####%`                                                                                                      
                           :@#@;.......................`;&####|.                                                                                                  
                         '&##$'.............................`!@###%`                         .`:::'`                                                              
                       `$##@!''''''''''``.......................'%####$`                '&##@%|!|%@###@##&'                                                       
                     `$##@!''''''''''''''''''``.....................'%###&'          .%#$:'''''''''''`...'$#$`                                                    
         '%@$!;;|%@####&;'''''''''''''''''''''''''''`...................:$##@;     .%#|:'''''''''''`.`''`..:&#$`                                                  
       !##############&|:'''''''''''''''''''''''''''''''''`.................;&##&&##|'''''''''''''''`.':''`..;@#|                                                 
     .%##&;'''''''''':!%@##@|:''''''''''''''''''''''''''''''''''`..............`|###@|:''''''''''''''`'$$:'`...!#&'                                               
    .%#@!''''''''''''''''''':|&@|:'''''''''''''''''''''''''''''''''''``............:&###%:''''''''''''`'$#|''`..`$#!                                              
   .%#&;''''''''''''''''''''''''';%$;''''''''''''''''''''''''''''''''''''''`..........:&##@|'''''''''''``|#%'''`..!#|                                             
   !#&;'''''''''''''''''''''''''''''':!!:''''''''''''''''''''''''''''''''''''''`.........|###%:''''''''''`;&%'''`..:&%.                                           
  :@@!''''''''''''''''''''''''''''''''''''''''''````'''''''''''''''''''''''''''''''`.......!###$:'''''''''`;&|''''..'$%.                                          
  |#$;'''''''''''''''''''''''''''''''''''''''''''''''`....``'''''''''''''''''''''''''`......`%##|''''''''''`|$:'''`..:&%.                                         
 `$#$:''''''''''''''''''''''''''''''''''''''''''''''''''''`...'''`''':::::'''''''''''''......`%#$:'''''''''''|!''''`..!#%.                                        
 .%#&!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''`......':!%&######@|:''''`.....'$#|''''''''''';!''''`..;@#;                                        
  ;##%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``....... `%###%''''`.....;@$:''''''''''';:'''`..|#|                                         
   |#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''...'%#########|'''''`....|&!''''''''''''''''`.:&$`                                         
    |#$:''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..............'%###|'''''`...'$%''''''''''''''''.`%&'                                          
     ;#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``...........!#@!''''''...;%;''''''''''''''`.!#;                                           
      `$#|'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.....`%&;''''''`..|$:'''''''''''''`;@|                                            
        ;@@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`...!%:''''''`.'&#@!''''''''''':$@:                                            
          !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..:!''''''''`;;'';;'''''''''%#$`                                            
            !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..`''''''''::'''''''''''':$#|                                             
              !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.`''''''''::''''''''''''|#!                                             
               .%#$:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''''''''''''''''':$#@:                                           
                 !#&;'''''''''''''''''''''''''''''''''''''''''''''''''':;||:'''''''''''''''''''''''''''''''''''''''!|$#%.                                         
                  ;#&;''''''''''''''''''''''''''''''''''''''''':|$@#######%''''''''''''''''''''''''''''''''''''''''''|##%.                                        
                   !#$:''''''''''''''''''''''''''''''''';%@##############@!''''''''''''''''''''''''':::::'''''''''''':%##|                                        
                    !#%''''''''''''''''''''''''''':!&####################&;''''''''''''''''''''''|#$!:'''''''''''''::;;%##!                                       
                    .%@!''''''''''''''''''''':|@####$;'''!@##############$;''''''''''''''''''''';!:'''''''''''''''''''':|##|                                      
                     `&&|!!;:::''''''':!%&###$;|$:.`''''''%##############$:'''''''''''''''''''':::'''''''''''''''''''''''!@#%.                                    
                      .:!|$&@#######@$!'     :@&:.`''''''':$#############$;'''''''''''''''''''''''''''''''''''''''''''''''|@#|                                    
                                            |##@;`''''''''';&############&;''''''''''''''''''''''''!@#####&!:''''''''''''':%#@:                                   
                                          .%####%'''''''''''!@###########@!''''''''''''''''''''':::|&$&####|:'''''''';!!!!;!@#!     .|@$:                         
                                          |#####&;'''''''''''|############%:'''''''''''''''''''''':!'.;&###@$!:'''''':!!$#####;  ;@###@###!                       
                                         !#######%:'''''''''''%############@|''''''''''''''''''''';|!::''''''''''''':!||$#########$;::||%#@:                      
                                        '&########|''''''''''''%###############$;''''''''''''''''::'''''''''''''':|@#@$|;!@&;;$$%%&##|:'!@&'                      
                                        ;@#########|''''''''''':%###################%;''''''''''''''''''''''''''!|:';&#####|''''''''''':%#%.                      
                                       `:'|#########%''''''''''':%#################%:'''''''''''''''''''''''''::'''%%:''!@%:'''''''''':;&#;                       
                                       :;..!#########$:'''''''''':%###############&;''''''''''''''''''''''''''''':!;''';&$:''''''''''':|@&'                       
                                       :;...:&#########|'''''''''''%##############%'''''''''''''''''''''''''''''::'''';$|'''''''''''':;$#!                        
                                       :;....`|##########|''''''''''%#############%''''''''''''''''''''''''''''''''''!!'''''''''''''::%#&'                        
                                       :;.....`:$##########$:''''''''|############$;'''''''''''''''''''''''''''''''''''''''''''''''::|@#!                         
                                       ';.....`'';&###########|:''''''!&###########@!'''''''';$&|!;:''''''''''''''''''''''''''''''':!@#%.                         
                                       `%!....`'''':%###########@|:'''':$############$;''''';;:'|$;''''''''''''''''''''''''''''''::|@#&'                          
                                        |##|`.`''''''';&###########@|:'''!@############$;''''''!@##%:''''''''''''''''''''''''''':;%##@:                           
                                        :####$'`''''''''':%############|:'';$###########$;''':$######&;'''''''''''''''''''''''::;$##&'                            
                                        `$######|:''''''''''':|@##########$;'|###########$:';&#########@|:'''''''''''''''''':;;%###|                              
                                         ;########@!'''''''''''''':|&##########@:      '&#%:$#######@||@##&!::'''''''''''::;;%###%.                               
                                         `$##########@!''''''''''''''''':;|&####@:      '&#$;%&%%$%!!@#$'!@###@%!;;::;;;;!$####|                                  
                                          :##############&!:'''''''''''''''%#@&###%       |####@&&###&'     .|@#############$`                                    
                                           ;!'$################&|:'''''''';&#@: |###|.       `;|%|:                  ...                                          
                                            ;:..`;@###################$|:'!@##|    :$##%`      .``````...``````...````````````````    .```````````````````````    
                                             :'...`'';$########################;               |######|`|######|`;@#####$:!######$'  .|######|'$#############$`   
                                              ''...`'''''';%@###################|              |######|`|######|`;@#####$''$#####@;  `$#####&:`%#############$`   
                                               `:...`'''''''''''':!%$@#################@$!.    |######|`|######|`;@#####$'.%######%. :&#####%``%#############$`   
                                                 !&!`.`''''''''''''''''''''''%####!            |######|`|######|`;@#####$' ;@#####$'.!######! `%######$!!!!!!;`   
                                                   |###&!'''''''''''''''''''''!@###!           |######|`|######|`;@#####$` '$#####@;`%#####$' `%######!           
                                                     |######@$!:''''''''''''''';&###;          |######@&@######|`;@#####$`  |######%:$#####|. `%#########&;       
                                                       :@############################&!'       |###############|`;@#####$`  :&#####@&#####@;  `%#########@;       
                                                          !###########################$;'`..  .!@@&&&&$$%||!;;:'`;@#####$`  `%############$`  `%#########@;       
                                                             !@###############&%!:';&##################&!;!&###|`;@#####$`   !############!   `%#########@;       
                                                                `!;`.`'''''''''''''''%###########&!;!$!`|######|`;@#####$`   '&##########&:   `%#####@;           
                                                                     '!;`.``''''''''`!@####&|:'|######|`|######|`;@#####$`   .%##########%.   `%#####@!```````    
                                                                           '|$&&$%$@@$|:`.     |######|`|######|`;@#####$`    ;@########@;    `%#############&'   
                                                                                               |######|`|######|`;@#####$`    '$########$'    .%#############&'   
                                                                                               |######|`|######|`;@#####$`     |########|     `%#############&'   
                                                                                               ;%$$$$%;`;%$$$$%;.:%$$$$$|`     '|$$$$$$|'     .!$$$$$$$$$$$$$|`   

                                                                                                                                                                  
                                                                                                                                                                  
                                 :@##########&|'                                                                                                                  
                               ;@#@|`......:!$######&;.                                                                                                           
                             ;@#%`................'|@#####%`                                                                                                      
                           :@#@;.......................`;&####|.                                                                                                  
                         '&##$'.............................`!@###%`                         .`:::'`                                                              
                       `$##@!''''''''''``.......................'%####$`                '&##@%|!|%@###@##&'                                                       
                     `$##@!''''''''''''''''''``.....................'%###&'          .%#$:'''''''''''`...'$#$`                                                    
         '%@$!;;|%@####&;'''''''''''''''''''''''''''`...................:$##@;     .%#|:'''''''''''`.`''`..:&#$`                                                  
       !##############&|:'''''''''''''''''''''''''''''''''`.................;&##&&##|'''''''''''''''`.':''`..;@#|                                                 
     .%##&;'''''''''':!%@##@|:''''''''''''''''''''''''''''''''''`..............`|###@|:''''''''''''''`'$$:'`...!#&'                                               
    .%#@!''''''''''''''''''':|&@|:'''''''''''''''''''''''''''''''''''``............:&###%:''''''''''''`'$#|''`..`$#!                                              
   .%#&;''''''''''''''''''''''''';%$;''''''''''''''''''''''''''''''''''''''`..........:&##@|'''''''''''``|#%'''`..!#|                                             
   !#&;'''''''''''''''''''''''''''''':!!:''''''''''''''''''''''''''''''''''''''`.........|###%:''''''''''`;&%'''`..:&%.                                           
  :@@!''''''''''''''''''''''''''''''''''''''''''````'''''''''''''''''''''''''''''''`.......!###$:'''''''''`;&|''''..'$%.                                          
  |#$;'''''''''''''''''''''''''''''''''''''''''''''''`....``'''''''''''''''''''''''''`......`%##|''''''''''`|$:'''`..:&%.                                         
 `$#$:''''''''''''''''''''''''''''''''''''''''''''''''''''`...'''`''':::::'''''''''''''......`%#$:'''''''''''|!''''`..!#%.                                        
 .%#&!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''`......':!%&######@|:''''`.....'$#|''''''''''';!''''`..;@#;                                        
  ;##%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``....... `%###%''''`.....;@$:''''''''''';:'''`..|#|                                         
   |#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''...'%#########|'''''`....|&!''''''''''''''''`.:&$`                                         
    |#$:''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..............'%###|'''''`...'$%''''''''''''''''.`%&'                                          
     ;#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``...........!#@!''''''...;%;''''''''''''''`.!#;                                           
      `$#|'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.....`%&;''''''`..|$:'''''''''''''`;@|                                            
        ;@@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`...!%:''''''`.'&#@!''''''''''':$@:                                            
          !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..:!''''''''`;;'';;'''''''''%#$`                                            
            !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..`''''''''::'''''''''''':$#|                                             
              !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.`''''''''::''''''''''''|#!                                             
               .%#$:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''''''''''''''''':$#@:                                           
                 !#&;'''''''''''''''''''''''''''''''''''''''''''''''''':;||:'''''''''''''''''''''''''''''''''''''''!|$#%.                                         
                  ;#&;''''''''''''''''''''''''''''''''''''''''':|$@#######%''''''''''''''''''''''''''''''''''''''''''|##%.                                        
                   !#$:''''''''''''''''''''''''''''''''';%@##############@!''''''''''''''''''''''''':::::'''''''''''':%##|                                        
                    !#%''''''''''''''''''''''''''':!&####################&;''''''''''''''''''''''|#$!:'''''''''''''::;;%##!                                       
                    .%@!''''''''''''''''''''':|@####$;'''!@##############$;''''''''''''''''''''';!:'''''''''''''''''''':|##|                                      
                     `&&|!!;:::''''''':!%&###$;|$:.`''''''%##############$:'''''''''''''''''''':::'''''''''''''''''''''''!@#%.                                    
                      .:!|$&@#######@$!'     :@&:.`''''''':$#############$;'''''''''''''''''''''''''''''''''''''''''''''''|@#|                                    
                                            |##@;`''''''''';&############&;''''''''''''''''''''''''!@#####&!:''''''''''''':%#@:                                   
                                          .%####%'''''''''''!@###########@!''''''''''''''''''''':::|&$&####|:'''''''';!!!!;!@#!     .|@$:                         
                                          |#####&;'''''''''''|############%:'''''''''''''''''''''':!'.;&###@$!:'''''':!!$#####;  ;@###@###!                       
                                         !#######%:'''''''''''%############@|''''''''''''''''''''';|!::''''''''''''':!||$#########$;::||%#@:                      
                                        '&########|''''''''''''%###############$;''''''''''''''''::'''''''''''''':|@#@$|;!@&;;$$%%&##|:'!@&'                      
                                        ;@#########|''''''''''':%###################%;''''''''''''''''''''''''''!|:';&#####|''''''''''':%#%.                      
                                       `:'|#########%''''''''''':%#################%:'''''''''''''''''''''''''::'''%%:''!@%:'''''''''':;&#;                       
                                       :;..!#########$:'''''''''':%###############&;''''''''''''''''''''''''''''':!;''';&$:''''''''''':|@&'                       
                                       :;...:&#########|'''''''''''%##############%'''''''''''''''''''''''''''''::'''';$|'''''''''''':;$#!                        
                                       :;....`|##########|''''''''''%#############%''''''''''''''''''''''''''''''''''!!'''''''''''''::%#&'                        
                                       :;.....`:$##########$:''''''''|############$;'''''''''''''''''''''''''''''''''''''''''''''''::|@#!                         
                                       ';.....`'';&###########|:''''''!&###########@!'''''''';$&|!;:''''''''''''''''''''''''''''''':!@#%.                         
                                       `%!....`'''':%###########@|:'''':$############$;''''';;:'|$;''''''''''''''''''''''''''''''::|@#&'                          
                                        |##|`.`''''''';&###########@|:'''!@############$;''''''!@##%:''''''''''''''''''''''''''':;%##@:                           
                                        :####$'`''''''''':%############|:'';$###########$;''':$######&;'''''''''''''''''''''''::;$##&'                            
                                        `$######|:''''''''''':|@##########$;'|###########$:';&#########@|:'''''''''''''''''':;;%###|                              
                                         ;########@!'''''''''''''':|&##########@:      '&#%:$#######@||@##&!::'''''''''''::;;%###%.                               
                                         `$##########@!''''''''''''''''':;|&####@:      '&#$;%&%%$%!!@#$'!@###@%!;;::;;;;!$####|                                  
                                          :##############&!:'''''''''''''''%#@&###%       |####@&&###&'     .|@#############$`                                    
                                           ;!'$################&|:'''''''';&#@: |###|.       `;|%|:                  ...                                          
                                            ;:..`;@###################$|:'!@##|    :$##%`      .``````...``````...````````````````    .```````````````````````    
                                             :'...`'';$########################;               |######|`|######|`;@#####$:!######$'  .|######|'$#############$`   
                                              ''...`'''''';%@###################|              |######|`|######|`;@#####$''$#####@;  `$#####&:`%#############$`   
                                               `:...`'''''''''''':!%$@#################@$!.    |######|`|######|`;@#####$'.%######%. :&#####%``%#############$`   
                                                 !&!`.`''''''''''''''''''''''%####!            |######|`|######|`;@#####$' ;@#####$'.!######! `%######$!!!!!!;`   
                                                   |###&!'''''''''''''''''''''!@###!           |######|`|######|`;@#####$` '$#####@;`%#####$' `%######!           
                                                     |######@$!:''''''''''''''';&###;          |######@&@######|`;@#####$`  |######%:$#####|. `%#########&;       
                                                       :@############################&!'       |###############|`;@#####$`  :&#####@&#####@;  `%#########@;       
                                                          !###########################$;'`..  .!@@&&&&$$%||!;;:'`;@#####$`  `%############$`  `%#########@;       
                                                             !@###############&%!:';&##################&!;!&###|`;@#####$`   !############!   `%#########@;       
                                                                `!;`.`'''''''''''''''%###########&!;!$!`|######|`;@#####$`   '&##########&:   `%#####@;           
                                                                     '!;`.``''''''''`!@####&|:'|######|`|######|`;@#####$`   .%##########%.   `%#####@!```````    
                                                                           '|$&&$%$@@$|:`.     |######|`|######|`;@#####$`    ;@########@;    `%#############&'   
                                                                                               |######|`|######|`;@#####$`    '$########$'    .%#############&'   
                                                                                               |######|`|######|`;@#####$`     |########|     `%#############&'   
                                                                                               ;%$$$$%;`;%$$$$%;.:%$$$$$|`     '|$$$$$$|'     .!$$$$$$$$$$$$$|`   

                                                                                                                                                                  
                                                                                                                                                                  
                                 :@##########&|'                                                                                                                  
                               ;@#@|`......:!$######&;.                                                                                                           
                             ;@#%`................'|@#####%`                                                                                                      
                           :@#@;.......................`;&####|.                                                                                                  
                         '&##$'.............................`!@###%`                         .`:::'`                                                              
                       `$##@!''''''''''``.......................'%####$`                '&##@%|!|%@###@##&'                                                       
                     `$##@!''''''''''''''''''``.....................'%###&'          .%#$:'''''''''''`...'$#$`                                                    
         '%@$!;;|%@####&;'''''''''''''''''''''''''''`...................:$##@;     .%#|:'''''''''''`.`''`..:&#$`                                                  
       !##############&|:'''''''''''''''''''''''''''''''''`.................;&##&&##|'''''''''''''''`.':''`..;@#|                                                 
     .%##&;'''''''''':!%@##@|:''''''''''''''''''''''''''''''''''`..............`|###@|:''''''''''''''`'$$:'`...!#&'                                               
    .%#@!''''''''''''''''''':|&@|:'''''''''''''''''''''''''''''''''''``............:&###%:''''''''''''`'$#|''`..`$#!                                              
   .%#&;''''''''''''''''''''''''';%$;''''''''''''''''''''''''''''''''''''''`..........:&##@|'''''''''''``|#%'''`..!#|                                             
   !#&;'''''''''''''''''''''''''''''':!!:''''''''''''''''''''''''''''''''''''''`.........|###%:''''''''''`;&%'''`..:&%.                                           
  :@@!''''''''''''''''''''''''''''''''''''''''''````'''''''''''''''''''''''''''''''`.......!###$:'''''''''`;&|''''..'$%.                                          
  |#$;'''''''''''''''''''''''''''''''''''''''''''''''`....``'''''''''''''''''''''''''`......`%##|''''''''''`|$:'''`..:&%.                                         
 `$#$:''''''''''''''''''''''''''''''''''''''''''''''''''''`...'''`''':::::'''''''''''''......`%#$:'''''''''''|!''''`..!#%.                                        
 .%#&!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''`......':!%&######@|:''''`.....'$#|''''''''''';!''''`..;@#;                                        
  ;##%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``....... `%###%''''`.....;@$:''''''''''';:'''`..|#|                                         
   |#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''...'%#########|'''''`....|&!''''''''''''''''`.:&$`                                         
    |#$:''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..............'%###|'''''`...'$%''''''''''''''''.`%&'                                          
     ;#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``...........!#@!''''''...;%;''''''''''''''`.!#;                                           
      `$#|'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.....`%&;''''''`..|$:'''''''''''''`;@|                                            
        ;@@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`...!%:''''''`.'&#@!''''''''''':$@:                                            
          !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..:!''''''''`;;'';;'''''''''%#$`                                            
            !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..`''''''''::'''''''''''':$#|                                             
              !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.`''''''''::''''''''''''|#!                                             
               .%#$:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''''''''''''''''':$#@:                                           
                 !#&;'''''''''''''''''''''''''''''''''''''''''''''''''':;||:'''''''''''''''''''''''''''''''''''''''!|$#%.                                         
                  ;#&;''''''''''''''''''''''''''''''''''''''''':|$@#######%''''''''''''''''''''''''''''''''''''''''''|##%.                                        
                   !#$:''''''''''''''''''''''''''''''''';%@##############@!''''''''''''''''''''''''':::::'''''''''''':%##|                                        
                    !#%''''''''''''''''''''''''''':!&####################&;''''''''''''''''''''''|#$!:'''''''''''''::;;%##!                                       
                    .%@!''''''''''''''''''''':|@####$;'''!@##############$;''''''''''''''''''''';!:'''''''''''''''''''':|##|                                      
                     `&&|!!;:::''''''':!%&###$;|$:.`''''''%##############$:'''''''''''''''''''':::'''''''''''''''''''''''!@#%.                                    
                      .:!|$&@#######@$!'     :@&:.`''''''':$#############$;'''''''''''''''''''''''''''''''''''''''''''''''|@#|                                    
                                            |##@;`''''''''';&############&;''''''''''''''''''''''''!@#####&!:''''''''''''':%#@:                                   
                                          .%####%'''''''''''!@###########@!''''''''''''''''''''':::|&$&####|:'''''''';!!!!;!@#!     .|@$:                         
                                          |#####&;'''''''''''|############%:'''''''''''''''''''''':!'.;&###@$!:'''''':!!$#####;  ;@###@###!                       
                                         !#######%:'''''''''''%############@|''''''''''''''''''''';|!::''''''''''''':!||$#########$;::||%#@:                      
                                        '&########|''''''''''''%###############$;''''''''''''''''::'''''''''''''':|@#@$|;!@&;;$$%%&##|:'!@&'                      
                                        ;@#########|''''''''''':%###################%;''''''''''''''''''''''''''!|:';&#####|''''''''''':%#%.                      
                                       `:'|#########%''''''''''':%#################%:'''''''''''''''''''''''''::'''%%:''!@%:'''''''''':;&#;                       
                                       :;..!#########$:'''''''''':%###############&;''''''''''''''''''''''''''''':!;''';&$:''''''''''':|@&'                       
                                       :;...:&#########|'''''''''''%##############%'''''''''''''''''''''''''''''::'''';$|'''''''''''':;$#!                        
                                       :;....`|##########|''''''''''%#############%''''''''''''''''''''''''''''''''''!!'''''''''''''::%#&'                        
                                       :;.....`:$##########$:''''''''|############$;'''''''''''''''''''''''''''''''''''''''''''''''::|@#!                         
                                       ';.....`'';&###########|:''''''!&###########@!'''''''';$&|!;:''''''''''''''''''''''''''''''':!@#%.                         
                                       `%!....`'''':%###########@|:'''':$############$;''''';;:'|$;''''''''''''''''''''''''''''''::|@#&'                          
                                        |##|`.`''''''';&###########@|:'''!@############$;''''''!@##%:''''''''''''''''''''''''''':;%##@:                           
                                        :####$'`''''''''':%############|:'';$###########$;''':$######&;'''''''''''''''''''''''::;$##&'                            
                                        `$######|:''''''''''':|@##########$;'|###########$:';&#########@|:'''''''''''''''''':;;%###|                              
                                         ;########@!'''''''''''''':|&##########@:      '&#%:$#######@||@##&!::'''''''''''::;;%###%.                               
                                         `$##########@!''''''''''''''''':;|&####@:      '&#$;%&%%$%!!@#$'!@###@%!;;::;;;;!$####|                                  
                                          :##############&!:'''''''''''''''%#@&###%       |####@&&###&'     .|@#############$`                                    
                                           ;!'$################&|:'''''''';&#@: |###|.       `;|%|:                  ...                                          
                                            ;:..`;@###################$|:'!@##|    :$##%`      .``````...``````...````````````````    .```````````````````````    
                                             :'...`'';$########################;               |######|`|######|`;@#####$:!######$'  .|######|'$#############$`   
                                              ''...`'''''';%@###################|              |######|`|######|`;@#####$''$#####@;  `$#####&:`%#############$`   
                                               `:...`'''''''''''':!%$@#################@$!.    |######|`|######|`;@#####$'.%######%. :&#####%``%#############$`   
                                                 !&!`.`''''''''''''''''''''''%####!            |######|`|######|`;@#####$' ;@#####$'.!######! `%######$!!!!!!;`   
                                                   |###&!'''''''''''''''''''''!@###!           |######|`|######|`;@#####$` '$#####@;`%#####$' `%######!           
                                                     |######@$!:''''''''''''''';&###;          |######@&@######|`;@#####$`  |######%:$#####|. `%#########&;       
                                                       :@############################&!'       |###############|`;@#####$`  :&#####@&#####@;  `%#########@;       
                                                          !###########################$;'`..  .!@@&&&&$$%||!;;:'`;@#####$`  `%############$`  `%#########@;       
                                                             !@###############&%!:';&##################&!;!&###|`;@#####$`   !############!   `%#########@;       
                                                                `!;`.`'''''''''''''''%###########&!;!$!`|######|`;@#####$`   '&##########&:   `%#####@;           
                                                                     '!;`.``''''''''`!@####&|:'|######|`|######|`;@#####$`   .%##########%.   `%#####@!```````    
                                                                           '|$&&$%$@@$|:`.     |######|`|######|`;@#####$`    ;@########@;    `%#############&'   
                                                                                               |######|`|######|`;@#####$`    '$########$'    .%#############&'   
                                                                                               |######|`|######|`;@#####$`     |########|     `%#############&'   
                                                                                               ;%$$$$%;`;%$$$$%;.:%$$$$$|`     '|$$$$$$|'     .!$$$$$$$$$$$$$|`   

                                                                                                                                                                  
                                                                                                                                                                  
                                 :@##########&|'                                                                                                                  
                               ;@#@|`......:!$######&;.                                                                                                           
                             ;@#%`................'|@#####%`                                                                                                      
                           :@#@;.......................`;&####|.                                                                                                  
                         '&##$'.............................`!@###%`                         .`:::'`                                                              
                       `$##@!''''''''''``.......................'%####$`                '&##@%|!|%@###@##&'                                                       
                     `$##@!''''''''''''''''''``.....................'%###&'          .%#$:'''''''''''`...'$#$`                                                    
         '%@$!;;|%@####&;'''''''''''''''''''''''''''`...................:$##@;     .%#|:'''''''''''`.`''`..:&#$`                                                  
       !##############&|:'''''''''''''''''''''''''''''''''`.................;&##&&##|'''''''''''''''`.':''`..;@#|                                                 
     .%##&;'''''''''':!%@##@|:''''''''''''''''''''''''''''''''''`..............`|###@|:''''''''''''''`'$$:'`...!#&'                                               
    .%#@!''''''''''''''''''':|&@|:'''''''''''''''''''''''''''''''''''``............:&###%:''''''''''''`'$#|''`..`$#!                                              
   .%#&;''''''''''''''''''''''''';%$;''''''''''''''''''''''''''''''''''''''`..........:&##@|'''''''''''``|#%'''`..!#|                                             
   !#&;'''''''''''''''''''''''''''''':!!:''''''''''''''''''''''''''''''''''''''`.........|###%:''''''''''`;&%'''`..:&%.                                           
  :@@!''''''''''''''''''''''''''''''''''''''''''````'''''''''''''''''''''''''''''''`.......!###$:'''''''''`;&|''''..'$%.                                          
  |#$;'''''''''''''''''''''''''''''''''''''''''''''''`....``'''''''''''''''''''''''''`......`%##|''''''''''`|$:'''`..:&%.                                         
 `$#$:''''''''''''''''''''''''''''''''''''''''''''''''''''`...'''`''':::::'''''''''''''......`%#$:'''''''''''|!''''`..!#%.                                        
 .%#&!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''`......':!%&######@|:''''`.....'$#|''''''''''';!''''`..;@#;                                        
  ;##%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``....... `%###%''''`.....;@$:''''''''''';:'''`..|#|                                         
   |#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''...'%#########|'''''`....|&!''''''''''''''''`.:&$`                                         
    |#$:''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..............'%###|'''''`...'$%''''''''''''''''.`%&'                                          
     ;#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``...........!#@!''''''...;%;''''''''''''''`.!#;                                           
      `$#|'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.....`%&;''''''`..|$:'''''''''''''`;@|                                            
        ;@@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`...!%:''''''`.'&#@!''''''''''':$@:                                            
          !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..:!''''''''`;;'';;'''''''''%#$`                                            
            !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..`''''''''::'''''''''''':$#|                                             
              !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.`''''''''::''''''''''''|#!                                             
               .%#$:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''''''''''''''''':$#@:                                           
                 !#&;'''''''''''''''''''''''''''''''''''''''''''''''''':;||:'''''''''''''''''''''''''''''''''''''''!|$#%.                                         
                  ;#&;''''''''''''''''''''''''''''''''''''''''':|$@#######%''''''''''''''''''''''''''''''''''''''''''|##%.                                        
                   !#$:''''''''''''''''''''''''''''''''';%@##############@!''''''''''''''''''''''''':::::'''''''''''':%##|                                        
                    !#%''''''''''''''''''''''''''':!&####################&;''''''''''''''''''''''|#$!:'''''''''''''::;;%##!                                       
                    .%@!''''''''''''''''''''':|@####$;'''!@##############$;''''''''''''''''''''';!:'''''''''''''''''''':|##|                                      
                     `&&|!!;:::''''''':!%&###$;|$:.`''''''%##############$:'''''''''''''''''''':::'''''''''''''''''''''''!@#%.                                    
                      .:!|$&@#######@$!'     :@&:.`''''''':$#############$;'''''''''''''''''''''''''''''''''''''''''''''''|@#|                                    
                                            |##@;`''''''''';&############&;''''''''''''''''''''''''!@#####&!:''''''''''''':%#@:                                   
                                          .%####%'''''''''''!@###########@!''''''''''''''''''''':::|&$&####|:'''''''';!!!!;!@#!     .|@$:                         
                                          |#####&;'''''''''''|############%:'''''''''''''''''''''':!'.;&###@$!:'''''':!!$#####;  ;@###@###!                       
                                         !#######%:'''''''''''%############@|''''''''''''''''''''';|!::''''''''''''':!||$#########$;::||%#@:                      
                                        '&########|''''''''''''%###############$;''''''''''''''''::'''''''''''''':|@#@$|;!@&;;$$%%&##|:'!@&'                      
                                        ;@#########|''''''''''':%###################%;''''''''''''''''''''''''''!|:';&#####|''''''''''':%#%.                      
                                       `:'|#########%''''''''''':%#################%:'''''''''''''''''''''''''::'''%%:''!@%:'''''''''':;&#;                       
                                       :;..!#########$:'''''''''':%###############&;''''''''''''''''''''''''''''':!;''';&$:''''''''''':|@&'                       
                                       :;...:&#########|'''''''''''%##############%'''''''''''''''''''''''''''''::'''';$|'''''''''''':;$#!                        
                                       :;....`|##########|''''''''''%#############%''''''''''''''''''''''''''''''''''!!'''''''''''''::%#&'                        
                                       :;.....`:$##########$:''''''''|############$;'''''''''''''''''''''''''''''''''''''''''''''''::|@#!                         
                                       ';.....`'';&###########|:''''''!&###########@!'''''''';$&|!;:''''''''''''''''''''''''''''''':!@#%.                         
                                       `%!....`'''':%###########@|:'''':$############$;''''';;:'|$;''''''''''''''''''''''''''''''::|@#&'                          
                                        |##|`.`''''''';&###########@|:'''!@############$;''''''!@##%:''''''''''''''''''''''''''':;%##@:                           
                                        :####$'`''''''''':%############|:'';$###########$;''':$######&;'''''''''''''''''''''''::;$##&'                            
                                        `$######|:''''''''''':|@##########$;'|###########$:';&#########@|:'''''''''''''''''':;;%###|                              
                                         ;########@!'''''''''''''':|&##########@:      '&#%:$#######@||@##&!::'''''''''''::;;%###%.                               
                                         `$##########@!''''''''''''''''':;|&####@:      '&#$;%&%%$%!!@#$'!@###@%!;;::;;;;!$####|                                  
                                          :##############&!:'''''''''''''''%#@&###%       |####@&&###&'     .|@#############$`                                    
                                           ;!'$################&|:'''''''';&#@: |###|.       `;|%|:                  ...                                          
                                            ;:..`;@###################$|:'!@##|    :$##%`      .``````...``````...````````````````    .```````````````````````    
                                             :'...`'';$########################;               |######|`|######|`;@#####$:!######$'  .|######|'$#############$`   
                                              ''...`'''''';%@###################|              |######|`|######|`;@#####$''$#####@;  `$#####&:`%#############$`   
                                               `:...`'''''''''''':!%$@#################@$!.    |######|`|######|`;@#####$'.%######%. :&#####%``%#############$`   
                                                 !&!`.`''''''''''''''''''''''%####!            |######|`|######|`;@#####$' ;@#####$'.!######! `%######$!!!!!!;`   
                                                   |###&!'''''''''''''''''''''!@###!           |######|`|######|`;@#####$` '$#####@;`%#####$' `%######!           
                                                     |######@$!:''''''''''''''';&###;          |######@&@######|`;@#####$`  |######%:$#####|. `%#########&;       
                                                       :@############################&!'       |###############|`;@#####$`  :&#####@&#####@;  `%#########@;       
                                                          !###########################$;'`..  .!@@&&&&$$%||!;;:'`;@#####$`  `%############$`  `%#########@;       
                                                             !@###############&%!:';&##################&!;!&###|`;@#####$`   !############!   `%#########@;       
                                                                `!;`.`'''''''''''''''%###########&!;!$!`|######|`;@#####$`   '&##########&:   `%#####@;           
                                                                     '!;`.``''''''''`!@####&|:'|######|`|######|`;@#####$`   .%##########%.   `%#####@!```````    
                                                                           '|$&&$%$@@$|:`.     |######|`|######|`;@#####$`    ;@########@;    `%#############&'   
                                                                                               |######|`|######|`;@#####$`    '$########$'    .%#############&'   
                                                                                               |######|`|######|`;@#####$`     |########|     `%#############&'   
                                                                                               ;%$$$$%;`;%$$$$%;.:%$$$$$|`     '|$$$$$$|'     .!$$$$$$$$$$$$$|`   

                                                                                                                                                                  
                                                                                                                                                                  
                                 :@##########&|'                                                                                                                  
                               ;@#@|`......:!$######&;.                                                                                                           
                             ;@#%`................'|@#####%`                                                                                                      
                           :@#@;.......................`;&####|.                                                                                                  
                         '&##$'.............................`!@###%`                         .`:::'`                                                              
                       `$##@!''''''''''``.......................'%####$`                '&##@%|!|%@###@##&'                                                       
                     `$##@!''''''''''''''''''``.....................'%###&'          .%#$:'''''''''''`...'$#$`                                                    
         '%@$!;;|%@####&;'''''''''''''''''''''''''''`...................:$##@;     .%#|:'''''''''''`.`''`..:&#$`                                                  
       !##############&|:'''''''''''''''''''''''''''''''''`.................;&##&&##|'''''''''''''''`.':''`..;@#|                                                 
     .%##&;'''''''''':!%@##@|:''''''''''''''''''''''''''''''''''`..............`|###@|:''''''''''''''`'$$:'`...!#&'                                               
    .%#@!''''''''''''''''''':|&@|:'''''''''''''''''''''''''''''''''''``............:&###%:''''''''''''`'$#|''`..`$#!                                              
   .%#&;''''''''''''''''''''''''';%$;''''''''''''''''''''''''''''''''''''''`..........:&##@|'''''''''''``|#%'''`..!#|                                             
   !#&;'''''''''''''''''''''''''''''':!!:''''''''''''''''''''''''''''''''''''''`.........|###%:''''''''''`;&%'''`..:&%.                                           
  :@@!''''''''''''''''''''''''''''''''''''''''''````'''''''''''''''''''''''''''''''`.......!###$:'''''''''`;&|''''..'$%.                                          
  |#$;'''''''''''''''''''''''''''''''''''''''''''''''`....``'''''''''''''''''''''''''`......`%##|''''''''''`|$:'''`..:&%.                                         
 `$#$:''''''''''''''''''''''''''''''''''''''''''''''''''''`...'''`''':::::'''''''''''''......`%#$:'''''''''''|!''''`..!#%.                                        
 .%#&!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''`......':!%&######@|:''''`.....'$#|''''''''''';!''''`..;@#;                                        
  ;##%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``....... `%###%''''`.....;@$:''''''''''';:'''`..|#|                                         
   |#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''...'%#########|'''''`....|&!''''''''''''''''`.:&$`                                         
    |#$:''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..............'%###|'''''`...'$%''''''''''''''''.`%&'                                          
     ;#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``...........!#@!''''''...;%;''''''''''''''`.!#;                                           
      `$#|'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.....`%&;''''''`..|$:'''''''''''''`;@|                                            
        ;@@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`...!%:''''''`.'&#@!''''''''''':$@:                                            
          !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..:!''''''''`;;'';;'''''''''%#$`                                            
            !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..`''''''''::'''''''''''':$#|                                             
              !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.`''''''''::''''''''''''|#!                                             
               .%#$:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''''''''''''''''':$#@:                                           
                 !#&;'''''''''''''''''''''''''''''''''''''''''''''''''':;||:'''''''''''''''''''''''''''''''''''''''!|$#%.                                         
                  ;#&;''''''''''''''''''''''''''''''''''''''''':|$@#######%''''''''''''''''''''''''''''''''''''''''''|##%.                                        
                   !#$:''''''''''''''''''''''''''''''''';%@##############@!''''''''''''''''''''''''':::::'''''''''''':%##|                                        
                    !#%''''''''''''''''''''''''''':!&####################&;''''''''''''''''''''''|#$!:'''''''''''''::;;%##!                                       
                    .%@!''''''''''''''''''''':|@####$;'''!@##############$;''''''''''''''''''''';!:'''''''''''''''''''':|##|                                      
                     `&&|!!;:::''''''':!%&###$;|$:.`''''''%##############$:'''''''''''''''''''':::'''''''''''''''''''''''!@#%.                                    
                      .:!|$&@#######@$!'     :@&:.`''''''':$#############$;'''''''''''''''''''''''''''''''''''''''''''''''|@#|                                    
                                            |##@;`''''''''';&############&;''''''''''''''''''''''''!@#####&!:''''''''''''':%#@:                                   
                                          .%####%'''''''''''!@###########@!''''''''''''''''''''':::|&$&####|:'''''''';!!!!;!@#!     .|@$:                         
                                          |#####&;'''''''''''|############%:'''''''''''''''''''''':!'.;&###@$!:'''''':!!$#####;  ;@###@###!                       
                                         !#######%:'''''''''''%############@|''''''''''''''''''''';|!::''''''''''''':!||$#########$;::||%#@:                      
                                        '&########|''''''''''''%###############$;''''''''''''''''::'''''''''''''':|@#@$|;!@&;;$$%%&##|:'!@&'                      
                                        ;@#########|''''''''''':%###################%;''''''''''''''''''''''''''!|:';&#####|''''''''''':%#%.                      
                                       `:'|#########%''''''''''':%#################%:'''''''''''''''''''''''''::'''%%:''!@%:'''''''''':;&#;                       
                                       :;..!#########$:'''''''''':%###############&;''''''''''''''''''''''''''''':!;''';&$:''''''''''':|@&'                       
                                       :;...:&#########|'''''''''''%##############%'''''''''''''''''''''''''''''::'''';$|'''''''''''':;$#!                        
                                       :;....`|##########|''''''''''%#############%''''''''''''''''''''''''''''''''''!!'''''''''''''::%#&'                        
                                       :;.....`:$##########$:''''''''|############$;'''''''''''''''''''''''''''''''''''''''''''''''::|@#!                         
                                       ';.....`'';&###########|:''''''!&###########@!'''''''';$&|!;:''''''''''''''''''''''''''''''':!@#%.                         
                                       `%!....`'''':%###########@|:'''':$############$;''''';;:'|$;''''''''''''''''''''''''''''''::|@#&'                          
                                        |##|`.`''''''';&###########@|:'''!@############$;''''''!@##%:''''''''''''''''''''''''''':;%##@:                           
                                        :####$'`''''''''':%############|:'';$###########$;''':$######&;'''''''''''''''''''''''::;$##&'                            
                                        `$######|:''''''''''':|@##########$;'|###########$:';&#########@|:'''''''''''''''''':;;%###|                              
                                         ;########@!'''''''''''''':|&##########@:      '&#%:$#######@||@##&!::'''''''''''::;;%###%.                               
                                         `$##########@!''''''''''''''''':;|&####@:      '&#$;%&%%$%!!@#$'!@###@%!;;::;;;;!$####|                                  
                                          :##############&!:'''''''''''''''%#@&###%       |####@&&###&'     .|@#############$`                                    
                                           ;!'$################&|:'''''''';&#@: |###|.       `;|%|:                  ...                                          
                                            ;:..`;@###################$|:'!@##|    :$##%`      .``````...``````...````````````````    .```````````````````````    
                                             :'...`'';$########################;               |######|`|######|`;@#####$:!######$'  .|######|'$#############$`   
                                              ''...`'''''';%@###################|              |######|`|######|`;@#####$''$#####@;  `$#####&:`%#############$`   
                                               `:...`'''''''''''':!%$@#################@$!.    |######|`|######|`;@#####$'.%######%. :&#####%``%#############$`   
                                                 !&!`.`''''''''''''''''''''''%####!            |######|`|######|`;@#####$' ;@#####$'.!######! `%######$!!!!!!;`   
                                                   |###&!'''''''''''''''''''''!@###!           |######|`|######|`;@#####$` '$#####@;`%#####$' `%######!           
                                                     |######@$!:''''''''''''''';&###;          |######@&@######|`;@#####$`  |######%:$#####|. `%#########&;       
                                                       :@############################&!'       |###############|`;@#####$`  :&#####@&#####@;  `%#########@;       
                                                          !###########################$;'`..  .!@@&&&&$$%||!;;:'`;@#####$`  `%############$`  `%#########@;       
                                                             !@###############&%!:';&##################&!;!&###|`;@#####$`   !############!   `%#########@;       
                                                                `!;`.`'''''''''''''''%###########&!;!$!`|######|`;@#####$`   '&##########&:   `%#####@;           
                                                                     '!;`.``''''''''`!@####&|:'|######|`|######|`;@#####$`   .%##########%.   `%#####@!```````    
                                                                           '|$&&$%$@@$|:`.     |######|`|######|`;@#####$`    ;@########@;    `%#############&'   
                                                                                               |######|`|######|`;@#####$`    '$########$'    .%#############&'   
                                                                                               |######|`|######|`;@#####$`     |########|     `%#############&'   
                                                                                               ;%$$$$%;`;%$$$$%;.:%$$$$$|`     '|$$$$$$|'     .!$$$$$$$$$$$$$|`   

                                                                                                                                                                  
                                                                                                                                                                  
                                 :@##########&|'                                                                                                                  
                               ;@#@|`......:!$######&;.                                                                                                           
                             ;@#%`................'|@#####%`                                                                                                      
                           :@#@;.......................`;&####|.                                                                                                  
                         '&##$'.............................`!@###%`                         .`:::'`                                                              
                       `$##@!''''''''''``.......................'%####$`                '&##@%|!|%@###@##&'                                                       
                     `$##@!''''''''''''''''''``.....................'%###&'          .%#$:'''''''''''`...'$#$`                                                    
         '%@$!;;|%@####&;'''''''''''''''''''''''''''`...................:$##@;     .%#|:'''''''''''`.`''`..:&#$`                                                  
       !##############&|:'''''''''''''''''''''''''''''''''`.................;&##&&##|'''''''''''''''`.':''`..;@#|                                                 
     .%##&;'''''''''':!%@##@|:''''''''''''''''''''''''''''''''''`..............`|###@|:''''''''''''''`'$$:'`...!#&'                                               
    .%#@!''''''''''''''''''':|&@|:'''''''''''''''''''''''''''''''''''``............:&###%:''''''''''''`'$#|''`..`$#!                                              
   .%#&;''''''''''''''''''''''''';%$;''''''''''''''''''''''''''''''''''''''`..........:&##@|'''''''''''``|#%'''`..!#|                                             
   !#&;'''''''''''''''''''''''''''''':!!:''''''''''''''''''''''''''''''''''''''`.........|###%:''''''''''`;&%'''`..:&%.                                           
  :@@!''''''''''''''''''''''''''''''''''''''''''````'''''''''''''''''''''''''''''''`.......!###$:'''''''''`;&|''''..'$%.                                          
  |#$;'''''''''''''''''''''''''''''''''''''''''''''''`....``'''''''''''''''''''''''''`......`%##|''''''''''`|$:'''`..:&%.                                         
 `$#$:''''''''''''''''''''''''''''''''''''''''''''''''''''`...'''`''':::::'''''''''''''......`%#$:'''''''''''|!''''`..!#%.                                        
 .%#&!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''`......':!%&######@|:''''`.....'$#|''''''''''';!''''`..;@#;                                        
  ;##%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``....... `%###%''''`.....;@$:''''''''''';:'''`..|#|                                         
   |#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''...'%#########|'''''`....|&!''''''''''''''''`.:&$`                                         
    |#$:''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..............'%###|'''''`...'$%''''''''''''''''.`%&'                                          
     ;#&;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''``...........!#@!''''''...;%;''''''''''''''`.!#;                                           
      `$#|'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.....`%&;''''''`..|$:'''''''''''''`;@|                                            
        ;@@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`...!%:''''''`.'&#@!''''''''''':$@:                                            
          !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..:!''''''''`;;'';;'''''''''%#$`                                            
            !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`..`''''''''::'''''''''''':$#|                                             
              !#@!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`.`''''''''::''''''''''''|#!                                             
               .%#$:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''''''''''''''''':$#@:                                           
                 !#&;'''''''''''''''''''''''''''''''''''''''''''''''''':;||:'''''''''''''''''''''''''''''''''''''''!|$#%.                                         
                  ;#&;''''''''''''''''''''''''''''''''''''''''':|$@#######%''''''''''''''''''''''''''''''''''''''''''|##%.                                        
                   !#$:''''''''''''''''''''''''''''''''';%@##############@!''''''''''''''''''''''''':::::'''''''''''':%##|                                        
                    !#%''''''''''''''''''''''''''':!&####################&;''''''''''''''''''''''|#$!:'''''''''''''::;;%##!                                       
                    .%@!''''''''''''''''''''':|@####$;'''!@##############$;''''''''''''''''''''';!:'''''''''''''''''''':|##|                                      
                     `&&|!!;:::''''''':!%&###$;|$:.`''''''%##############$:'''''''''''''''''''':::'''''''''''''''''''''''!@#%.                                    
                      .:!|$&@#######@$!'     :@&:.`''''''':$#############$;'''''''''''''''''''''''''''''''''''''''''''''''|@#|                                    
                                            |##@;`''''''''';&############&;''''''''''''''''''''''''!@#####&!:''''''''''''':%#@:                                   
                                          .%####%'''''''''''!@###########@!''''''''''''''''''''':::|&$&####|:'''''''';!!!!;!@#!     .|@$:                         
                                          |#####&;'''''''''''|############%:'''''''''''''''''''''':!'.;&###@$!:'''''':!!$#####;  ;@###@###!                       
                                         !#######%:'''''''''''%############@|''''''''''''''''''''';|!::''''''''''''':!||$#########$;::||%#@:                      
                                        '&########|''''''''''''%###############$;''''''''''''''''::'''''''''''''':|@#@$|;!@&;;$$%%&##|:'!@&'                      
                                        ;@#########|''''''''''':%###################%;''''''''''''''''''''''''''!|:';&#####|''''''''''':%#%.                      
                                       `:'|#########%''''''''''':%#################%:'''''''''''''''''''''''''::'''%%:''!@%:'''''''''':;&#;                       
                                       :;..!#########$:'''''''''':%###############&;''''''''''''''''''''''''''''':!;''';&$:''''''''''':|@&'                       
                                       :;...:&#########|'''''''''''%##############%'''''''''''''''''''''''''''''::'''';$|'''''''''''':;$#!                        
                                       :;....`|##########|''''''''''%#############%''''''''''''''''''''''''''''''''''!!'''''''''''''::%#&'                        
                                       :;.....`:$##########$:''''''''|############$;'''''''''''''''''''''''''''''''''''''''''''''''::|@#!                         
                                       ';.....`'';&###########|:''''''!&###########@!'''''''';$&|!;:''''''''''''''''''''''''''''''':!@#%.                         
                                       `%!....`'''':%###########@|:'''':$############$;''''';;:'|$;''''''''''''''''''''''''''''''::|@#&'                          
                                        |##|`.`''''''';&###########@|:'''!@############$;''''''!@##%:''''''''''''''''''''''''''':;%##@:                           
                                        :####$'`''''''''':%############|:'';$###########$;''':$######&;'''''''''''''''''''''''::;$##&'                            
                                        `$######|:''''''''''':|@##########$;'|###########$:';&#########@|:'''''''''''''''''':;;%###|                              
                                         ;########@!'''''''''''''':|&##########@:      '&#%:$#######@||@##&!::'''''''''''::;;%###%.                               
                                         `$##########@!''''''''''''''''':;|&####@:      '&#$;%&%%$%!!@#$'!@###@%!;;::;;;;!$####|                                  
                                          :##############&!:'''''''''''''''%#@&###%       |####@&&###&'     .|@#############$`                                    
                                           ;!'$################&|:'''''''';&#@: |###|.       `;|%|:                  ...                                          
                                            ;:..`;@###################$|:'!@##|    :$##%`      .``````...``````...````````````````    .```````````````````````    
                                             :'...`'';$########################;               |######|`|######|`;@#####$:!######$'  .|######|'$#############$`   
                                              ''...`'''''';%@###################|              |######|`|######|`;@#####$''$#####@;  `$#####&:`%#############$`   
                                               `:...`'''''''''''':!%$@#################@$!.    |######|`|######|`;@#####$'.%######%. :&#####%``%#############$`   
                                                 !&!`.`''''''''''''''''''''''%####!            |######|`|######|`;@#####$' ;@#####$'.!######! `%######$!!!!!!;`   
                                                   |###&!'''''''''''''''''''''!@###!           |######|`|######|`;@#####$` '$#####@;`%#####$' `%######!           
                                                     |######@$!:''''''''''''''';&###;          |######@&@######|`;@#####$`  |######%:$#####|. `%#########&;       
                                                       :@############################&!'       |###############|`;@#####$`  :&#####@&#####@;  `%#########@;       
                                                          !###########################$;'`..  .!@@&&&&$$%||!;;:'`;@#####$`  `%############$`  `%#########@;       
                                                             !@###############&%!:';&##################&!;!&###|`;@#####$`   !############!   `%#########@;       
                                                                `!;`.`'''''''''''''''%###########&!;!$!`|######|`;@#####$`   '&##########&:   `%#####@;           
                                                                     '!;`.``''''''''`!@####&|:'|######|`|######|`;@#####$`   .%##########%.   `%#####@!```````    
                                                                           '|$&&$%$@@$|:`.     |######|`|######|`;@#####$`    ;@########@;    `%#############&'   
                                                                                               |######|`|######|`;@#####$`    '$########$'    .%#############&'   
                                                                                               |######|`|######|`;@#####$`     |########|     `%#############&'   
                                                                                               ;%$$$$%;`;%$$$$%;.:%$$$$$|`     '|$$$$$$|'     .!$$$$$$$$$$$$$|`   

Time taken: 18.007 seconds

Have a good life with hive logo!

Copyright

Copyright (c) 2013 Tsuyoshi Ozawa

Distributed under the Apache License, Version 2.

About

A simple UDF substituting every tuple with Hive logo.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages