Make Shipping Software Painless
Make Shipping Software Painless
Indent gives you a team of purpose-built AI agents that review code, fix errors, query data, and respond to incidents, so you can stay focused on building as fast as you can.
.
. . .. .. .....
. ...
......-...............-..-----------------------+-+-+-+++++
. . ..............................-.-.---------+-+---++++++^~
.------+--+--+++++++++++++++++++++++^+^+^+^^^^^^^^^^^*****;;;n
.----+------++--+++--++--+--++++++++++++++++++^^^^^^^^^^****~n
.----aauzzzvvvzvvvvvvvvvvvvvvvvvvzvvvvvzvnvvvvvvvvvvzaav^***~n
.+---vu188%633633333333333!6!33333!633!63663366666868$o;^***~n
.--+-oz88663!!!!iiiiiiiiiiiiiii!i!!!!!!33!!333336666%88^+**;;o
.++-+n~6uaaaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaua6$++***~o
-++++on3aavvvvazvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvaa6$++***;o
.++++ov3aavvzzazvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvza6%++**;~o
-++++oa3zznvvvavvvvvvvvvnvvvvvvvvvvvvvvnvvvvvvvvvvvza68++***;o
.-++++ou3a1v!vvavvvvvvvniuinvvvvvvi!1vni!nvvvvvvvvvvza68^+*;*~o
.-++++o16aavvvvavvvvvvvni!vnvvvvvzunininzuvvvvvvvvvvaa66^+**;~o
.-++++oi8aavvvvavvvvvvv!1znvvnzvvinuav!n!nnnavvvvvvvaa66++*;;~o
.-++++o!6aavvnvavvvnaininvinnin!niu1vn!3nnivvv3nvvvvaa86^+;;;~o
.-^^++o!6uavvvvavvvnvvuavnioo!!nvi!un!iia!3uo!nnnvvvua33^^;;;~o
.-^^^+n!6uavvvvuvvvvvvvvvvvvvvnvvnnnvnvvvvvvvvvvvvvvua88^+;;;~o
--^^^+ni8uuzzzzavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua88^^;;~~o
--^^^^o18uavvvvavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua6$^^;;~~o
--^^^^na8uavzvvaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaaa8%^^;;;~o
--*^^^nz8uuv3!iao33naaaazzzzaauzvvvzvavzvvzvvvzavzazva6%^^;~~~o
--*^*^vv86!ii111uuuuuu111111iiiiiii!!!!!i!!!!!!333366688^^;~~~o
--***^n;868663333!36!!363!636!3866666666668688868386686.^*~~~~o
--*****+--...--....... .--+++++----.. .....--++++++++-+^~~~oo
--**********^^*^*^^^^**^^^^^*^^******************;**;;;;~;~~~oo
-+;***********^^**^^*******************************;;;;;~~~~~oo
++;;;;*;;*****************************************;;;;;;~~~~~oo
++;;;;;***;*************************************;;;;;;~~;~~~ono ------..
++;;;;;*;****************************;********;*;*;;;;;~~~~o~oo .
++;;;;;;**********************nonooooooo~~o~o~n~z1auuaao;;~~ooo ... . . ... ....
+^;~~;;;*;*;*;*;;*********;**;~^^++-------------^..-+**n;;~~ooo ..... . .. . .
+^;;~;;;;;;;*;;*****;*;***;*;;;;;*;;;;*;*;**;;;*+++++++^*;~~ooo .-.. . .
+^;;;o*on;;*****;;**;*;*;;;*;;;;;;;;;;;;;*;;;;;;;;;;;;;~~~~~ooo -. ... . .. .
+^;;;on1u;;;**;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~~~~~oozzzzzzaaaazzzvo*.-*. .
+^;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~ooo ....---.. .+-...... ..........
+^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~onnv+ ... .+^*;;;;;;;;*;;;;;**
+;ooononnnnnnnnnnnvnnnnvnnvvvvvvvnnvnvnnvnnnnoonnnnonnonoonnnno z~ -+nvvvvvnnnnnnooonn
^~nnvnnvvvvvvvvvvvvvvvvvzzzzzzzzzzzvzzzzzzzvznnnnnnnnnnnonnnnnn z* . ^+ovvnnvnnnnonnonno
+-- ^+- +-- ^-- ^-- *-- ^-+;v~~*au~;^i3;;^68;~+6$*;+%%;;+%$~ovn~88636!!!i!i1uuaaaazzzzvn* *n. ++ovvnnoooooooooooo
.......-11iz*u1uz*auav*aaav;zazn~zaavozaunouuunnauunnauunvaa1nvuu1ov111^nu11iuv++++++^*ii111u336avvvvv; ~- .+^onvvnnnonnnoooooo
....... +.--..1!---ui---a1+--a1^+-uu^+-z1**^z1;;*ai***z!***u!;**a6*;*z6**;z6;~;o+++++++*!3!!1u3!3zvvvvn* .; ..+^onnnnnonooooooooo
......o-^*+^-+au+-+zu++-za++-na++-oa+*-;u+~^;u+;^;1^;^*i^^^*1^^^^!*;^^i;~~;***v;++++++*36!!3iii1izvvvn* *-.-^onvnnnnoonnoooooo
.......i.+*~ono;^vu.+-^u.+^-z***-a~^*.zno;-uaon^uuoo^u1~o;11on;1i~o;11;oovnvno;vn++++++*3666!11naaaazzn+ .-.-*oznznnnnnononnono
....... ;1u1uu1u1uu%uuua6aaaa3aaua3zaaa!vauu!vuu1!v1uu!z1i1!v1uu3au11!u1iiiu1uuuuu++++++^zi18auia6686iz*. ...+ovvnvvnnnnnnnnnnn
.-.--..*333!!nooo!~oo~~~a6~~oo~~o~~~;~~~~~~~~~~~~~~~~~~;~~~~~~o8~~~~~ov%~~~o633ii!++++++^o8663!!zo~;**^+. -++-. n..-*a1366%6668668%66
........-----auuua%uauuaaauaazaaauaaauaaaaauaaaauuuuuuuu1uuaaauu8auu1uuu6uuuu!+++++++++++^^n~;*^^+++++++-.--.-~zz;^+-!-**^^...+^^^^^^^^^^^^^^^^
-+------------------+---------------------------------+------+-++++++++++++++++++++++++++^^o~*^^+++++--+-+----------.~~~ooo..--+++^^+^++^^++^^^
++++++++++++++++++++------------+----++-------+-+++--+-++++++++++++++++++++++++++^^^^^^^^*^~;*^++++--^^^+++--------~~~vnnnn...--+++++++++++++++
.~vvnnnnnooooonooo~~~~~~~~~~~~;~;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~oooooooonnnnnnnzv~;*+++++^^^^^^^^^^^^^;~~~nnnvvnn ..--+++++++++++++++
-;nvzvvvnvnnnnoooo~o~~~~~~~~~o~~~~oo~~o~~ooo~o~~o~o~~~o~~o~~o~o~o~oo~ooonoonnvvvvzzzzzzuaazn~;^++++*~~o~oo~*^^***;onnvvvz1v--------+++++++++++++
*vvvzvnnnoooo~~o~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~;~~~o~oo~;~~~o~ooo~ooooooooooonnnnnnnnvnvvn~*^++++;~ooooooonnonz1vvvz3a$in;...---++++-+++++++++
.....----+--------------------------++--++++-+++++-+-+++++++++++++++++++++++++++++++++++++++-++++++nnvnnz1annvva1v3a#ivo;^+. ..------+++----++-
.......--.-.--.--.....--.--...-...-.-------------.----------------------------------+---------+++++++++-;i$@@8zva@1zo;^+++-......--------------
.... .....................-.....-.......-.--..-----------------------------------------------+-++++++++++++++++++++++++---..... ....-.---------
.
. . .. .. .....
. ...
......-...............-..-----------------------+-+-+-+++++
. . ..............................-.-.---------+-+---++++++^~
.------+--+--+++++++++++++++++++++++^+^+^+^^^^^^^^^^^*****;;;n
.----+------++--+++--++--+--++++++++++++++++++^^^^^^^^^^****~n
.----aauzzzvvvzvvvvvvvvvvvvvvvvvvzvvvvvzvnvvvvvvvvvvzaav^***~n
.+---vu188%633633333333333!6!33333!633!63663366666868$o;^***~n
.--+-oz88663!!!!iiiiiiiiiiiiiii!i!!!!!!33!!333336666%88^+**;;o
.++-+n~6uaaaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaua6$++***~o
-++++on3aavvvvazvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvaa6$++***;o
.++++ov3aavvzzazvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvza6%++**;~o
-++++oa3zznvvvavvvvvvvvvnvvvvvvvvvvvvvvnvvvvvvvvvvvza68++***;o
.-++++ou3a1v!vvavvvvvvvniuinvvvvvvi!1vni!nvvvvvvvvvvza68^+*;*~o
.-++++o16aavvvvavvvvvvvni!vnvvvvvzunininzuvvvvvvvvvvaa66^+**;~o
.-++++oi8aavvvvavvvvvvv!1znvvnzvvinuav!n!nnnavvvvvvvaa66++*;;~o
.-++++o!6aavvnvavvvnaininvinnin!niu1vn!3nnivvv3nvvvvaa86^+;;;~o
.-^^++o!6uavvvvavvvnvvuavnioo!!nvi!un!iia!3uo!nnnvvvua33^^;;;~o
.-^^^+n!6uavvvvuvvvvvvvvvvvvvvnvvnnnvnvvvvvvvvvvvvvvua88^+;;;~o
--^^^+ni8uuzzzzavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua88^^;;~~o
--^^^^o18uavvvvavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua6$^^;;~~o
--^^^^na8uavzvvaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaaa8%^^;;;~o
--*^^^nz8uuv3!iao33naaaazzzzaauzvvvzvavzvvzvvvzavzazva6%^^;~~~o
--*^*^vv86!ii111uuuuuu111111iiiiiii!!!!!i!!!!!!333366688^^;~~~o
--***^n;868663333!36!!363!636!3866666666668688868386686.^*~~~~o
--*****+--...--....... .--+++++----.. .....--++++++++-+^~~~oo
--**********^^*^*^^^^**^^^^^*^^******************;**;;;;~;~~~oo
-+;***********^^**^^*******************************;;;;;~~~~~oo
++;;;;*;;*****************************************;;;;;;~~~~~oo
++;;;;;***;*************************************;;;;;;~~;~~~ono ------..
++;;;;;*;****************************;********;*;*;;;;;~~~~o~oo .
++;;;;;;**********************nonooooooo~~o~o~n~z1auuaao;;~~ooo ... . . ... ....
+^;~~;;;*;*;*;*;;*********;**;~^^++-------------^..-+**n;;~~ooo ..... . .. . .
+^;;~;;;;;;;*;;*****;*;***;*;;;;;*;;;;*;*;**;;;*+++++++^*;~~ooo .-.. . .
+^;;;o*on;;*****;;**;*;*;;;*;;;;;;;;;;;;;*;;;;;;;;;;;;;~~~~~ooo -. ... . .. .
+^;;;on1u;;;**;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~~~~~oozzzzzzaaaazzzvo*.-*. .
+^;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~ooo ....---.. .+-...... ..........
+^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~onnv+ ... .+^*;;;;;;;;*;;;;;**
+;ooononnnnnnnnnnnvnnnnvnnvvvvvvvnnvnvnnvnnnnoonnnnonnonoonnnno z~ -+nvvvvvnnnnnnooonn
^~nnvnnvvvvvvvvvvvvvvvvvzzzzzzzzzzzvzzzzzzzvznnnnnnnnnnnonnnnnn z* . ^+ovvnnvnnnnonnonno
+-- ^+- +-- ^-- ^-- *-- ^-+;v~~*au~;^i3;;^68;~+6$*;+%%;;+%$~ovn~88636!!!i!i1uuaaaazzzzvn* *n. ++ovvnnoooooooooooo
.......-11iz*u1uz*auav*aaav;zazn~zaavozaunouuunnauunnauunvaa1nvuu1ov111^nu11iuv++++++^*ii111u336avvvvv; ~- .+^onvvnnnonnnoooooo
....... +.--..1!---ui---a1+--a1^+-uu^+-z1**^z1;;*ai***z!***u!;**a6*;*z6**;z6;~;o+++++++*!3!!1u3!3zvvvvn* .; ..+^onnnnnonooooooooo
......o-^*+^-+au+-+zu++-za++-na++-oa+*-;u+~^;u+;^;1^;^*i^^^*1^^^^!*;^^i;~~;***v;++++++*36!!3iii1izvvvn* *-.-^onvnnnnoonnoooooo
.......i.+*~ono;^vu.+-^u.+^-z***-a~^*.zno;-uaon^uuoo^u1~o;11on;1i~o;11;oovnvno;vn++++++*3666!11naaaazzn+ .-.-*oznznnnnnononnono
....... ;1u1uu1u1uu%uuua6aaaa3aaua3zaaa!vauu!vuu1!v1uu!z1i1!v1uu3au11!u1iiiu1uuuuu++++++^zi18auia6686iz*. ...+ovvnvvnnnnnnnnnnn
.-.--..*333!!nooo!~oo~~~a6~~oo~~o~~~;~~~~~~~~~~~~~~~~~~;~~~~~~o8~~~~~ov%~~~o633ii!++++++^o8663!!zo~;**^+. -++-. n..-*a1366%6668668%66
........-----auuua%uauuaaauaazaaauaaauaaaaauaaaauuuuuuuu1uuaaauu8auu1uuu6uuuu!+++++++++++^^n~;*^^+++++++-.--.-~zz;^+-!-**^^...+^^^^^^^^^^^^^^^^
-+------------------+---------------------------------+------+-++++++++++++++++++++++++++^^o~*^^+++++--+-+----------.~~~ooo..--+++^^+^++^^++^^^
++++++++++++++++++++------------+----++-------+-+++--+-++++++++++++++++++++++++++^^^^^^^^*^~;*^++++--^^^+++--------~~~vnnnn...--+++++++++++++++
.~vvnnnnnooooonooo~~~~~~~~~~~~;~;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~oooooooonnnnnnnzv~;*+++++^^^^^^^^^^^^^;~~~nnnvvnn ..--+++++++++++++++
-;nvzvvvnvnnnnoooo~o~~~~~~~~~o~~~~oo~~o~~ooo~o~~o~o~~~o~~o~~o~o~o~oo~ooonoonnvvvvzzzzzzuaazn~;^++++*~~o~oo~*^^***;onnvvvz1v--------+++++++++++++
*vvvzvnnnoooo~~o~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~;~~~o~oo~;~~~o~ooo~ooooooooooonnnnnnnnvnvvn~*^++++;~ooooooonnonz1vvvz3a$in;...---++++-+++++++++
.....----+--------------------------++--++++-+++++-+-+++++++++++++++++++++++++++++++++++++++-++++++nnvnnz1annvva1v3a#ivo;^+. ..------+++----++-
.......--.-.--.--.....--.--...-...-.-------------.----------------------------------+---------+++++++++-;i$@@8zva@1zo;^+++-......--------------
.... .....................-.....-.......-.--..-----------------------------------------------+-++++++++++++++++++++++++---..... ....-.---------
Indent is building a suite of AI tools designed to genuinely help developers get things done, faster, with less friction, and more clarity. The mission is pretty simple: reduce the mental overhead that comes with modern software development. That means helping with everything from writing and reviewing code, to understanding data, to managing infrastructure and responding to incidents.
Instead of chasing one-off tools, Indent is building a unified, context-aware system that feels like an extra teammate, one that understands how your stack works, how your team works, and how to actually be helpful. It’s not about replacing devs, it’s about freeing them up to focus on what matters.
Agents for the entire dev lifecycle
Agents for the entire dev lifecycle
From code reviews to incident response, our AI agents handle the workflow so you can focus on what you do best: building.
From code reviews to incident response, our AI agents handle the workflow so you can focus on what you do best: building.
“Indent has automated and assisted tens of thousands of tasks for our team and that number is only going up. We feel like we are in good hands, for now and the future”
“Indent has automated and assisted tens of thousands of tasks for our team and that number is only going up. We feel like we are in good hands, for now and the future”

