#!/usr/bin/env python
# -*- coding: utf-8 -*-

#################################################################################
# c2005 by Paul Sherman <psherma1@rochester.rr.com> http://www.pcbypaul.com     #
#									        #
# This program is free software; you can redistribute it and/or			#
# modify it under the terms of the GNU General Public License			#
# as published by the Free Software Foundation; either version 2		#
# of the License, or (at your option) any later version.			#
#										#
# This program is distributed in the hope that it will be useful,		#
# but WITHOUT ANY WARRANTY; without even the implied warranty of		#
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the			#
# GNU General Public License for more details.					#
#										#
# You should have received a copy of the GNU General Public License		#
# along with this program; if not, write to the Free Software			#
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.   #
#################################################################################
##  importing with system requirement checks ####################################

import sys, os, time, commands, string, shutil, re, ConfigParser
import pygtk

import gettext 
APP="fontpage"  
DIR="/usr/local/share/locale"
gettext.textdomain(APP)  
gettext.bindtextdomain(APP, DIR)
_ = gettext.gettext

import gobject
if gobject.pygtk_version < (2,5,9):
    print >>sys.stderr, _("pyGTK version 2.6 or greater is required for this application")
    raise SystemExit
import gtk

try:
	import pango
except:
	print >> sys.stderr, _("Cannot load Pango")
	raise SystemExit

f = commands.getoutput('type -path fc-list')
if not f:
	print >> sys.stderr, _("You need FontConfig to run FONTpage")
	raise SystemExit

appPath = os.path.realpath(sys.argv[0])
config = ConfigParser.ConfigParser()
cfile = os.path.join(os.path.expanduser("~/"), ".fontpage")

defaults = '[defaults]\n'
defaults = defaults + 'default_font = unknown\n'
defaults = defaults + 'bgcolor = #DCDAD5\n'
defaults = defaults + 'fgcolor = #000000\n'
defaults = defaults + 'fsize = 32\n'
defaults = defaults + 'ftext = Enter Text Here\n'
defaults = defaults + 'lodir = unknown\n'
defaults = defaults + 'lsdir = unknown\n'
defaults = defaults + 'lastw = 0\n'
defaults = defaults + 'lasth = 0\n'

############### now for our icons and font_description  ########################		
font_desc = pango.FontDescription()

bar_xpm = [
"1200 46 65 1",
" 	c None",
".	c #7E1816",
"+	c #AA120D",
"@	c #2C475B",
"#	c #77302D",
"$	c #D60E0A",
"%	c #654546",
"&	c #FF1100",
"*	c #9E383C",
"=	c #90403E",
"-	c #7D4C6A",
";	c #675875",
">	c #925522",
",	c #4A6983",
"'	c #606182",
")	c #666664",
"!	c #AC4663",
"~	c #76726F",
"{	c #9B5F72",
"]	c #757290",
"^	c #C65363",
"/	c #AF6D1F",
"(	c #B26266",
"_	c #6C7EAE",
":	c #FB4A48",
"<	c #C7627F",
"[	c #C87904",
"}	c #F15A5B",
"|	c #8A8AA2",
"1	c #9A8D8B",
"2	c #BF7A93",
"3	c #EC7372",
"4	c #DD8E1E",
"5	c #EC8187",
"6	c #A99DA8",
"7	c #EF9C02",
"8	c #A0A4BA",
"9	c #AAA6A2",
"0	c #E88D96",
"a	c #DA97A0",
"b	c #D09EB4",
"c	c #8BB9F6",
"d	c #F0B02F",
"e	c #A2BDE6",
"f	c #B4BCCF",
"g	c #DDAEB4",
"h	c #C3C1BE",
"i	c #C3C2CB",
"j	c #DDC098",
"k	c #D8BAC8",
"l	c #F8C461",
"m	c #D3D2CD",
"n	c #BAD7F9",
"o	c #DFCCD6",
"p	c #D4D6E0",
"q	c #E8CFD3",
"r	c #FAD586",
"s	c #CEE3F8",
"t	c #DFE2DE",
"u	c #FEE57C",
"v	c #DFF0F9",
"w	c #EBEDEA",
"x	c #FFF4B9",
"y	c #EEF5F7",
"z	c #FCFEFB",
"                                                                                               zzzzzzzzzzzzzzzzzzzzwwwmzzwtt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ",
"                                                                                               zzzzzzzzzzzzzzzzzzzzwwwmzzzwtt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
"                                                                                               zzzzzzzzzzzzzzzwwwwywwwhzzzzwtt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ",
"                                                                                               zzzzzzzzzzzypf888888fiphzzzzzztt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ",
"                                                                                               zzzzzzzzzyi88ipppppwppffiwwwwwwmm                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ",
"                                                                                               zzzzzzzzt|8ii88fpppffippfiihhhhhhm                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ",
"                                                                                               zzzzzzzp|ff8fnvyzzzzysffwifptttttt)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ",
"                                                                                               zzzzzzp|f88svvyyyzzzzyysfppfpttttw~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ",
"                                                                                               zzzzzp]f8evvvvyyyyzzyyyyvpppfttttw~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ",
"                                                                                               zzzzy|8|evvvvvyyyyyyyyyyvifpiiwwwz~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ",
"                                                                                               zzzzf|8_svvvvvvyyytqqqqi6anfwfpwwz~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,zzzy]8]essvvvvvigaaagggggopeipizwz~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,zzzi]8_nssvvviaagqqqqqqoooknewfwzz~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",
"*******************************zzzzzzz*zzzzzzz*zzzzzzz*zzzzzzz*********************************zzz||]cssssibakooqqqqqqoooaeepipzz~**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@@@@z$z@@@@@z$z@@@@@z$z@@@@@z$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$zzz'|_cnss62kokgaaaaagokkk2fcfpizz~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@@@@z$z@@@@@z$z@@@@@z$z@@@@@z$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$zzw'8_cnn|2kka2188882gkkkb|se8tfwz~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@zzzz$z@@z@@z$z@@z@@z$zz@@zzz$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$zzp'|_ce-<bb2|8ssvsf2kkkk28sn8pfwz~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@z@@z$z@@z@@z$$z@@z$$zzzzzzz$zzzzzz$zzzzzzz$zzzzzzz$$$zzp'|_c-<b2!;fsssss|<bbbb{fsn8p8wz~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@z@@z$z@@z@@z$$z@@z$$z@@@@@z$z@@@@z$z@@@@@z$z@@@@@z$$$zzp'|_;<22<;fssssss{0aab<;nnn8p8wz~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@z@@z$z@@z@@z$$z@@z$$z@@@@@z$z@@@@z$z@@@@@z$z@@@@@z$$$zzw'|_!222-8sssvvvi^a02a^|snc8pfwz~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@zzzz$z@@z@@z$z@@z@@z$$z@@z$$z@@z@@z$zzzz@z$z@@z@@z$z@@z@@z$$$www'|'222!|ssvvvvv63a000!fsncfpiwz~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@@@@z$z@@z@@z$z@@z@@z$$z@@z$$z@@z@@z$z@@@@z$z@@z@@z$z@@z@@z$$$www|]'22<-fsvvvvvv(50005{ssneifpwz~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@@@@z$z@@z@@z$z@@z@@z$$z@@z$$z@@z@@z$z@@@@z$z@@z@@z$z@@z@@z$$$www|']]2^|svvvvvym^0050^|sse8p8wwz)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@zzzz$z@@z@@z$z@@z@@z$$z@@z$$z@@z@@z$z@@z@z$z@@z@@z$z@@z@@z$$$www+;]'2!fvvvvyyy635555^fvsefffwwz)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@z@@z$z@@z@@z$$z@@z$$z@@z@@z$z@@z@z$z@@z@@z$z@@z@@z$$$ww1$^']']svvvvyyy(3553}(pve8p8pwwz)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@z@@z$z@@z@@z$$z@@z$$z@@z@@z$z@@z@z$z@@z@@z$z@@z@@z$$$ww*::-']_nsvvyyy6}33}::1vs8i88iwwz)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@z@@z$z@@z@@z$$z@@z$$z@@z@@z$z@@z@z$z@@z@@z$z@@@@@z$$$wm$:::;]]]nsvyym3}::::}9s8i88fiwwz)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@z@@z$z@@z@@z$$z@@z$$z@@z@@z$z@@z@z$z@@z@@z$z@@@@@z$$$w9$:::};]]]fvyt^::::}3af|f88f8pwwz)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@z@@z$z@@z@@z$$z@@z$$z@@z@@z$z@@z@z$z@@z@@z$z@@zzzz$$$w1$&&&&$;']']8k0000ag6|8f||88i|ijl~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@@@@z$z@@z@@z$$z@@z$$z@@@@@z$z@@@@z$z@@@@@z$z@@@@@z$$$w1$&&&&&+]']|]']|||]|88||]||8f]1[d4$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$z@@z$$$$z@@@@@z$z@@z@@z$$z@@z$$z@@@@@z$z@@@@z$z@@@@@z$z@@@@@z$$$w1$&&&&&&$+-']||||888|]{$&^+]]9/rud4$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$zzzz$$$$zzzzzzz$zzzzzzz$$zzzz$$z@@zzzz$zzzzzz$zzzz@@z$zzzzzzz$$$w9$&&&&&&&&&$*-;']]{{}$&&&.~|~/lxxud4$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
"**************************************************************z@@z***********z@@@@@z***********wm#&&&&&&&&&$.~#&&&&&&&&+#1m1/4lrxxud4***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,z@@z,,,,,,,,,,,z@@@@@z,,,,,,,,,,,ww1+&&&&&&$+%9t=&&&&&&+#~htw>[7dlrxxud4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,zzzz,,,,,,,,,,,zzzzzzz,,,,,,,,,,,wwt~.+$$+.%1hww1+$$+.#~9twwwm>[7dlrxxud4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",
"                                                                                               tttm9~))~9httttm1))~1htttttttm>[7dlrxxud4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ",
"                                                                                               tttttmmmmttttttttmmmttttttttttm>[7dlrxxud4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ",
"                                                                                               tttttttttttttttttttttttttttttttm>[7dlrxxud4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ",
"                                                                                               wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwm>[7dlrxxud4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
"                                                                                               hhhhhhhhhhhhhh99999999999999999991>[7dlrxxud4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ",
"                                                                                                %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >[7dlrxxud4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
"                                                                                                                                   >[7dlrxr49                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
"                                                                                                                                    >[7dll/m8                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
"                                                                                                                                     >[74/hf|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
"                                                                                                                                      >[/18]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ",
"                                                                                                                                       >%''                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "]

