........................................................................................................................................................................................................
.......................................................................................................................-----zzz---......................................................................
...................................................................................................................-@@@##@@@@@@@@@@@@-..................................................................
...............................................................................................................-z@###@@@@@@@@@@@@@@@@@@z................................................................
.................................................-...........................................................z@###@@@@@@@@@@@@@@@@@@@@@@@z-.............................................................
...............................................z@#@.......................................................-r@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@z............................................................
............................................-@###@z.....................................................-@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-..........................................................
....................................--....-@##@r-......................................................z##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-........................................................
....................................@@....@#@z.......................................................-@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@z.......................................................
....................................@#....rz........................................................z##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-.....................................................
....................................r#-............................................................r##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@z....................................................
....................................-#r...........................................................@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-..................................................
.....................................#@.....-...................................................-@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-.................................................
.....................................@#....@##@@@r@@@@.........................................-@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@z................................................
.....................................r#z...-@@#######@........................................r##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@z...............................................
......................................#@.......------........................................@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-..............................................
......................................@#-...................................................@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-.............................................
......................................-#@..................................................@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.............................................
.......................................@#r................................................@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............................................
........................................@#...............................................r#@@@@@@@@@@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@z...........................................
........................................-r.......@z.....................................-#@@@@@@@@@@@@@@@@@@@@@@##@@@rR---Rrr@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-..........................................
.................................................#@.....................................@#@@@@@@@@@@@@@@@@@@@@##@--------------R@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..........................................
.................................................@#@@..................................z#@@@@@@@@@@@@@@@@@@@#@r-------------------r@@@@@@@@@@@@@@@@@@@@@@@@@@@-.........................................
.................................................z##@-.................................@@@@@@@@@@@@@@@@@@@##@-----------------------r@@@@@@@@@@@@@@@@@@@@@@@@@@.........................................
.................................................-#@..................................-#@@@@@@@@@@@@@@@@@##r--------------------------@@@@@@@@@@@@@@@@@@@@@@@@@-........................................
..................................................#@..................................@#@@@@@@@@@@@@@@@@##-----------------------------r@@@@@@@@@@@@@@@@@@@@@@@@........................................
................................................-z##-.................................#@@@@@@@@@@@@@@@@@#-------------------------------r@@@@@@@@@@@@@@@@@@@@@@@-.......................................
...............................................z#####@...............................-#@@@@@@@@@@@@@@@@#r--------------------------------r@@@@@@@@@@@@@@@@@@@@@@@.......................................
...............................................r#@##@r...............................@#@@@@@@@@@@@@@@@#@----------------------------------@@@@@@@@@@@@@@@@@@@@@@@-......................................
...............................................-###@.................................@@@@@@@@@@@@@@@@@#------------------------------------@@@@@@@@@@@@@@@@@@@@@@@......................................
................................................-@r..................................#@@@@@@@@@@@@@@@#r------------------------------------r@@@@@@@@@@@@@@@@@@@@@@-.....................................
....................................................................................-#@@@@@@@@@@@@@@@@--------------------------------------@@@@@@@@#@@@@@@@@@@@@@@.....................................
....................................................................................z#@@@@@@@@@@@@@@#r--------------------------------------@@@@@@@@#@@@@@@@@@@@@@@.....................................
....................................................................................r#@@@@@@@@@@@@@@@-----------------------RR--------------r@@@@@@@#@@@@@@@@@@@@@#z....................................
..................................................r@@...............................@@@@@@@@@@@@@@@#@-----------------------r@@@@rr---------R@@@@@@@#@@@@@@@@@@@@@@@....................................
...............................................z@###@...............................@@@@@@@@@@@@@@@#----------------------------rr@@@@@rr----@@@@@@@#@@@@@@@@@@@@@@#-...................................
..............................................@##@##r...............................@@@@@@@@@@@@@@@#-------RR------------------------Rrr@@r--@@@@@@@#@@@@@@@@@@@@@@@@...................................
..............................................----#@................................@@@@@@@@@@@@@@@@------@@R--------------------------------@@@@@@#@@@@@@@@@@@@@@@@@...................................
.................................................@#r................................@@@@@@@@@@@@@@@@----r@r----------------------------------@@@@@@#@@@@@@@@@@@@@@@@#-..................................
................................................-#@.................................@@@@@@@@@@@@@@@@---@@R-----------------------------------r@@@@@#@@@@@@@@@@@@@@@@@@..................................
................................................@#r---..............................@@@@@@@@@@@@@@@@-R@r-------------------------------------r@@@@#@@@@@@@@@@@@@@@@@@@..................................
...............................................-##@###@z............................@@@@@@@@@@@@@@@@@@R--------------------------------------R@@@@#@@@@@@@@@@@@@@@@@@#-.................................
...............................................r###r--@#............................@@@@@@@@@@#@@@@#@-----------------------------------------@@@#@@@@@@@@@@@@-@@@@@@@@.................................
...............................................##@-...r#-...........................@@@@@@@@@@#@@@@@------------------------------------------@@@@@@@@@@@@@@@@--@@@@@@@.................................
..............................................r#@-....@#-...........................@@@@@@@@@@#@@@@@------------------------------r###@r------@@@@@@@@@@@@@@@@--@@@@@@#-................................
..............................................-@-.....@@............................@@@@@@@@@@#@@@@@@----------------------------r######R-----R-@@@@@@@@@@@@@@--@@@@@@@@................................
.....................................................z#@............................r@@@@@@@@@#@@@@@@----------------------------#######@-------@@@@@@@@@@@@@@--r@@@@@@@................................
.....................................................@#-............................-#@@@@@@@@@@@@@@@----------------------------########-------@@@@@@@@@@@@@@--R#@@@@@#-...............................
....................................................r#@..............................@@@@@@@@@@#@@@@@----rr----------------------########-------@@@@@@@@@@@@@@--r#@@@@@@@...............................
...................................................-#@...............................@@@@@@@@@@#@@@@@@--@##@---------------------@######@-------#@@@@@@@@@@@@@--r@@@@@@@@...............................
...................................................@#-...............................-@@@@@@@@@#@@@@@@-r####@---------------------@#####--------#@@@@@@@@@@@@@--@@@@@@@@@-..............................
...................................................r-.................................@@@@@@@@@#@@@@@@-@#####----------------------@@@@---------#@@@@@@@@@@@@@--@@@@@@@@#z..............................
......................................................................................-@@@@@@@@#@@@@zR-r#####r---------------------------------R#@@@@@@@@@@@@@-R#@@@@@@@@@..............................
.......................................................................................@@@@@@@@#@@@@@--R#####r---------------------------------R#@@@@@@@@@@@@r-@@@@@@@@@@@..............................
.......................................................-................................@@@@@@@@@@@@@---@####---------------------------R------R#@@@@@@@@@@@@z-@@@@@@@@@@#-.............................
.......................................................@@...............................-@@@@@@@@@@@#----@##@------------------------RRRRRRR---R#@@@@@@@@@@@@r@@@@@@@@@@@@@.............................
.......................................................@#................................@@@@@#@@@@@@@----R--------------------------RRRRRRR---R#@@@@@@@@@@@@@@@@@@@@@@@@@@.............................
.......................................................r#-................................@@@@#@@@@@@@-------------------------------RRRRRRR---r#@@@@@@@@@@@#@@@@@@@@@@@@@@-............................
.......................................................-#@................................-@@@#@@@@@@#r-------------------------------RRRR-----r#@@@@@@@@@@@#@@@@@@@@@@@@@@z............................
........................................................#@.................................r@@@@@@@@@@@---RRRR---------------------------------r#@@@@@@@@@@@#@@@@@@@@@@@@@@@............................
........................................................@#-.................................@@@@@@@@@@@--RRRRR---------------------------------r#@@@@@@@@@@@#@@@@@@@@@@@@@@@............................
........................................................r#z.................................r@@@@@@@@@@@-RRRRRR--------------------------------r#@@@@@@@@@@@#@@@@@@@@@@@@@@@-...........................
........................................................-#@.................................z@@@@@@@@@@@--RRRR---------------------------------r@@@@@@@@@@@@#@@@@@@@@@@@@@@@@...........................
.........................................................@#.................................-@@@@@@@@@@@@--RR----------------------------------r@@@@@@@@@@@@#@@@@@@@@@@@@@@@@...........................
.........................................................@#-................................-@@@@@@@@@@@@--------------------------------------r@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-..........................
.........................................................-#z.................................@@@@@@@@@@@@@-------------------------------------r@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@..........................
..........................................................-..................................@@@@@@@@@@@@@r----------------r--r@---------------@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@..........................
.............................................................................................@@@@@@@@@@@@@@------------rrr@@r@@---------------r@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@-.........................
.............................................................................................@@@@@@@@@@@@@@@--RR--------RrR-----------------r@@#@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@z.........................
.............................................................................................r@@@@@@@@@@@@#@@@@rR-------------------------r@@@@#@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@.........................
.............................................................................................-@@@@@@@@@@@@#@#r---r---------------------Rr@@@@@@#@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@.........................
.............................................................................................-@@@@@@@@@@@@##@----@r------------------r@@r#@@@@@#@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@-........................
.........................................................-....................................@@@@@@@@@@@@#@-----@@R-------------Rr@@@R--@zzzzz#@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@z........................
........................................................@@....................................@@@@@@@@@@@@#------@@@@@@@@@@@@@@r@@rR----r@zzzzz@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@........................
........................................................@#-...................................@@@@@@@@@@@@@------@#@@@@@@@zz@-----------@zzzzzz#@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@........................
........................................................r#-...................................r@@@@@@@@@@@-------##@@##@zzzz@----------R@zzzzzz#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-.......................
........................................................z#r...................................-@@@@@@@@@@@------R####@@rzzzz@z---------@@zzzzz@#@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@.......................
........................................................-#r....................................@@@@@@@@@@-------r#@@@rrrzzzz@z-rr@@@@rz@zzzzz@@#@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@.......................
........................................................-#@....................................@@@@@@@@@--------@@z@@rrrzzzz@zzzzzzzz.z@zzzzz@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-......................
.........................................................#@.--.................................@@@@@@@@z--------@zz@@rrrzzzz@.........zzzzzz@@r#@@@@@@@@@@.z@@@@@@@@@@@@@@@@@@@@@z......................
.........................................................#@-##-................................@#@@zzzz.--------@zz@@rrrzzzz@z@zzzzz..zzzzzz#@r#@@@@@@@@#z..-@@@@@@@@@@@@@@@@@@@@@......................
.........................................................#@@##r................................@#@@zzzz.-------R@zz@@rr@zzzz@zz-......zzzzz@@rr#@@@@@@@@#-....@@@@@@@@@@@@@@@@@@@@......................
.........................................................@##@#@........-......................-@##zzzzzz..-----r@zzz@rr@zzzz@........-zzzzz#@rr#@@@@@@@@@......z@@@@@@@@@@@@@@@@@@-.....................
.........................................................@##r@#-......r#-.....................-@@@zzzzzzzz.----@@zzz@rr@zzzz@..--zzz-@zzzz@#rrr#@@@@@@@#@.......-@@@@@@@@@@@@@@@@@@.....................
.........................................................@##z-#@.....z#@......................-@@@zzzzzzzzzzzzz@zzzz@@r@zzzz@zz@@@zzz@zzzz@@rrr#@@@@@@@#z.......@@@@@@@@@@@@@@@@@@@.....................
.........................................................r##-.@#@...@#@-......................z@#@@zzzzzzzzzzzzzzzzzz@rr@zzz@z......z@zzzz#rrrz#@@@@@@@#......-@@zzz@@@@@@@@@@@@@@@.....................
.........................................................-##-..@##@##@........................@@#@rrzzzzzzzzzzzzzzzzz@@r@zzz@z..zzz.@@zzz@@r#zz#@@@@@@#@.....-@@zzzzz@@@@@@@@@@@@@@z....................
.........................................................-##....-r@r-.........................@#@@rrrrzzzzzzzzzzzz@zz@@r@zzz@@....z.@zzzz#@@@zz#@@@@@@#@....-@@zzzz@@@@@@@@@@@@@@@@@....................
..........................................................##..................................@#zzzrrrrrzzzzzzzzzz@zzz@r@@zzz@....zz@zzz@#r#zzz#@@@@@@#-...-@@zzzz@@@rr@@@@@@@@@@@@@....................
..........................................................@#..................................@@zzzz@rrrrrzzzzzzz@zzzz@@r@zzz@..zzzz@zzz#@@@zzz#@@@@@#@....@@zzzz@@r@rzzz@@@@@@@@@@@-...................
..........................................................zr..................................@@zzzzzz@rrrrr@zzzz@.zzzz@r@zzz@z.zzz@@zz@#@#zzzz#@@@@@#@...@@zzzz@@r#@zzzzz@@@@@@@@@@@...................
..............................................................................................@@zzzzzzzz@@rrrrrr@@.z@zz@@#zzz@z.zzz@@zz@@#@zzz@#@@@@@#-..r#zzzz@#r#@zzzzzzz@@@@@@@@@@...................
..............................................................................................@@zzzzzzzzzzz@rrrr@-..@zzz@@@zz@z.zzz@zzz#@#zzz@z#@@@@@@..-@@zzz@#@#@zzzzzzzz@@@@@@@@@@-..................
.............................................................................................-#@z.zzzzzzzzzzzzz@@...z@zz@@@zz@@.zzz@zz@@#@zz@@.@@@@@#@..@@zzz@#@#@zzzzzzzzz@@@@@@@@@@z..................
.............................................................................................-#@@-..zzzzzzzzzzz@@....@zz@@@zzz@...z@zz#@@zz@@..@@@@@#z.-@zzzz#@@@zzzzzz@@@z@@@@@@@@@@@..................
.............................................................................................-@@@@....zzzzzzzzz@z....-@zz@@@zz@zz.@@z@##@zz@z..@@@@@@.-@@zzz@@@#zzzzzz@@-z@@@@@@@@@@@@..................
.............................................................................................-@@@@@.....zzzzzz@@....z.@@zz@@zz@zzz@zz@#@zz@z...@@@@@z..@@zz@@@#@zzzzz@@---r@@@@@@@@@@@z.................
.............................................................................................-#@@@@@.......zz@@z..-@@..@zz@@zz@zzz@z@#@zz@@....@@@@@...@zzz@@@@zzzzz@@.----@@@@@@@@@@@@.................
.............................................................................................z@@@@@@@-..........-@@@@..-@zz@@zzz.z@z@#@z@@.....@@@@z...-@zz@r@zzzzzz@-------@@@@@@@@@@@.................
.............................................................................................z@@@@@@@@z-......-@@@@@@...-zz@@zz@zz@z#@z@@......@@@@.....@@@@rrzzzzz@z--------@@@@@@@@@@-................
.............................................................................................z@@@@@@@@@@@@@@@@@@@@@@@.....zz@@z@z@@@@z@@.......z@@@.....z@@@@zzzzzz@.--------R@@@@@@@@@z................
.............................................................................................-@@@@@@@@@@@@@@@@@@@@@@@.....-zz@zzz@@#@@@........-@@@.....z@@@@zzzzzzz----------r@@@@@@@@@................
.............................................................................................-@@@@@@@@@@@@@@@@@@@@@@@......zz@@zz@@@@@.........-@#@.....-@@@@zzzzzz.-----------@@@@@@@@@................

Copyright ©2009 Richard Chapling