Kevin Chu
Business unit lead / ViewSonic
                                                                                                                                       
                                                                                                   .-=++*+++=:.                        
                                 .-+++=---.                                                     :+#***********:     ..                 
                               -****-   :+=-.                                                 :==+#***+@##+***+.....:-=-               
                              **#+**-.::=**-+                                               .==++*#************...:=-.                 
                             -*%@#***: .=+*+%                                              :=++++*#***********-...                     
                           .=+******: .+#*:-*.                                            :-+++++*%#*********#@@*                      
                           =+*******=*@%*+*+*=                                           .-=++*+=*@%###***##%@@%.                      
                         .=+#*******%*+++-=#**-               -+%%#%%#+::...            .-=++++++=+#@%%%%%%@@@@-                       
                        :==+%#****#@%++***%@%#@-            =%%@@%%@%%      ==-        :-=++++++++++++#@@@@@@@=                        
                       .++++=*%@@@@@@@@@@@@@@@#=:        .-=#%@%*##@%%+..:.:++.       .-=++++++++++*****++#####:                       
                       =###**+++=++***++++==+++*+.      :===#%%#@@*@%%%   .=*         -=+++++###################=                      
                      +##******###*****###########:    -++==*%%%%%%%%%%=.+%@=        :+**########################*                     
                     .####**++***##*###*##******###-  -+++==#%##%###%%%@@%%%+        #####*******##*###########**#+                    
                     +#######*****************#####=.==+++=-#%####%%%#%%%%%%#      .*########********************##-                   
                     ##############*#**###*########*==++++=--#######%%@%##%%#      *###############*#**********####+                   
                    =##############################+==++=====--+#%%%%%%%%%#%%.    .################################+                   
                    +##############################=-==+++++++==-==+#%%%%#+=+*+   =################################+                   
                    -###%#############################*******+******++++********=-=*###############################-                   
                    .-################################***************************#==*%%###########################*.                   
                    ..:=###############################**************************#*=-:-*#%%%%#####################-                    
                   ...::::+*###%#%##############++######**********************#####+=-::::--=+##%%%%%%%%%%%%%%#*=:                     
                   ...:::::......::-==+***++----=+#######*******************#######+=-::::::::::::-:-----------:.                      
                   ...:::::::::....:::::::::::--==#########**#***********##########+=--::::::::::::::::::-----::.                      
                   ...:::::::::.:::::::::::::--==.:#############******############**+---::::::::::::::::------:.                       
                    .:::::::::::::::::::::::---=-..*#############################*+*+=---:::::::-::::-::::---:.                        
                    .:::::::::::::::::::::::---=-..:*###########################+.+*+=----::::::-::---::::--::.                        
                    .::::::::::::::-:::::::---==-. .:-*########################=:.++++=----:::::-----:-:::--:.                         
                     ::::::::::::::-::::::---===:  .::::+##################*+::...=+++=--------------:::::-:.                          
                      ::::::::::::--::::::---==-.  ..:.::::--===++++==--:::::...:.-=++==------------:::::.:.    .::.                   
                      .::::::::::---:::::---==-:   ..::::::::::::::::::::::::::::::==+==-------=-::::::::.      =*#=                   
                       --:::::::------:::---=-.     .:::::::::::::::::::::::::::::.-====------==-::::::::        ::                    
                    .=+= :-------------::-==-        .:::::::::::---::::::::::::-. .:=-====--==--::::::.-=..  .                        
                  .::-.   .-------==--=--==:.         .-----------==------------:  :::======++=----:-:   .--:-=.                       
                 .:=-=+-   .=+====+=+++***:-=..:.   .:===*-==++++++++++++===*+-:-.:-:=+-:+*###*######**++**-:*#+***+**+===-.  ......   
   *###***#*#**=-:=*=+#*****###******###*:=-==#*###=====:####*****####*#####+----+=*-=#***##**##**#**##***+:=##*####****++++++++===-   
  =%%%%%%%###+.==:+##*+*###%%%%########+-+*-+==%%##-#*-##+*#######%@%*#######+:=-*##==*###*##%%%%##*#%####-*##*####********+++++--:.   
  +@@%%#%%%%%%%%=-##%%%%%%%%%@%%%%%##*=-*#=:#*#%%%%*##=+%%%%%%%%%%%%##%%%%%%#==#++##*:+#%%%%%%%%%%%%%##%##*###%%%%####********+++==-.  
  +@@@%%@%@@%%%#-=#%%%%%%%%%%%%%%%%%%#%%##-=#%%@%%%###--##%%%@%%%%%%%%%%%@@%+-*%%%%%#:=#%%%%%%%%%%%%%%%%%##%%%%%#######*****++++=-:.   
  =%%##%%%######==##########%%########%##+-*######%%%%#.*##%%#%%%%%%%%%%%%##.+#%%%%%#+-##%%%###%###############********===+=-:::.      
            ...:-:++==----=********+++***=-****#****###==##%%###%###########.######%#*=##**********#**********++++++++=----:...        
                                         ..         ...::-===-==++++==-=+***++**+++++***+==-:.  .::-----:.:-------:::..                
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
      **********    ***********                                    ***********                                *****                    
        ******        **  *****                                  ****     ****                                *****                    
         ******      ***   ***                                   ****       **                                 ***             *****   
          ******    ***  ******     *****   ******* ********************     *     ******    ****** *****    ******     ****** *****   
          ******    **    *****   ****  ***  *****   *****   *** **********      ****  *****  *************   *****   ****  *******    
           ******  **     *****  ****   ****  *****   *****  **   ************  *****   ***** ******  *****   *****  ****   ****       
            *********     ***** ************   ***** ****** **       ********** ****    ***** *****   *****   ***** *****              
             *******      ***** *****          ******* ******    *      ************    ***** *****   *****   ***** *****              
              *****       *****  *****     *    ******  *****   ***        **** ****#   ***** *****   *****   ***** ******             
              *****       *****  ******* ***     ****   ****    *****     ****  *****   ****  *****   *****   *****  *******  **       
               ***       *******  *********       **     **     *************     *********  *************** *******  *********
                                                                                                                                       
                                                                                                   .-=++*+++=:.                        
                                 .-+++=---.                                                     :+#***********:     ..                 
                               -****-   :+=-.                                                 :==+#***+@##+***+.....:-=-               
                              **#+**-.::=**-+                                               .==++*#************...:=-.                 
                             -*%@#***: .=+*+%                                              :=++++*#***********-...                     
                           .=+******: .+#*:-*.                                            :-+++++*%#*********#@@*                      
                           =+*******=*@%*+*+*=                                           .-=++*+=*@%###***##%@@%.                      
                         .=+#*******%*+++-=#**-               -+%%#%%#+::...            .-=++++++=+#@%%%%%%@@@@-                       
                        :==+%#****#@%++***%@%#@-            =%%@@%%@%%      ==-        :-=++++++++++++#@@@@@@@=                        
                       .++++=*%@@@@@@@@@@@@@@@#=:        .-=#%@%*##@%%+..:.:++.       .-=++++++++++*****++#####:                       
                       =###**+++=++***++++==+++*+.      :===#%%#@@*@%%%   .=*         -=+++++###################=                      
                      +##******###*****###########:    -++==*%%%%%%%%%%=.+%@=        :+**########################*                     
                     .####**++***##*###*##******###-  -+++==#%##%###%%%@@%%%+        #####*******##*###########**#+                    
                     +#######*****************#####=.==+++=-#%####%%%#%%%%%%#      .*########********************##-                   
                     ##############*#**###*########*==++++=--#######%%@%##%%#      *###############*#**********####+                   
                    =##############################+==++=====--+#%%%%%%%%%#%%.    .################################+                   
                    +##############################=-==+++++++==-==+#%%%%#+=+*+   =################################+                   
                    -###%#############################*******+******++++********=-=*###############################-                   
                    .-################################***************************#==*%%###########################*.                   
                    ..:=###############################**************************#*=-:-*#%%%%#####################-                    
                   ...::::+*###%#%##############++######**********************#####+=-::::--=+##%%%%%%%%%%%%%%#*=:                     
                   ...:::::......::-==+***++----=+#######*******************#######+=-::::::::::::-:-----------:.                      
                   ...:::::::::....:::::::::::--==#########**#***********##########+=--::::::::::::::::::-----::.                      
                   ...:::::::::.:::::::::::::--==.:#############******############**+---::::::::::::::::------:.                       
                    .:::::::::::::::::::::::---=-..*#############################*+*+=---:::::::-::::-::::---:.                        
                    .:::::::::::::::::::::::---=-..:*###########################+.+*+=----::::::-::---::::--::.                        
                    .::::::::::::::-:::::::---==-. .:-*########################=:.++++=----:::::-----:-:::--:.                         
                     ::::::::::::::-::::::---===:  .::::+##################*+::...=+++=--------------:::::-:.                          
                      ::::::::::::--::::::---==-.  ..:.::::--===++++==--:::::...:.-=++==------------:::::.:.    .::.                   
                      .::::::::::---:::::---==-:   ..::::::::::::::::::::::::::::::==+==-------=-::::::::.      =*#=                   
                       --:::::::------:::---=-.     .:::::::::::::::::::::::::::::.-====------==-::::::::        ::                    
                    .=+= :-------------::-==-        .:::::::::::---::::::::::::-. .:=-====--==--::::::.-=..  .                        
                  .::-.   .-------==--=--==:.         .-----------==------------:  :::======++=----:-:   .--:-=.                       
                 .:=-=+-   .=+====+=+++***:-=..:.   .:===*-==++++++++++++===*+-:-.:-:=+-:+*###*######**++**-:*#+***+**+===-.  ......   
   *###***#*#**=-:=*=+#*****###******###*:=-==#*###=====:####*****####*#####+----+=*-=#***##**##**#**##***+:=##*####****++++++++===-   
  =%%%%%%%###+.==:+##*+*###%%%%########+-+*-+==%%##-#*-##+*#######%@%*#######+:=-*##==*###*##%%%%##*#%####-*##*####********+++++--:.   
  +@@%%#%%%%%%%%=-##%%%%%%%%%@%%%%%##*=-*#=:#*#%%%%*##=+%%%%%%%%%%%%##%%%%%%#==#++##*:+#%%%%%%%%%%%%%##%##*###%%%%####********+++==-.  
  +@@@%%@%@@%%%#-=#%%%%%%%%%%%%%%%%%%#%%##-=#%%@%%%###--##%%%@%%%%%%%%%%%@@%+-*%%%%%#:=#%%%%%%%%%%%%%%%%%##%%%%%#######*****++++=-:.   
  =%%##%%%######==##########%%########%##+-*######%%%%#.*##%%#%%%%%%%%%%%%##.+#%%%%%#+-##%%%###%###############********===+=-:::.      
            ...:-:++==----=********+++***=-****#****###==##%%###%###########.######%#*=##**********#**********++++++++=----:...        
                                         ..         ...::-===-==++++==-=+***++**+++++***+==-:.  .::-----:.:-------:::..                
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
      **********    ***********                                    ***********                                *****                    
        ******        **  *****                                  ****     ****                                *****                    
         ******      ***   ***                                   ****       **                                 ***             *****   
          ******    ***  ******     *****   ******* ********************     *     ******    ****** *****    ******     ****** *****   
          ******    **    *****   ****  ***  *****   *****   *** **********      ****  *****  *************   *****   ****  *******    
           ******  **     *****  ****   ****  *****   *****  **   ************  *****   ***** ******  *****   *****  ****   ****       
            *********     ***** ************   ***** ****** **       ********** ****    ***** *****   *****   ***** *****              
             *******      ***** *****          ******* ******    *      ************    ***** *****   *****   ***** *****              
              *****       *****  *****     *    ******  *****   ***        **** ****#   ***** *****   *****   ***** ******             
              *****       *****  ******* ***     ****   ****    *****     ****  *****   ****  *****   *****   *****  *******  **       
               ***       *******  *********       **     **     *************     *********  *************** *******  *********