close_xpm = [
"32 32 32 1",
" 	c None",
".	c #D5A7A5",
"+	c #DFBBBB",
"@	c #F0D0CF",
"#	c #FAD9D8",
"$	c #F7E3E3",
"%	c #CA8C8C",
"&	c #DD9E9E",
"*	c #C77878",
"=	c #EDB8B8",
"-	c #CD6F6E",
";	c #FDFFFC",
">	c #E08E8E",
",	c #BA5151",
"'	c #E88786",
")	c #D76868",
"!	c #B43E3A",
"~	c #E15B5A",
"{	c #D13334",
"]	c #A11B1C",
"^	c #EB7A79",
"/	c #D00000",
"(	c #E91C14",
"_	c #EC2F23",
":	c #E60000",
"<	c #C33F3F",
"[	c #ED4E4B",
"}	c #BC3532",
"|	c #B1090B",
"1	c #CF1E1F",
"2	c #ED3931",
"3	c #BA0001",
"                                ",
"    .+@@@@@@@@@###$$$$$$$$$+    ",
"   .+..............++++++++@#   ",
"  ..%%%%%%%%%&&%%&&&&&&.....@+  ",
" +*%%%%%%%%%%%%+.%&&&&&&&&&&&=+ ",
" +-%%****%%%%%@;;+>>>>>&&&&&&>+ ",
" +,***********$;;@'>>>>>>>>>&)+ ",
" +!*******--*-$;;@--*'>>>>>>>~+ ",
" +!*-*----%%--$;;=-.@.-'''''>{+ ",
" +]-----,+;;.)#;;=>;;;+-^^''~/+ ",
" +],,,,,+;;;#~#;;=';;;;+)^^^(/+ ",
" +],,,,%;;;$'~#;;=~>$;;;&~^_:/+ ",
" +],,!,$;;$)<~@;;=~~^$;;$~_:(/+ ",
" +]!!<%;;;'<~<#;;=[~[';;;^:((/+ ",
" +]!<}+;;#<<<<&;;'[[[[#;;&:((/+ ",
" +|}}}#;;&{<<{{^~[[[[[>;;#(((_+ ",
" +|}}}$;;>1{{{{{{{[[2(^;;$_(__+ ",
" +|}]}$;;>1{{{{{{{2(::^;;#_(_2+ ",
" +|]||=;;=1111112(::::=;;=(__2+ ",
" +|||3';;;<111///::::{;;;'(__2+ ",
" +|||3{;;;@3////::::(@;;;2__22+ ",
" +3|333';;;=1///:::1=;;;'(_222+ ",
" +3|3333=;;;$>{1_{'$;;;=(__222+ ",
" +3333333=;;;;;;;;;;;;=_(__222+ ",
" +3333333/^$;;;;;;;;$^((___222+ ",
" +3333333///~&#$$#=~_:((__2222+ ",
" +1|33333//////((:::((((___22[+ ",
"  !{|3333//////:::::(((((__2[!  ",
"   ![{{{{{2222222222222[[[[[!   ",
"    !!!!!!!!!!!!<<}}}}}}}}}!    ",
"                                ",
"                                "]

icon_xpm = [
"48 48 866 2",
"  	c None",
". 	c #FCFCFC",
"+ 	c #F9F9F9",
"@ 	c #F5F5F5",
"# 	c #F2F2F2",
"$ 	c #ECECEC",
"% 	c #D2D2D2",
"& 	c #FBFBFB",
"* 	c #DCDCDC",
"= 	c #E1E1E1",
"- 	c #CCCCCC",
"; 	c #F0F0F3",
"> 	c #E5E5EA",
", 	c #E6E6EB",
"' 	c #E7E7EB",
") 	c #F4F4F5",
"! 	c #C9C9C9",
"~ 	c #DBDBDB",
"{ 	c #F5F5F7",
"] 	c #D0D0D9",
"^ 	c #B3B3C3",
"/ 	c #9E9EB3",
"( 	c #A0A0B6",
"_ 	c #A3A3B7",
": 	c #A5A5B9",
"< 	c #A9A9BB",
"[ 	c #ABABBE",
"} 	c #B2B2C3",
"| 	c #C4C4D0",
"1 	c #D6D6DC",
"2 	c #C4C4C4",
"3 	c #F7F7F7",
"4 	c #E2E2E2",
"5 	c #F5F5F6",
"6 	c #C6C6D2",
"7 	c #9A9AB0",
"8 	c #A2A2B7",
"9 	c #C3C3D1",
"0 	c #CDCDD9",
"a 	c #DBDBE4",
"b 	c #D2D2DC",
"c 	c #D5D5DE",
"d 	c #D7D7E1",
"e 	c #E3E3EA",
"f 	c #DEDEE6",
"g 	c #CFCFDA",
"h 	c #B7B7C6",
"i 	c #B4B4C3",
"j 	c #CACAD1",
"k 	c #EEEEEE",
"l 	c #F0F0F0",
"m 	c #E7E7E7",
"n 	c #D3D3D3",
"o 	c #D5D5D5",
"p 	c #DFDFE5",
"q 	c #9393AA",
"r 	c #9C9CB2",
"s 	c #C3C3D0",
"t 	c #C2C2D0",
"u 	c #ABABC0",
"v 	c #A3ABC6",
"w 	c #B4BFD9",
"x 	c #CED8E9",
"y 	c #DFE2EC",
"z 	c #CFD8EA",
"A 	c #C3C7DA",
"B 	c #ADB3CD",
"C 	c #DCDCE5",
"D 	c #B9B9C9",
"E 	c #B9B9C5",
"F 	c #C1C1C4",
"G 	c #C6C6C6",
"H 	c #C8C8C8",
"I 	c #CBCBCB",
"J 	c #CFCFD9",
"K 	c #8888A2",
"L 	c #B5B5C5",
"M 	c #BBBBCA",
"N 	c #979BB5",
"O 	c #B2C1D9",
"P 	c #C3DFFC",
"Q 	c #E9F9FD",
"R 	c #F0FBFD",
"S 	c #F4FCFD",
"T 	c #F6FCFD",
"U 	c #F9FCFD",
"V 	c #F8FCFD",
"W 	c #F4FBFC",
"X 	c #D5E7FB",
"Y 	c #BCC7DF",
"Z 	c #BEBECC",
"` 	c #CACAD6",
" .	c #BABAC9",
"..	c #DBDBDE",
"+.	c #646464",
"@.	c #CDCDD7",
"#.	c #84849E",
"$.	c #BBBBCB",
"%.	c #9F9FB5",
"&.	c #9CA9C9",
"*.	c #C8E3FB",
"=.	c #E4F7FD",
"-.	c #EAF8FD",
";.	c #EDFAFD",
">.	c #F1FBFD",
",.	c #F2FBFD",
"'.	c #F5FCFD",
").	c #F2FBFC",
"!.	c #EAF9FB",
"~.	c #CFE4FA",
"{.	c #B4BBD3",
"].	c #D5D5DF",
"^.	c #BABAC8",
"/.	c #DADADD",
"(.	c #F3F3F3",
"_.	c #737373",
":.	c #DBDBE2",
"<.	c #7E7E9B",
"[.	c #A1B6D9",
"}.	c #D8EFFD",
"|.	c #E4F6FD",
"1.	c #E7F8FD",
"2.	c #EAF9FD",
"3.	c #ECFAFD",
"4.	c #EFFBFD",
"5.	c #EEFAFC",
"6.	c #E8F6F9",
"7.	c #E1F0F9",
"8.	c #C6D0E0",
"9.	c #D6D6DF",
"0.	c #BABACA",
"a.	c #E1E1E3",
"b.	c #E3E3E3",
"c.	c #F3F3F5",
"d.	c #82829C",
"e.	c #A3A3B8",
"f.	c #9595AD",
"g.	c #9EB2D8",
"h.	c #D9EFFD",
"i.	c #DEF3FD",
"j.	c #E1F6FD",
"k.	c #E5F8FD",
"l.	c #EBF9FD",
"m.	c #EEFBFD",
"n.	c #EAF8FC",
"o.	c #E1F1F5",
"p.	c #CABEC5",
"q.	c #AFBFDA",
"r.	c #C5C5D2",
"s.	c #C5C5D1",
"t.	c #E9E9E9",
"u.	c #82829E",
"v.	c #8292BD",
"w.	c #D0E9FC",
"x.	c #D8EEFC",
"y.	c #DBF1FC",
"z.	c #DFF4FC",
"A.	c #E3F6FC",
"B.	c #E6F7FC",
"C.	c #E8F8FC",
"D.	c #EBF9FC",
"E.	c #E9F3F6",
"F.	c #E3E2E5",
"G.	c #DFD1D4",
"H.	c #DCC6C9",
"I.	c #D9C1C5",
"J.	c #DBC0C5",
"K.	c #C9C2C6",
"L.	c #B4989E",
"M.	c #E09FA6",
"N.	c #C5D1E9",
"O.	c #B3B9D0",
"P.	c #E8E8EF",
"Q.	c #B7B7C7",
"R.	c #DEDEE3",
"S.	c #F2F2F4",
"T.	c #7B7B98",
"U.	c #A0A0B5",
"V.	c #7C7FA1",
"W.	c #A7CAF3",
"X.	c #D1EAFC",
"Y.	c #D5ECFC",
"Z.	c #D9EFFC",
"`.	c #DDF2FC",
" +	c #E0F5FC",
".+	c #E4F6FC",
"++	c #DEEEF3",
"@+	c #CAC2C7",
"#+	c #C49B9F",
"$+	c #D19195",
"%+	c #D89599",
"&+	c #DE9EA2",
"*+	c #E3A7AB",
"=+	c #E4ACB0",
"-+	c #E1ABB0",
";+	c #E3A8AE",
">+	c #E4ABB2",
",+	c #E2D4DC",
"'+	c #DBD5E1",
")+	c #9EB7E4",
"!+	c #D3D3DE",
"~+	c #747474",
"{+	c #BDBDCA",
"]+	c #7B7B97",
"^+	c #9999B0",
"/+	c #7A91C4",
"(+	c #C4E1FC",
"_+	c #CFE8FC",
":+	c #D3EBFC",
"<+	c #D6EDFC",
"[+	c #DAF0FC",
"}+	c #D9EDF7",
"|+	c #B8B4BD",
"1+	c #C48C93",
"2+	c #E09FA4",
"3+	c #E7BDC2",
"4+	c #E8CED3",
"5+	c #E8D4D8",
"6+	c #E8D3D8",
"7+	c #E7D4D9",
"8+	c #E6D4D9",
"9+	c #E5D1D8",
"0+	c #E2CFD7",
"a+	c #DFCDD6",
"b+	c #DBB3BF",
"c+	c #A7CCEF",
"d+	c #A5B5D3",
"e+	c #B6B6C6",
"f+	c #EEEEF1",
"g+	c #9090A7",
"h+	c #9292A9",
"i+	c #7E7E9D",
"j+	c #7FAFEE",
"k+	c #C7E3FC",
"l+	c #CCE6FC",
"m+	c #D0E8FC",
"n+	c #BAC7D7",
"o+	c #B88895",
"p+	c #DB9AA5",
"q+	c #E1C3CC",
"r+	c #E3D2DA",
"s+	c #E5D1D7",
"t+	c #E6CED3",
"u+	c #E6CBD1",
"v+	c #E6CDD3",
"w+	c #E6CED4",
"x+	c #E5C9CF",
"y+	c #E3C7CE",
"z+	c #E1C5CE",
"A+	c #DFC4CE",
"B+	c #DBC8D4",
"C+	c #D291A0",
"D+	c #A5C4E1",
"E+	c #96B7E8",
"F+	c #D7D7DF",
"G+	c #6A6A8A",
"H+	c #9292AA",
"I+	c #727BA4",
"J+	c #80B5F9",
"K+	c #C5E0FC",
"L+	c #C9E4FC",
"M+	c #CBE5FB",
"N+	c #A8A0B4",
"O+	c #C68091",
"P+	c #D8B1C1",
"Q+	c #DBC9D6",
"R+	c #DEBBC7",
"S+	c #E0A5AE",
"T+	c #D5939B",
"U+	c #CA8A92",
"V+	c #C78890",
"W+	c #CC8B92",
"X+	c #D4929A",
"Y+	c #E1B6BF",
"Z+	c #DFC3CC",
"`+	c #DEBFCA",
" @	c #DBBECB",
".@	c #D8B9C9",
"+@	c #B17A8B",
"@@	c #AEC7DB",
"#@	c #8FBFF9",
"$@	c #E6E6EA",
"%@	c #686889",
"&@	c #9797AE",
"*@	c #7084B7",
"=@	c #79AFF5",
"-@	c #B5D2F9",
";@	c #BAD4F4",
">@	c #A288A0",
",@	c #CC889E",
"'@	c #D2B8CC",
")@	c #D5BACB",
"!@	c #D492A2",
"~@	c #AE7A88",
"{@	c #928693",
"]@	c #9299A5",
"^@	c #97A6B1",
"/@	c #9AABB5",
"(@	c #95A5AF",
"_@	c #AD7A85",
":@	c #DDB0BC",
"<@	c #DBBCC8",
"[@	c #DAB8C6",
"}@	c #D8BACA",
"|@	c #D5A0B2",
"1@	c #978497",
"2@	c #C4DDF3",
"3@	c #9ECAFD",
"4@	c #A5AFCD",
"5@	c #E1E1E8",
"6@	c #D3D3DC",
"7@	c #666687",
"8@	c #8A8AA3",
"9@	c #6D88C1",
"0@	c #87B7F6",
"a@	c #A4C2EA",
"b@	c #7B486E",
"c@	c #BF6689",
"d@	c #C8A8C3",
"e@	c #CEA8BF",
"f@	c #C17C90",
"g@	c #8A8193",
"h@	c #9BB0C1",
"i@	c #BAD0E0",
"j@	c #C9DEED",
"k@	c #CFE5F3",
"l@	c #D1E6F6",
"m@	c #ACBCCF",
"n@	c #BE7082",
"o@	c #D7B0C1",
"p@	c #D8B3C3",
"q@	c #D6B1C2",
"r@	c #D4B5C7",
"s@	c #C58296",
"t@	c #96A4BB",
"u@	c #C9E3FB",
"v@	c #B4D5FB",
"w@	c #A0ADCF",
"x@	c #DADAE3",
"y@	c #B0B0C2",
"z@	c #727272",
"A@	c #D3D3DB",
"B@	c #646486",
"C@	c #8686A0",
"D@	c #6B86C0",
"E@	c #8EB8EF",
"F@	c #7C476E",
"G@	c #BC6185",
"H@	c #C18DAE",
"I@	c #C589A8",
"J@	c #B24865",
"K@	c #6C617B",
"L@	c #A7BDD5",
"M@	c #CADFF5",
"N@	c #D1E5FB",
"O@	c #D2E5FB",
"P@	c #D1E4FA",
"Q@	c #93849A",
"R@	c #D1687F",
"S@	c #D195AC",
"T@	c #D08FA8",
"U@	c #D099B1",
"V@	c #D0A0B7",
"W@	c #A3738A",
"X@	c #AEC8E1",
"Y@	c #C6E1FB",
"Z@	c #B0D2F9",
"`@	c #9FACCE",
" #	c #D9D9E3",
".#	c #AEAEC0",
"+#	c #717171",
"@#	c #D1D1D9",
"##	c #636384",
"$#	c #6884BD",
"%#	c #745885",
"&#	c #BC577A",
"*#	c #C186A7",
"=#	c #C688A7",
"-#	c #C55975",
";#	c #6D546E",
">#	c #A9BDD5",
",#	c #CFE3F9",
"'#	c #D2E4F9",
")#	c #D4E5F9",
"!#	c #D5E6F9",
"~#	c #D5E7F9",
"{#	c #D3E4F6",
"]#	c #9E5C6E",
"^#	c #D98396",
"/#	c #D690A4",
"(#	c #D48BA1",
"_#	c #D28FA7",
":#	c #CE6B85",
"<#	c #7D6580",
"[#	c #BFD9F5",
"}#	c #C0DCF9",
"|#	c #ABCEF8",
"1#	c #9FABCC",
"2#	c #D8D8E1",
"3#	c #ACACBF",
"4#	c #EDEDEF",
"5#	c #616182",
"6#	c #6472A1",
"7#	c #B1476C",
"8#	c #C17FA1",
"9#	c #C6809F",
"0#	c #CA728D",
"a#	c #87435C",
"b#	c #9BAFC6",
"c#	c #D1E4F9",
"d#	c #D4E6F9",
"e#	c #D7E8F9",
"f#	c #D9EAF9",
"g#	c #DAEAF9",
"h#	c #DBEBF9",
"i#	c #BBC7D5",
"j#	c #C25463",
"k#	c #DE91A0",
"l#	c #DC8B9C",
"m#	c #D9899C",
"n#	c #D68DA2",
"o#	c #C15067",
"p#	c #858EA7",
"q#	c #C5DBF6",
"r#	c #BED8F6",
"s#	c #9AC3F6",
"t#	c #A3A9C3",
"u#	c #B3B3C2",
"v#	c #6F6F6F",
"w#	c #676787",
"x#	c #7E7E99",
"y#	c #636892",
"z#	c #BE7698",
"A#	c #C47997",
"B#	c #C97E9A",
"C#	c #B74761",
"D#	c #7C8299",
"E#	c #CDE0F4",
"F#	c #D4E6F8",
"G#	c #D8E8F8",
"H#	c #DAEAF8",
"I#	c #DDECF8",
"J#	c #DFEDF8",
"K#	c #A4949F",
"L#	c #E16B75",
"M#	c #E3929D",
"N#	c #E18A98",
"O#	c #DE8A98",
"P#	c #DB8495",
"Q#	c #A14A5E",
"R#	c #A9BCD2",
"S#	c #C7DCF5",
"T#	c #C0D7F4",
"U#	c #8DB6EF",
"V#	c #CECED9",
"W#	c #BFBFCB",
"X#	c #6D6D6D",
"Y#	c #8989A1",
"Z#	c #747492",
"`#	c #6A6A8B",
" $	c #B47596",
".$	c #C87894",
"+$	c #CD6982",
"@$	c #814B62",
"#$	c #B5C9DD",
"$$	c #D5E6F8",
"%$	c #D9E9F8",
"&$	c #DFEEF8",
"*$	c #E2F0F8",
"=$	c #E4F1F8",
"-$	c #E3F0F6",
";$	c #AC6A70",
">$	c #EA8288",
",$	c #E88E95",
"'$	c #E68A93",
")$	c #E38B96",
"!$	c #DF7280",
"~$	c #8A5E6F",
"{$	c #C7DAEE",
"]$	c #CADEF5",
"^$	c #BCD5F5",
"/$	c #99B0DB",
"($	c #C5C5D3",
"_$	c #AFAFC1",
":$	c #D0D0D8",
"<$	c #8B7683",
"[$	c #797996",
"}$	c #847096",
"|$	c #CA7691",
"1$	c #C04B63",
"2$	c #82849A",
"3$	c #D4E5F8",
"4$	c #E1EFF8",
"5$	c #E6F3F8",
"6$	c #E8F5F8",
"7$	c #CDD6D9",
"8$	c #CF5E5F",
"9$	c #EF8E90",
"0$	c #ED8B8F",
"a$	c #EB888E",
"b$	c #E78B93",
"c$	c #DB5F6A",
"d$	c #8D8896",
"e$	c #D2E4F6",
"f$	c #CDDFF6",
"g$	c #ACCDF7",
"h$	c #9EA3BC",
"i$	c #A1A1B6",
"j$	c #E8E8EA",
"k$	c #6A6A6A",
"l$	c #E8E7E7",
"m$	c #B02020",
"n$	c #6F5977",
"o$	c #747493",
"p$	c #626284",
"q$	c #AF7394",
"r$	c #99445B",
"s$	c #AABCD0",
"t$	c #D5E6F6",
"u$	c #DAEAF6",
"v$	c #DFEDF6",
"w$	c #E7F3F6",
"x$	c #EAF5F6",
"y$	c #EBF5F6",
"z$	c #B39F9F",
"A$	c #EF6C6C",
"B$	c #F38D8D",
"C$	c #F28989",
"D$	c #EF8A8D",
"E$	c #EB858B",
"F$	c #C0535B",
"G$	c #A8B3BF",
"H$	c #D4E5F4",
"I$	c #C6DDF5",
"J$	c #A0B5DA",
"K$	c #B4B4C4",
"L$	c #B8B8C6",
"M$	c #696969",
"N$	c #AA9292",
"O$	c #EE1D1D",
"P$	c #C05663",
"Q$	c #5E5E81",
"R$	c #676991",
"S$	c #816D8C",
"T$	c #C8DBED",
"U$	c #D7E7F6",
"V$	c #DCEBF6",
"W$	c #E1EEF6",
"X$	c #E6F1F6",
"Y$	c #EAF4F6",
"Z$	c #ECF5F6",
"`$	c #E9F1F1",
" %	c #C06666",
".%	c #F77F7E",
"+%	c #F68988",
"@%	c #F58787",
"#%	c #F27777",
"$%	c #EF565A",
"%%	c #A5585E",
"&%	c #C6D5DF",
"*%	c #D1E3F3",
"=%	c #ACC7EA",
"-%	c #979BB3",
";%	c #9B9BB0",
">%	c #D9D9DF",
",%	c #676767",
"'%	c #9B3B3B",
")%	c #FE3837",
"!%	c #FE4C4B",
"~%	c #785672",
"{%	c #696989",
"]%	c #6F6F8F",
"^%	c #6E78A0",
"/%	c #B6D5F7",
"(%	c #D0E6F7",
"_%	c #DDEBF5",
":%	c #E7F2F4",
"<%	c #EAF4F4",
"[%	c #EDF4F4",
"}%	c #BAA7A7",
"|%	c #F16665",
"1%	c #FA8685",
"2%	c #F97474",
"3%	c #F75D5C",
"4%	c #F44E4F",
"5%	c #F14D4F",
"6%	c #97777C",
"7%	c #DAE8F1",
"8%	c #C0DAF3",
"9%	c #979EB8",
"0%	c #CACAD4",
"a%	c #666666",
"b%	c #D6D3D3",
"c%	c #BE1716",
"d%	c #FE4342",
"e%	c #E94448",
"f%	c #645879",
"g%	c #707090",
"h%	c #70708F",
"i%	c #71789D",
"j%	c #B9D5F2",
"k%	c #CEE7F7",
"l%	c #DDEEF4",
"m%	c #E6F1F3",
"n%	c #D5D6D6",
"o%	c #D45A5A",
"p%	c #FD6766",
"q%	c #FD5958",
"r%	c #FC4F4F",
"s%	c #F94F4F",
"t%	c #F54F4F",
"u%	c #E54D4F",
"v%	c #A1A0A4",
"w%	c #C5D9EC",
"x%	c #959CB5",
"y%	c #C4C4D1",
"z%	c #BFBFCD",
"A%	c #C4C4CF",
"B%	c #AEA2A2",
"C%	c #E2110F",
"D%	c #FE3C39",
"E%	c #FE3E39",
"F%	c #FE413D",
"G%	c #DE494D",
"H%	c #635677",
"I%	c #717190",
"J%	c #686D8F",
"K%	c #A7B9D4",
"L%	c #D4EDF7",
"M%	c #E3F2F4",
"N%	c #D6DADA",
"O%	c #C86363",
"P%	c #FC514F",
"Q%	c #FE4F4F",
"R%	c #FE5353",
"S%	c #FC5958",
"T%	c #F86261",
"U%	c #F36D6C",
"V%	c #CF8C8F",
"W%	c #A9B7CA",
"X%	c #9193AB",
"Y%	c #9E9EB4",
"Z%	c #9D9DB3",
"`%	c #D6D6DB",
" &	c #636363",
".&	c #9B8B8B",
"+&	c #F00400",
"@&	c #FE0B03",
"#&	c #FE0F06",
"$&	c #FE1209",
"%&	c #FE170E",
"&&	c #DC1B1D",
"*&	c #5E5B7C",
"=&	c #686888",
"-&	c #7F7F9B",
";&	c #78809E",
">&	c #A3AEC2",
",&	c #CCADB6",
"'&	c #F1A19F",
")&	c #F99B99",
"!&	c #FE9B99",
"~&	c #F7A8A6",
"{&	c #E0ADB4",
"]&	c #B7A2B3",
"^&	c #898CA5",
"/&	c #9898AE",
"(&	c #8D8DA7",
"_&	c #9393AB",
":&	c #A4A4B8",
"<&	c #9190A9",
"[&	c #CBCBD3",
"}&	c #DDC098",
"|&	c #E3AA55",
"1&	c #7E6D53",
"2&	c #978585",
"3&	c #F10700",
"4&	c #FE0900",
"5&	c #FE0800",
"6&	c #A91D1B",
"7&	c #736F89",
"8&	c #5E5E80",
"9&	c #767694",
"0&	c #85859F",
"a&	c #747694",
"b&	c #8688A2",
"c&	c #898BA4",
"d&	c #8C8FA8",
"e&	c #7A7B97",
"f&	c #81819C",
"g&	c #AEAEC1",
"h&	c #9696AD",
"i&	c #8B6D84",
"j&	c #80809C",
"k&	c #AB907A",
"l&	c #CD841D",
"m&	c #E8A42A",
"n&	c #D58D21",
"o&	c #998888",
"p&	c #EB0900",
"q&	c #FE1000",
"r&	c #FE0E00",
"s&	c #FE0F00",
"t&	c #E20900",
"u&	c #B72223",
"v&	c #824960",
"w&	c #9494AB",
"x&	c #8F8FA7",
"y&	c #9797AD",
"z&	c #84849F",
"A&	c #7C7C98",
"B&	c #A2596A",
"C&	c #E6241D",
"D&	c #F41508",
"E&	c #BA424A",
"F&	c #AA1615",
"G&	c #6E6881",
"H&	c #6B6B8B",
"I&	c #BCA38C",
"J&	c #BC781C",
"K&	c #EECC85",
"L&	c #FFE47C",
"M&	c #F4B530",
"N&	c #DA8E1D",
"O&	c #E8E8E8",
"P&	c #ABA7A7",
"Q&	c #C30B02",
"R&	c #FE1500",
"S&	c #FE1300",
"T&	c #FE1400",
"U&	c #E02418",
"V&	c #B03A42",
"W&	c #764E65",
"X&	c #675D7A",
"Y&	c #6D6D8C",
"Z&	c #8C6075",
"`&	c #9F5564",
" *	c #C33F41",
".*	c #ED2012",
"+*	c #F10D00",
"@*	c #821613",
"#*	c #756B6B",
"$*	c #8F8FA1",
"%*	c #897067",
"&*	c #AD6A1C",
"**	c #E2B564",
"=*	c #FFF3BB",
"-*	c #FFFCC5",
";*	c #DC901E",
">*	c #7F2D2A",
",*	c #FE1600",
"'*	c #FE1A00",
")*	c #FE1900",
"!*	c #FE1B00",
"~*	c #E10D00",
"{*	c #7B1A17",
"]*	c #797474",
"^*	c #843936",
"/*	c #FE1800",
"(*	c #B80B02",
"_*	c #663333",
":*	c #969696",
"<*	c #D8D8D8",
"[*	c #AE9786",
"}*	c #9E5E1A",
"|*	c #D7952E",
"1*	c #F9C764",
"2*	c #FDDD90",
"3*	c #938F8F",
"4*	c #9B1009",
"5*	c #FE2100",
"6*	c #FE2000",
"7*	c #FE1D00",
"8*	c #E41200",
"9*	c #91120B",
"0*	c #634747",
"a*	c #A0A0A0",
"b*	c #8F403C",
"c*	c #FE2200",
"d*	c #FE1E00",
"e*	c #F51600",
"f*	c #B50D02",
"g*	c #6C2523",
"h*	c #736B6B",
"i*	c #BBBBBB",
"j*	c #A5784C",
"k*	c #B66D0C",
"l*	c #F09C0D",
"m*	c #F4B239",
"n*	c #FFF3BA",
"o*	c #FFE47D",
"p*	c #DADADA",
"q*	c #7F7A7A",
"r*	c #761E1B",
"s*	c #B21103",
"t*	c #C61200",
"u*	c #C41100",
"v*	c #A91105",
"w*	c #781D17",
"x*	c #634646",
"y*	c #8B8B8B",
"z*	c #918787",
"A*	c #8F140D",
"B*	c #C51100",
"C*	c #B11103",
"D*	c #841610",
"E*	c #643333",
"F*	c #756F6F",
"G*	c #AFAFAF",
"H*	c #D5CAC0",
"I*	c #945B25",
"J*	c #CB7901",
"K*	c #D6D6D6",
"L*	c #A3A3A3",
"M*	c #777676",
"N*	c #6B6767",
"O*	c #6C6969",
"P*	c #7B7B7B",
"Q*	c #A1A1A1",
"R*	c #E0E0E0",
"S*	c #D0D0D0",
"T*	c #8E8E8E",
"U*	c #777575",
"V*	c #979797",
"W*	c #BDBDBD",
"X*	c #D2C7BC",
"Y*	c #CFCFCF",
"Z*	c #DDDDDD",
"`*	c #945B26",
" =	c #C3C3C3",
".=	c #C2C2C2",
"+=	c #BFBFBF",
"@=	c #BEBEBE",
"#=	c #BCBCBC",
"$=	c #B8B8B8",
"%=	c #B6B6B6",
"&=	c #B5B5B5",
"*=	c #B1B1B1",
"==	c #B0B0B0",
"-=	c #AEAEAE",
";=	c #ADADAD",
">=	c #A9A9A9",
",=	c #A8A8A8",
"'=	c #A7A7A7",
")=	c #A6A6A6",
"!=	c #A5A5A5",
"~=	c #9F9F9F",
"{=	c #958A80",
"]=	c #8A4F18",
"^=	c #F4B238",
"/=	c #8F5219",
"(=	c #DB8F1E",
"_=	c #EDCC85",
":=	c #CB8728",
"<=	c #C2AE9C",
"[=	c #BF7D28",
"}=	c #D7CABF",
"|=	c #D7952D",
"1=	c #AE7027",
"2=	c #C1B4AF",
"3=	c #8D8DA5",
"4=	c #9E6323",
"5=	c #A5999C",
"6=	c #8F5319",
"7=	c #63525C",
"8=	c #525278",
"9=	c #57577A",
". . . . . . . . . . . . . . . . . . . + @ # $ % & . @ * =                                       ",
". . . . . . . . . . . . . . . . . . . + @ # $ - & . . @ * *                                     ",
". . . . . . . . . . . . . . . ; > , ' ) @ # $ ! & . . . @ * ~                                   ",
". . . . . . . . . . . { ] ^ / ( _ : < [ } | 1 2 + . . . . 3 4 *                                 ",
". . . . . . . . . 5 6 7 8 9 0 a b c d e f g h i j $ $ k l l m n o                               ",
". . . . . . . . p q r s t u v w x y z A B 9 C d D E F G G G H ! H I                             ",
". . . . . . . J K L M N O P Q R S T U V W X Y Z e `  ...= * ~ ~ * 4 +.                          ",
". . . . . . @.#.$.%.&.*.=.-.;.>.,.'.T T '.).!.~.{.].c ^./.= * * * (._.                          ",
". . . . . :.<.L r [.}.|.1.2.3.4.>.,.S S ,.>.5.6.7.8.9.c 0.a.b.b.b.@ _.                          ",
". . . . c.d.e.f.g.h.i.j.k.1.l.3.m.R >.>.R 4.;.n.o.p.q.a r.s.t.t.t.3 _.                          ",
"& & & & h u.e.v.w.x.y.z.A.B.C.n.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.l k . _.                          ",
"& & & S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+%+&+*+=+-+;+>+,+'+)+t !+s 3 (.. ~+                          ",
"& & & {+]+^+/+(+_+:+<+[+}+|+1+2+3+4+5+5+6+7+8+9+0+a+b+c+d+e e+f+3 . ~+                          ",
"& & & g+h+i+j+k+l+m+:+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+g 9 F+3 . ~+                          ",
"& & & G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@D C | 3 . _.                          ",
"+ + $@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@h @ . _.                          ",
"+ + 6@7@8@9@0@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@@ . z@                          ",
"+ + A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #.#@ . +#                          ",
"3 3 @###u.$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#}#|#1#2#3#(.. +#                          ",
"3 3 4#5#K 6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#a u#(.. v#                          ",
"@ @ @ w#x#y#z#A#B#C#D#E#F#G#H#I#J#J#K#L#M#N#O#P#Q#R#S#T#U#} V#W## . X#                          ",
"@ @ @ Y#Z#`# $.$+$@$#$$$%$I#&$*$=$-$;$>$,$'$)$!$~${$]$^$/$($_$:$# . X#                          ",
"@ @ @ <$5#[$}$|$1$2$3$%$I#4$=$5$6$7$8$9$0$a$b$c$d$e$f$g$h$c i$j$# . k$                          ",
"(.(.l$m$n$o$p$q$r$s$t$u$v$-$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L L$l l . M$                          ",
"# # N$O$P$Q$]+R$S$T$U$V$W$X$Y$Z$`$ %.%+%@%#%$%%%&%*%=%-%!+;%>%k k . ,%                          ",
"l l '%)%!%~%{%]%^%/%(%_%-$:%<%[%}%|%1%2%3%4%5%6%7%8%9%` r _ 0%k k . a%                          ",
"k b%c%d%d%e%f%g%h%i%j%k%l%m%`$n%o%p%q%r%s%t%u%v%w%x%y%_ : z%A%k k . a%                          ",
"$ B%C%D%E%F%G%H%I%o$J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%z%Y%Z%_$Y%`%$ $ .  &                          ",
"$ .&+&@&#&$&%&&&*&=&-&7@;&>&,&'&)&!&!&~&{&]&^&/&z%(&_&Z%:&y%<&[&}&|&1&                          ",
"t.2&3&4&5&5&5&4&6&7&8&9&0&]+%@a&b&c&d&e&f&%.g&h&#.i&u.j&[ K$]+k&l&m&n&                          ",
"t.o&p&q&r&r&r&s&r&t&u&v&p$h%K w&x&_&y&: ;%z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&                        ",
"O&P&Q&R&S&S&S&S&S&T&T&T&U&V&W&X&G+Y&]%Z&`& *.*R&R&+*@*#*$*%*&***=*-*L&M&;*                      ",
"O&n >*,*'*)*)*)*)*)*!*)*~*{*]*^*/*)*)*)*)*'*!*R&(*_*:*<*[*}*|*1*2*=*-*L&M&;*                    ",
"m m 3*4*'*5*6*6*6*7*8*9*0*a*~ b*!*c*6*6*d*e*f*g*h*i*b.m j*k*l*m*1*2*n*-*o*M&;*                  ",
"m m p*q*r*s*t*u*v*w*x*y*! m m z*A*B*B*C*D*E*F*G*p*m m m H*I*J*l*m*1*2*n*-*o*M&;*                ",
"b.b.b.K*L*M*N*O*P*Q*H R*b.b.b.S*T*O*N*U*V*W*p*b.b.b.b.b.b.X*I*J*l*m*1*2*n*-*o*M&;*              ",
"b.b.b.b.R*n Y*Y*o R*b.b.b.b.b.b.~ S*Y*n Z*b.b.b.b.b.b.b.b.b.X*I*J*l*m*1*2*n*-*o*M&;*            ",
"4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 b.b.b.b.b.b.b.X*I*J*l*m*1*2*n*-*o*M&;*          ",
"l l l l l l k k k k k $ $ $ $ $ $ t.t.t.t.t.t.O&O&O&O&m m m m m H*`*J*l*m*1*2*n*-*o*M&;*        ",
" =.=.=+=+=@=#=i*i*$=%=%=&=&=*===G*G*-=;=;=>=,='='=)=!=!=Q*a*a*~=a*{=]=J*l*^=1*2*n*-*o*M&;*      ",
"                                                                      /=J*l*^=1*2*n*-*o*m&(=    ",
"                                                                        /=J*l*^=1*2*n*_=:=<=    ",
"                                                                          /=J*l*^=1***[=}=:     ",
"                                                                            /=J*l*|=1=2=0.3=    ",
"                                                                              /=k*4=5=/ Z#      ",
"                                                                                6=7=8=9=        ",
"                                                                                                ",
"                                                                                                "]

bar_thin_xpm = [
"960 3 4 1",
" 	c None",
".	c #D5140B",
"+	c #9E363B",
"@	c #4B6983",
"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"]

			
class ShowFonts:
		
	def get_font_list(self=None, e=None):
		raw_list = commands.getoutput('fc-list')
		line_list = string.split(raw_list, "\n")
		
		fl = []
		for i in range(len(line_list)):
			ftemp = string.split(line_list[i], ':')
			fl.append(ftemp[0])

		fl.sort()
		last = fl[-1]
		for i in range(len(fl)-2, -1, -1):
			if last==fl[i]: del fl[i]
			else: last=fl[i]
		return fl
		
		
	def info(self, message):
		box = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, message)
		box.set_position(gtk.WIN_POS_CENTER)
		box.set_title(_('Information'))
		box.run()
		box.destroy()	
		
		
	def alert(self, message):
		box = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, message)
		box.set_position(gtk.WIN_POS_CENTER)
		box.set_title(_('Error'))
		box.run()
		box.destroy()		
		
		
	def changed_font(self, evt=None, data=None):
		font_name = self.combo.get_active_text()
		font_desc.set_family(font_name)
		t = self.txt_entry.get_text()
		display_text = _("Sample Text")
		if t == "" or t == "Enter Text Here":
			display_text = font_name
		else:
			display_text = t
		self.f_display.set_text(display_text)
		self.f_display.modify_font(font_desc)
		config.set("defaults", "default_font", font_name)
		self.setConfigItem("default_font", font_name)
	
			
	def change_size(self, evt=None):
		font_size = self.combo_size.get_active_text()
		font_desc.set_size(int(font_size) * 1024)
		self.f_display.modify_font(font_desc)
		self.setConfigItem("fsize", font_size)

	def destroy(self, widget, data=None):
		gtk.main_quit()


	def txt_bg_color(self, button=None):
		color = self.event_box.get_style().copy().bg[gtk.STATE_NORMAL]
		dialog = gtk.ColorSelectionDialog(_("Pick a color"))
		dialog.set_transient_for(self.window)
		colorsel = dialog.colorsel
		colorsel.set_current_color(color)
		colorsel.set_has_palette(True)

		response = dialog.run()
		
		if response == gtk.RESPONSE_OK:
			color = colorsel.get_current_color()
			self.event_box.modify_bg(gtk.STATE_NORMAL, color)
			# then save the change to the config file
			cRGB = (color.red / 256,color.green / 256,color.blue / 256)
			hexcolor = '#%02x%02x%02x' % cRGB
			config.set("defaults", "bgcolor", hexcolor)
			self.setConfigItem("bgcolor", hexcolor)
		dialog.destroy()
		
			
	def txt_fg_color(self, button=None):
		color = self.f_display.get_style().copy().fg[gtk.STATE_NORMAL]
		dialog = gtk.ColorSelectionDialog(_("Pick a color"))
		dialog.set_transient_for(self.window)
		colorsel = dialog.colorsel
		colorsel.set_current_color(color)
		colorsel.set_has_palette(True)

		response = dialog.run()
		
		if response == gtk.RESPONSE_OK:
			color = colorsel.get_current_color()
			self.f_display.modify_fg(gtk.STATE_NORMAL, color)
			# then save the change to the config file
			cRGB = (color.red / 256,color.green / 256,color.blue / 256)
			hexcolor = '#%02x%02x%02x' % cRGB
			config.set("defaults", "fgcolor", hexcolor)
			
		dialog.destroy()
		
		
	def set_bold(self, e=None):
		if self.tog_bold.get_active() == True:
			font_desc.set_weight(pango.WEIGHT_BOLD)
		else:
			font_desc.set_weight(pango.WEIGHT_NORMAL)
		self.f_display.modify_font(font_desc)
		
		

	def set_it(self, e=None):
		if self.tog_it.get_active() == True:
			font_desc.set_style(pango.STYLE_ITALIC)
		else:
			font_desc.set_style(pango.STYLE_NORMAL)
		self.f_display.modify_font(font_desc)
		
		
	def set_text(self, e=None):
		t = self.txt_entry.get_text()
		if len(t) == 0:
			self.info(_("\nYou have to enter some text first . . ."))
		else:
			self.f_display.set_text(t)
		self.setConfigItem("ftext", t)
			
			
	def reset(self, e=None):
		self.txt_entry.set_text(_("Enter Text Here"))
		self.combo.set_active(0)
		self.combo_size.set_active(4)
		self.event_box.modify_bg(gtk.STATE_NORMAL, None)
		self.f_display.modify_fg(gtk.STATE_NORMAL, None)
		self.tog_bold.set_active(False) 
		self.tog_it.set_active(False)
		self.f_display.set_text(self.combo.get_active_text())
		self.bgcolor = '#DCDAD5'
		self.fgcolor = '#000000'

		self.ftext = 'Enter Text Here'
		config.set("defaults", "bgcolor", '#DCDAD5')
		config.set("defaults", "fgcolor", '#000000')
		config.set("defaults", "fsize", '32')
		config.set("defaults", "ftext", 'Enter Text Here')
		
		t1 = open(cfile, "w")
		config.write(t1)
		t1.close()

		

	def installafont(self, button = None):

		self.file_sel = gtk.FileChooserDialog(_("Choose a TrueType Font to Install"), self.window,
						gtk.FILE_CHOOSER_ACTION_OPEN,
						(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
						gtk.STOCK_OPEN, gtk.RESPONSE_OK))
						
		self.file_sel.set_default_response(gtk.RESPONSE_OK)
		
		ld = config.get("defaults", "lodir")
		if ld == 'unknown':
			self.file_sel.set_current_folder(os.path.expanduser("~"))
		else:
			if os.path.exists(ld):
				self.file_sel.set_current_folder(ld)
			else:
				self.file_sel.set_current_folder(os.path.expanduser("~"))
				
		filter = gtk.FileFilter()
		filter.set_name("TrueType")
		filter.add_mime_type("application/x-font-ttf")
		filter.add_pattern("*.ttf")
		filter.add_pattern("*.TTF")
		self.file_sel.add_filter(filter)

		response = self.file_sel.run()
		if response == gtk.RESPONSE_OK:

			fname =  self.file_sel.get_filename()
			if self.do_install(fname):
				self.setConfigItem("lodir", os.path.dirname(fname))
				#sys.exit("BRB")
				sys.exit()
		else:
			self.file_sel.destroy()
				
		
	def do_install(self, f):
		try:
			# make name of font lc and no spaces
			f_tmp = os.path.basename(f.lower())
			f_final = f_tmp.replace(" ", "_")
			# clear out and re-create a tmp dir to test font
			tdir = os.path.join(os.path.expanduser("~") , 'ftmp')
			tmpCache = tdir + '/fonts.cache-1'
			if os.path.exists(tdir):
				os.system('rm -f -r %s' % tdir)
			os.mkdir(tdir, 0755)
			
			# set complete path for new font
			tmpPath = os.path.join(os.path.expanduser("~") , 'ftmp', f_final)
			# copy the searched for font to the temp dir
			shutil.copyfile(f, tmpPath)
			os.system('fc-cache %s' % tdir)
			if not commands.getoutput('grep "scalable=True" %s/fonts.cache-1' %  tdir):
				self.info(_('%s\ndoes not appear to be a TrueType font') % f)
				return
			of = open(tmpCache, 'r')
			bigStr = of.read()
			of.close()
			prt = string.split(bigStr, '\"')[3]
			prettyName =  string.split(prt,':')[0]
			

			os.system('rm -r -f %s' % tdir)	
			#####  tested OK, now lets really install ###
			fdir = os.path.expanduser("~/")  + '.fonts'
			if not os.path.exists(fdir):os.mkdir(fdir)
			newPath = os.path.join(os.path.expanduser("~") , '.fonts', f_final)
			if os.path.exists(newPath):
				self.info(_("\nThat font appears to be installed already."))
				self.file_sel.destroy()
				return
			shutil.copyfile(f, newPath)
			os.system('fc-cache -f %s' % fdir)
			s_font = os.path.basename(newPath)
			font_size = str(config.get("defaults", "fsize"))
			fgcolor = (config.get("defaults", "fgcolor"))
			bgcolor = (config.get("defaults", "bgcolor"))
			dis_text = (config.get("defaults", "ftext"))
			ldir = (config.get("defaults", "lodir"))
			_args = [appPath, s_font, fgcolor, bgcolor, font_size, dis_text, ldir]
			self.info(_("New font has installed correctly...\nIn order to make use of the new font, fontpage needs to be restarted. This will be done automatically now.\n\n         BRB!"))
			self.setConfigItem("default_font", prettyName)
			if os.spawnv(os.P_NOWAIT, appPath, _args):
				return True
			else:
				self.window.show_all()
		except:
			try:
				self.file_sel.destroy()
			except:
				pass
			self.alert(_('Could not install the font:\n %s') % f)
		


	def display_font(self, btn):
		fn = self.combo.get_active_text()
		fs = int(self.combo_size.get_active_text())
		self.font_display_window(btn, fn, fs)
			
				
	def pre_delete(self, button):

		# grab my font path
		self.fdir = os.path.expanduser("~/") + '.fonts'
		if not os.path.exists(self.fdir):
			os.mkdir(self.fdir)
			self.info(_("\nNo fonts are installed in your home directory\n(So there is nothing to delete)"))
			return	
		dir_str = _('User Fonts in: ') + self.fdir
		# get fonts into a list
		dir_list = os.listdir(self.fdir)
		f_list = []
		for l in dir_list:
			x = re.search("\.ttf", l)
			if x != None:
				f_list.append (l)
		if len(f_list) == 0:
			self.info(_("\nNo fonts are installed in your home directory\n(So there is nothing to delete)"))
			return		
		
		self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
		self.win.set_position(gtk.WIN_POS_MOUSE)
		self.win.set_title(_("Select Font to Remove"))
		self.win.set_size_request(260, 200)
		self.win.connect("delete_event", self.f_del_event)
		# create a TreeStore with one string column to use as the model
		self.treestore = gtk.TreeStore(str)

		# set up basic layout
		vbox = gtk.VBox(False ,0)
		self.win.add(vbox)
		self.s_win = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
		but_box = gtk.HBox(True, 0)

		f_list.sort()
		for l in f_list:
		    piter = self.treestore.append(None, [l])

		self.treeview = gtk.TreeView(self.treestore)
		self.tvcolumn = gtk.TreeViewColumn(dir_str)
		self.treeview.append_column(self.tvcolumn)
		self.cell = gtk.CellRendererText()
		self.tvcolumn.pack_start(self.cell, True)
		self.tvcolumn.add_attribute(self.cell, 'text', 0)

		vbox.pack_start(self.s_win, True, True, 0)
		self.s_win.add_with_viewport(self.treeview)

		self.b_cancel = gtk.Button(_("Cancel"))
		but_box.pack_start(self.b_cancel, False, False, 10)
		self.b_cancel.connect("clicked", self.f_del_event)	

		self.b_del = gtk.Button(_("Delete"))
		but_box.pack_start(self.b_del, False, False, 10)
		self.b_del.connect("clicked", self.del_font)
		vbox.pack_end(but_box, False, False, 0)
		self.win.show_all()	
			

	def del_font(self,e=None, data=None):
		selection = self.treeview.get_selection()
		model, iter = selection.get_selected()
		if not iter:
			self.info(_("Selection Not Avalable"))
		else:
			# extract value through model+iterator+column_number
			f_selected = model.get_value(iter, 0)
			dlg = gtk.MessageDialog(self.window, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _('Are you sure you want to delete \n        %s?') % f_selected )
			dlg.set_position(gtk.WIN_POS_MOUSE)
			response = dlg.run()
			if response == gtk.RESPONSE_NO:
				dlg.destroy()
			else:
				
				cmd_path = os.path.join(self.fdir, f_selected)
				dlg.destroy()
				self.win.destroy()
				os.system('rm -f %s' % cmd_path)
				os.system('fc-cache %s' % self.fdir)
				self.info(_("Font has been removed...\nTo properly recognize and list the remaining fonts, fontpage needs to be restarted. This will be done automatically now.\n\n         BRB!"))
				self.window.hide()
				#dummy font name to get past sanity checks loading new instance of app
				s_font = self.combo.get_active_text().lower()[:3] + ".ttf"
				# send to new instance
				font_size = str(config.get("defaults", "fsize"))
				fgcolor = (config.get("defaults", "fgcolor"))
				bgcolor = (config.get("defaults", "bgcolor"))
				dis_text = (config.get("defaults", "ftext"))
				ldir = (config.get("defaults", "lodir"))
				_args = [appPath, s_font, fgcolor, bgcolor, font_size, dis_text, ldir]
				self.window.hide()
				if os.spawnv(os.P_NOWAIT, appPath, _args):
					sys.exit()
				else:
					self.window.show_all()		
			
	def f_del_event(self, e=None):
		self.win.destroy()
			
			
	def delete_event(self, widget, event, data=None):
		gtk.main_quit()
	
	
	def doClose(self, w=None):
		w = self.window.get_allocation().width
		h = self.window.get_allocation().height
		self.setConfigItem("lastw", str(w))
		self.setConfigItem("lasth", str(h))
		
		dlg = gtk.MessageDialog(self.window, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _('\nAre you sure you want to close the application?') )
		dlg.set_position(gtk.WIN_POS_MOUSE)
		response = dlg.run()
		if response == gtk.RESPONSE_NO:
			dlg.destroy()
		else:
			gtk.main_quit()


	def draw_pixmap(self, evt=None):
		try:
			self.widget = self.event_box
			window = self.widget.window
			x, y, width, height = self.f_display.get_allocation()
			mPixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, width, height)
			mPixbuf.get_from_drawable(window,self.f_display.get_colormap(),0,0,0,0,width,height)
			pth = self.save_img_dialog()
			if self.savedlg: self.savedlg.destroy()
			if not pth:
				return
			mPixbuf.save(pth, "png")
			self.info(_("Picture has been saved to...\n") + pth) 
		except:
			self.alert(_("Image could not be created and saved"))
	
			
	def save_img_dialog(self):
		self.savedlg = gtk.FileChooserDialog(_("Save As..."), self.window, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK))
		self.savedlg.set_default_response(gtk.RESPONSE_OK)
		self.savedlg.set_current_name(self.f_display.get_text().strip() + ".png")

		ld = (config.get("defaults", "lsdir"))
		if os.path.exists(ld):
			self.savedlg.set_current_folder(ld)
		else:
			self.savedlg.set_current_folder(os.getenv("HOME"))
			
		filter = gtk.FileFilter()
		filter.set_name("PNG")
		filter.add_mime_type("image/png")
		filter.add_pattern("*.png")
		self.savedlg.add_filter(filter)
		response = self.savedlg.run()
		filename = self.savedlg.get_filename()
		self.savedlg.destroy()
		if response == gtk.RESPONSE_OK:
			if os.path.isfile(filename) :
                		dlg = gtk.MessageDialog(self.window, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _("File exists, overwrite it ?"))
                		resp = dlg.run()
				dlg.destroy()
				if not resp == gtk.RESPONSE_YES:
					return None
			td = os.path.dirname(filename)
			if os.path.exists(td):
				self.setConfigItem("lsdir", td)
			return filename
		else: 
			return None		

	def setConfigItem(self, item, value):
		config.set("defaults", item, value)
		t1 = open(cfile, "w")
		config.write(t1)
		t1.close()

#########################################################################################################
#########################################################################################################
	def __init__(self, marg):
		self.window = None
		# the "defaults" below are values set in a global variable
		# that writes out the "config" file. Save me from distributing a config file
		# or screwing around with permissions. If someone's system is messed and they can't
		# write to their own home dir -- then fontpage will just use basic settings.
		if not os.path.exists(cfile):
			try:
				file = open( cfile, 'w' )
				file.write( defaults )
				file.close()
			except:
				print >> sys.stderr, _("Cannot write configuration file to your home directory.")
				raise SystemExit
		
		gotDefs = 0	
		try:			
			config.read(cfile)
			default_font = config.get("defaults", "default_font")
			bgcolor = config.get("defaults", "bgcolor")
			fgcolor = config.get("defaults", "fgcolor")
			fsize = config.get("defaults", "fsize")
			ftext = config.get("defaults", "ftext")
			lodir = config.get("defaults", "lodir")
			lsdir = config.get("defaults", "lsdir")
			gotDefs = 1
			
		except:
			print >> sys.stderr, _("Cannot read configuration file, perhaps it is corrupt.\nTo continue, delete the .fontpage file and restart.")
			raise SystemExit	
			
		# new section here
		# needed because window size was later added to .fontpage config file
		# the gotDefs flag lets us know whether the rest of config file was parsed properly
			
		if gotDefs:
			try:
				lastw = config.get("defaults", "lastw")
				lasth = config.get("defaults", "lasth")	
			except:
				self.setConfigItem("lastw", "0")
				self.setConfigItem("lasth", "0")
				lastw = 0
				lasth = 0
				
		
		###########  close button, bar anf logo  ################
		bar = gtk.gdk.pixbuf_new_from_xpm_data(bar_xpm)
		thin_bar = gtk.gdk.pixbuf_new_from_xpm_data(bar_thin_xpm)
		closer = gtk.gdk.pixbuf_new_from_xpm_data(close_xpm)
		#logo = gtk.gdk.pixbuf_new_from_xpm_data(FONTpage_xpm)
		icon = gtk.gdk.pixbuf_new_from_xpm_data(icon_xpm)

		bar_img = gtk.Image()
		sm_bar = gtk.Image()
		close_img = gtk.Image()
		#logo_img = gtk.Image()
		self.txt_pix = gtk.Image()

		bar_img.set_from_pixbuf(bar)
		close_img.set_from_pixbuf(closer)
		#logo_img.set_from_pixbuf(logo)
		sm_bar.set_from_pixbuf(thin_bar)


		###########  window setup  ################
		
		# ______set default size to last window dimensions __________
		
		if lastw == 0:
			defw = 520
		else:
			defw = int(lastw)
		if lasth == 0:
			defh = 400
		else:
			defh = int(lasth)
		#____________________________________________________________
		
		self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
		self.window.set_title(_("FONTpage - 2.0"))
		self.window.set_border_width(5)
		self.window.set_default_size(defw, defh)
		self.window.set_position(gtk.WIN_POS_CENTER)
		self.window.set_geometry_hints(self.window, 700, 420, gtk.gdk.screen_width(), gtk.gdk.screen_height() - 60)
		self.window.connect("delete_event", self.delete_event)
		self.tooltips = gtk.Tooltips()
		self.window.set_icon(icon)


		###########  layout  ################
		vbox = gtk.VBox(False, 16)
		self.window.add(vbox)

		###########  close and bar and logo ################
		top_box = gtk.HBox(False, 0)
		vbox.pack_start(top_box, False, True, 0)

		btn_close = gtk.Button()
		btn_close.add(close_img)
		btn_close.set_relief(gtk.RELIEF_NONE)
		#btn_close.set_alignment(1,.5)
		
		btn_close.connect("clicked", self.doClose)
		self.tooltips.set_tip(btn_close, "CLOSE")

		top_box.pack_end(btn_close, False, False, 0)
		top_box.pack_start(bar_img, False, False, 0)
		
		#top_box.pack_start(logo_img, False, False, 0)
		

		###########  Lower boxes layout ########

		bot_box = gtk.HBox(True,0)
		vbox.pack_start(bot_box, False, False, 0)
		self.bot_L_box = gtk.VBox(False,10)
		bot_C_box = gtk.VBox(False,6)
		bot_R_box = gtk.VBox(False,10)
		
		bot_box.pack_start(self.bot_L_box, False, True, 14)
		bot_box.pack_start(bot_C_box, False, False, 0)
		bot_box.pack_start(bot_R_box, False, True, 14)

		self.new_box = gtk.HBox(True, 0)
		vbox.pack_start(self.new_box, False, False, 0)	
			
		vbox.pack_start(sm_bar, False, False, 0)
		
		last_box = gtk.VBox(False,10)
		vbox.pack_start(last_box, False, False, 0)

		##########  left box setup  ###############

		### static text label ###
		lbl_font_face = gtk.Label(_("Font Face Name"))
		self.bot_L_box.pack_start(lbl_font_face, False, False, 0)
		lbl_font_face.set_markup(_('<span size="14000" foreground="#92110B"><b>Font Name</b></span>'))


		#### Font Name combo box  ###
		self.combo = gtk.combo_box_new_text()
		flist = self.get_font_list()
		
		# gets the PATH of the font
		x = 0
		cur = 0
		for l in flist:
			self.combo.append_text(l)
			loaded_name =  string.split(os.path.basename(default_font), ".")
			if loaded_name[0][:3].lower() == l.lower()[:3]:
				cur = x
			x += 1
                self.combo.set_active(cur)	
			
				
		self.bot_L_box.pack_start(self.combo, False, False, 0)

		spacer2 = gtk.Label(" ")
		self.bot_L_box.pack_start(spacer2, False, False, 0)

		### static text label ###
		lbl_font_size = gtk.Label(_("Font Size:"))
		self.bot_L_box.pack_start(lbl_font_size, False, False, 0)
		lbl_font_size.set_markup(_('<span size="14000" foreground="#334D63"><b>Font Size</b></span>'))

		#### Font Name combo box  ###
		self.combo_size = gtk.combo_box_new_text()
		f_size = ["8", "10", "12", "16", "32", "48","64", "72", "128", "256"]
		# set font size, uses config value from ~.fontpage
		# iterates through possible values of f_size for a match
		y = 0
		scur = 0
		for l in f_size:
			self.combo_size.append_text(l)
			if str(fsize) == l:
				scur = y
			y += 1
                self.combo_size.set_active(scur)		
		self.bot_L_box.pack_start(self.combo_size, False, True, 0)		

		######################################################################################
		#####  Color and image buttons  buttons  #############################################	
		
		self.bg_color_btn = gtk.Button(_("BG color"))
		bot_C_box.pack_start(self.bg_color_btn, False, False, 10)
		self.bg_color_btn.connect("clicked", self.txt_bg_color)
		bg_lbl = self.bg_color_btn.get_children()[0]
		bg_lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#FFFFFF"))
		self.bg_color_btn.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#6F7F8C"))
		self.bg_color_btn.modify_bg(gtk.STATE_PRELIGHT, gtk.gdk.Color(0xFFFF, 0xFFFF, 0x0000))
		self.bg_color_btn.modify_bg(gtk.STATE_ACTIVE, gtk.gdk.Color(0x0000, 0xFFFF, 0x0000))
		self.tooltips.set_tip(self.bg_color_btn, _("Choose the background color\n  for the font display area"))
		
		self.fg_color_btn = gtk.Button(_("FG color"))
		bot_C_box.pack_start(self.fg_color_btn, False, False, 10)
		self.fg_color_btn.connect("clicked", self.txt_fg_color)	
		fg_lbl = self.fg_color_btn.get_children()[0]
		fg_lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#FFFFFF"))
		self.fg_color_btn.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#6F7F8C"))
		self.fg_color_btn.modify_bg(gtk.STATE_PRELIGHT, gtk.gdk.Color(0xFFFF, 0xFFFF, 0x0000))
		self.fg_color_btn.modify_bg(gtk.STATE_ACTIVE, gtk.gdk.Color(0x0000, 0xFFFF, 0x0000))
		self.tooltips.set_tip(self.fg_color_btn, _("Choose the foreground color\n  for the font display area"))
		
		self.show_btn = gtk.Button(_("Display Font"))
		bot_C_box.pack_start(self.show_btn, False, False, 10)
		self.show_btn.connect("clicked", self.display_font)	
		show_lbl = self.show_btn.get_children()[0]
		show_lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#FFFFFF"))
		self.show_btn.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#6F7F8C"))
		self.show_btn.modify_bg(gtk.STATE_PRELIGHT, gtk.gdk.Color(0xFFFF, 0xFFFF, 0x0000))
		self.show_btn.modify_bg(gtk.STATE_ACTIVE, gtk.gdk.Color(0x0000, 0xFFFF, 0x0000))
		self.tooltips.set_tip(self.show_btn, _("Display all characters of current font in a separate window"))		
		
		self.pix_btn = gtk.Button(_("Make Image"))
		bot_C_box.pack_start(self.pix_btn, False, False, 10)
		self.pix_btn.connect("clicked", self.draw_pixmap)
		pix_lbl = self.pix_btn.get_children()[0]
		pix_lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#FFFFFF"))
		self.pix_btn.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#6F7F8C"))
		self.pix_btn.modify_bg(gtk.STATE_PRELIGHT, gtk.gdk.Color(0xFFFF, 0xFFFF, 0x0000))
		self.pix_btn.modify_bg(gtk.STATE_ACTIVE, gtk.gdk.Color(0x0000, 0xFFFF, 0x0000))
		self.tooltips.set_tip(self.pix_btn, _("Save the current font display area\n                to a PNG image"))
		
		######################################################################################
		#####  toggle  buttons  and text entry  ##############################################

		self.tog_box = gtk.HBox(False, 0)
		bot_R_box.pack_start(self.tog_box, False, False, 3)
		
		self.tog_bold = gtk.CheckButton(label=_("Bold"))
		self.tog_box.pack_start(self.tog_bold, False, False, 8)
		self.tog_bold.connect("toggled", self.set_bold)
		tog_bold_lbl = self.tog_bold.get_children()[0]
		tog_bold_lbl.set_markup(_('<span size="12000" foreground="#334D63"><b>Bold</b></span>'))
		self.tooltips.set_tip(self.tog_bold, _("Setting will only work for\nfonts with a bold version."))
		
		self.tog_it = gtk.CheckButton(label=_("Italic"))
		self.tog_box.pack_start(self.tog_it, False, False, 8)
		self.tog_it.connect("toggled", self.set_it)
		tog_it_lbl = self.tog_it.get_children()[0]
		tog_it_lbl.set_markup(_('<span size="12000" foreground="#334D63"><b>Italic</b></span>'))
		
		self.set_txt_btn = gtk.Button(_("Set Text"))
		bot_R_box.pack_start(self.set_txt_btn, False, False, 0)
		set_txt_lbl = self.set_txt_btn.get_children()[0]
		set_txt_lbl.set_markup(_('<span size="12000" foreground="#2D485F"><b>Set Text</b></span>'))
		self.tooltips.set_tip(self.set_txt_btn, _("Will display the text you enter below\n          in the font display area"))
		
		self.txt_entry = gtk.Entry(64)
		self.txt_entry.set_width_chars(20)
		bot_R_box.pack_start(self.txt_entry, False, False, 0)
		self.set_txt_btn.connect("clicked", self.set_text)
		# text from config file (~.fontpage)
		
		self.txt_entry.set_text(ftext)
		self.reset_btn = gtk.Button(_("Reset All"))
		bot_R_box.pack_start(self.reset_btn, False, False, 12)		
		reset_lbl = self.reset_btn.get_children()[0]
		reset_lbl.set_markup(_('<span size="12000" foreground="#92110B"><b>Reset All</b></span>'))	
		self.reset_btn.connect("clicked", self.reset)
		self.tooltips.set_tip(self.reset_btn, _("Returns values for font size, displayed text,\nforeground and background colors to the defaults"))	
		
		###################################################################################
		####  Loading of fonts --  install, and delete font  #####################
		
		self.btn_inst_font = gtk.Button(_("Install a Font"))
		self.new_box.pack_start(self.btn_inst_font, False, True, 0)
		self.btn_inst_font.connect("clicked",self.installafont)
		ifl = self.btn_inst_font.get_children()[0]
		ifl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#FFFFFF"))
		self.btn_inst_font.modify_bg(gtk.STATE_PRELIGHT, gtk.gdk.Color(0xFFFF, 0xFFFF, 0x0000))
		self.btn_inst_font.modify_bg(gtk.STATE_ACTIVE, gtk.gdk.Color(0x0000, 0xFFFF, 0x0000))
		self.btn_inst_font.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#6F7F8C"))
		self.tooltips.set_tip(self.btn_inst_font, _("     Choosing a font will:\n1] Test if file is a truetype font,\n2] Make new file lower case, no spaces,\n3] Copy font into user\'s home .font directory \n4] run \'fc-cache\' on that folder,\n5] and finally display the font with current settings."))
		
		self.btn_del_font = gtk.Button(_("Delete a Font"))
		self.new_box.pack_start(self.btn_del_font, False, True, 0)
		self.btn_del_font.connect("clicked", self.pre_delete)
		dfl = self.btn_del_font.get_children()[0]
		dfl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#FFFFFF"))
		self.btn_del_font.modify_bg(gtk.STATE_PRELIGHT, gtk.gdk.Color(0xFFFF, 0xFFFF, 0x0000))
		self.btn_del_font.modify_bg(gtk.STATE_ACTIVE, gtk.gdk.Color(0x0000, 0xFFFF, 0x0000))
		self.btn_del_font.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#6F7F8C"))
		self.tooltips.set_tip(self.btn_del_font, _("Remove a user font\n(will update fontconfig)"))

		####################################################################################	
		###  font display  ###
		
		self.control_box = gtk.HBox(True, 0)
		last_box.pack_start(self.control_box, True, True, 0)
		
		self.event_box = gtk.EventBox()
		self.control_box.pack_start(self.event_box, False, False, 0)
		# font display background color is from config file (~.fontpage)
		self.event_box.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(config.get("defaults", "bgcolor")))
		
		if ftext == 'Enter Text Here':
			display_text = self.combo.get_active_text()
		else:
			display_text = config.get("defaults", "ftext")
		

		self.f_display = gtk.Label(display_text)
		font_name = self.combo.get_active_text()
		font_desc.set_family(font_name)
		# font size is from config file (~.fontpage), for pango get multiplied by 1024
		font_desc.set_size(int(fsize) * 1024)
		self.f_display.modify_font(font_desc)
		self.event_box.add(self.f_display)

		self.f_display.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(config.get("defaults", "fgcolor")))


		###  connect the display to the combo changes  ###
		self.combo.connect('changed', self.changed_font)
		self.combo_size.connect('changed', self.change_size)
		self.set_txt_btn.grab_focus()

		self.window.show_all()


	class font_display_window(gtk.Window):

		def delete_event(self, e=None):
			self.destroy()

		def __init__(self, e=None, fn=None, fs=None):
			gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)

			if fs==None: fs=32
			if fn==None: fn="sans"
			
			self.connect("destroy", self.delete_event)
			f_desc = pango.FontDescription()
			f_desc.set_family(fn)
			f_desc.set_size(fs * 1024)
			display_text = 'abcdefghijklmnopqrstuvwxyz\nABCDEFGHIJKLMNOPQRSTUVWXYZ\n1234567890'
        		self.set_title(fn)
			self.set_border_width(0)
			#self.set_size_request(630, 240)
			self.set_position(gtk.WIN_POS_CENTER)
			lbl = gtk.Label("")
			lbl.set_padding(2, 2)
			lbl.set_text(display_text)
			lbl.modify_font(f_desc)
			lbl.show()
			box1 = gtk.VBox()
			box1.pack_start(lbl)
			self.add(box1)
			box1.show()
			self.show()
			
			
def main(argv):	
	ShowFonts(argv)
	gtk.main()
	
if __name__ == "__main__":
	main(sys.argv)
