summaryrefslogtreecommitdiff
path: root/app/xlockmore/xglock
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2006-11-26 11:09:41 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2006-11-26 11:09:41 +0000
commit95c2d1cbda23a41cdf6e63520c7f0b825e63dd5b (patch)
tree06d3ffa4312e568c4157f69fe1bddaddec9bc497 /app/xlockmore/xglock
parent3928433848e2d6a9356f3d438a14b32a4f87f660 (diff)
Importing xlockmore 5.22
Diffstat (limited to 'app/xlockmore/xglock')
-rw-r--r--app/xlockmore/xglock/Makefile.in206
-rw-r--r--app/xlockmore/xglock/README.xglock28
-rw-r--r--app/xlockmore/xglock/logo.h2309
-rw-r--r--app/xlockmore/xglock/logo2.h1209
-rw-r--r--app/xlockmore/xglock/logo2.xcfbin0 -> 65598 bytes
-rw-r--r--app/xlockmore/xglock/modes.h710
-rw-r--r--app/xlockmore/xglock/xglock.c1806
-rw-r--r--app/xlockmore/xglock/xglockrc41
8 files changed, 6309 insertions, 0 deletions
diff --git a/app/xlockmore/xglock/Makefile.in b/app/xlockmore/xglock/Makefile.in
new file mode 100644
index 000000000..cb5829588
--- /dev/null
+++ b/app/xlockmore/xglock/Makefile.in
@@ -0,0 +1,206 @@
+# $Id : Makefile.in 4.04 1997/07/10 $
+#
+# xlockmore Makefile.in for autoconf (UNIX/VMS X11 support)
+############################################################
+
+# @SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+N=
+O=.@OBJEXT@
+#O=.obj
+C=.c
+#C=.cc
+S=$(N) $(N)
+#S=,
+E=@EXEEXT@
+#E=.exe
+
+# please define
+# C as the C source code extension
+# O as the object extension
+# S as the separator for object code
+
+####################################################################
+# List of object files
+XGLOCKOBJS = xglock$(O)
+
+# List of source files
+XGLOCKSRCS = $(VPATH)/xglock$(C)
+
+# default target
+all : @XGLOCK@
+
+# this tells GNU make not to export variables into the environment
+# But other makes do not understand its significance, so it must
+# not be the first target in the file. So it is here, before
+# any variables are created, but after the default target
+.NOEXPORT :
+
+SHELL = /bin/sh
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+datadir = @datadir@
+mandir = @mandir@/man1
+
+CONFIGDIR = $(srcdir)/config/
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTPGMFLAGS = @INSTPGMFLAGS@
+
+#CC = cc -g
+#CC = cc -Ac -g
+#CC = cc -Xc -g
+#CC = acc -g
+#CC = CC -g
+#CC = gcc -g -Wall -ansi -pedantic
+#CC = gcc -g -Wall
+#CC = g++ -g -Wall
+CC = @CC@
+
+#LINT = lint
+LINT = lint -Ncheck=%all
+#LINT = alint
+
+#DEPEND = makedepend
+DEPEND = @DEPEND@
+DEPEND_FLAGS = @DEPEND_FLAGS@
+DEPEND_DEFINES = @DEPEND_DEFINES@
+
+LN_S = @LN_S@
+RM = rm -f
+RM_S = $(RM)
+ECHO = echo
+
+#BLN_S = set file/enter=[]
+#RM = delete/noconfirm/nolog
+#RM_S = set file/remove/nolog
+#ECHO = write sys$output
+
+DEFS = @DEFS@ $(DEFINES) -DXGLOCKRC_FILE=\"$(datadir)/xlock/xglockrc\"
+XGLOCKINC = @XGLOCKINC@ -I.. -I$(top_srcdir)
+CFLAGS = @GTK_CFLAGS@ @CFLAGS@
+#CFLAGS = -O
+#CFLAGS = -g
+XGLOCKLDFLAGS = @XGLOCKLDFLAGS@
+XLIBS = @XLIBS@
+XGLOCKLIBS = @XGLOCKLIBS@
+#If you have purify, and want to use it, uncomment this definition or
+# run the make as `make PURIFY=purify'
+# or run configure with the --with-purify argument.
+PURIFY = @PURIFY@
+
+xglock : $(XGLOCKOBJS)
+ $(PURIFY) $(CC) -o $@ $(XGLOCKOBJS) $(XGLOCKLDFLAGS) $(XGLOCKLIBS)
+ @ $(ECHO) "$@ BUILD COMPLETE"
+ @ $(ECHO) ""
+
+.SUFFIXES : $(C) $(O)
+
+$(C)$(O) :
+ $(CC) -c $(CPPFLAGS) $(DEFS) $(XGLOCKINC) $(CFLAGS) $<
+
+install : @INSTALL_XGLOCK@
+
+install_xglock : install-program install-man install-ad
+ @ $(ECHO) "$@ COMPLETE"
+ @ $(ECHO) ""
+
+install-program : xglock
+ $(top_srcdir)/mkinstalldirs $(bindir)
+ $(INSTALL_PROGRAM) xglock$(E) $(bindir)
+
+install-man :
+
+install-ad :
+ $(top_srcdir)/mkinstalldirs $(datadir)/xlock
+ $(INSTALL_PROGRAM) $(top_srcdir)/xglock/xglockrc $(datadir)/xlock/xglockrc
+
+uninstall : @UNINSTALL_XGLOCK@
+
+uninstall_xglock : uninstall-program uninstall-man uninstall-ad
+
+uninstall-program :
+ $(RM) $(bindir)/xglock$(E)
+
+uninstall-man :
+
+uninstall-ad :
+ $(RM) $(datadir)/xlock/xglockrc
+
+install.program : install-program
+
+install.man : install-man
+
+install.ad : install-ad
+
+uninstall.program : uninstall-program
+
+uninstall.man : uninstall-man
+
+uninstall.ad : uninstall-ad
+
+depend :
+
+lint :
+ $(LINT) -ax -DLINT $(DEFS) $(XGLOCKINC) $(XGLOCKSRCS)
+
+xrdb :
+
+man :
+
+html :
+
+hlp :
+
+clean :
+ $(RM) *.o core *~ *% *.bak *.orig *.rej make.log MakeOut *.patch .pure
+ $(RM) xglock xglock.exe
+
+distclean : clean
+ $(RM) Makefile
+
+clean.all : distclean
+
+# Adds all current dependencies to Makefile
+depend :
+ $(DEPEND) -s '# DO NOT DELETE: updated by make depend' \
+ $(DEPEND_FLAGS) -- \
+ $(XGLOCKINC) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) -- \
+ $(XGLOCKSRCS)
+
+# Adds some dependencies to Makefile.in -- not totally accurate, but pretty
+# close. This excludes dependencies on files in /usr/include, etc. It tries
+# to include only dependencies on files which are themselves a part of this
+# package. -w 0
+distdepend :
+ @echo updating dependencies in `pwd`/Makefile.in... ; \
+ $(DEPEND) -w 0 -f - \
+ -s '# DO NOT DELETE: updated by make distdepend' $(DEPEND_FLAGS) -- \
+ $(XGLOCKINC) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) -- \
+ $(XGLOCKSRCS) | \
+ ( \
+ awk '/^#.*Id : Makefile.in/,/^# DO .*distdepend/' < Makefile.in ; \
+ sed -e 's@ \./@ @g;s@ /[^ ]*@@g;/^.*:$$/d' \
+ -e 's@\.\./bitmaps@$$(BITMAPDIR)@g' ; \
+ echo '' \
+ ) > /tmp/distdepend.$$$$ && \
+ mv Makefile.in Makefile.in.bak && \
+ mv /tmp/distdepend.$$$$ Makefile.in
+
+##############################################################################
+#
+# DO NOT DELETE: updated by make distdepend
+
+xglock.o: ../config.h
+xglock.o: modes.h
+xglock.o: logo.h
+
diff --git a/app/xlockmore/xglock/README.xglock b/app/xlockmore/xglock/README.xglock
new file mode 100644
index 000000000..f068472c0
--- /dev/null
+++ b/app/xlockmore/xglock/README.xglock
@@ -0,0 +1,28 @@
+README xglock - February 15, 2005
+=================================
+
+What is it ?
+------------
+This is the GTK/GTK2 GUI to xlock(more).
+As of today it is intended to be compiled with glib2/gtk+2.
+
+Author
+------
+Latest change (mainly GTK2 and a new logo) are all
+by Eric Lassauge <lassauge AT users.sourceforge.net> (approx since 1999 !)
+
+
+Original README:
+================
+Authors: Charles Vidal <cvidal AT ivsweb.com>
+ Remi Cohen-Scali <r.cohenscali AT pobox.com>
+ Eric Lassauge <lassauge AT users.sourceforge.net>
+
+Status: under construction
+
+This used GNU's GTK but now the fontsel widget have been
+integrated into GTK (since between 1.1 & 1.2 ?).
+The xlockmore package does not need the gtkfontsel
+library anymore. The root configure script has been modified.
+ Thank You !
+ R. Cohen-Scali
diff --git a/app/xlockmore/xglock/logo.h b/app/xlockmore/xglock/logo.h
new file mode 100644
index 000000000..2eb5a7959
--- /dev/null
+++ b/app/xlockmore/xglock/logo.h
@@ -0,0 +1,2309 @@
+/*
+ * logo.h: GIMP header image file format (INDEXED) for xglock
+ */
+#if !defined( lint ) && !defined( SABER )
+static const char sccsid[] = "@(#)logo.h 2.0 04/11/28 xlockmore";
+#endif
+/* Copyright (c) E. Lassauge, 2004 <lassauge AT users.sourceforge.net> */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ *
+ * Nov-04: Gtk+2 version added.
+ * Nov-99: Initial version.
+ */
+
+
+static unsigned int logo_width = 200;
+static unsigned int logo_height = 72;
+
+/* Call this macro repeatedly. After each use, the pixel data can be extracted */
+
+#define HEADER_PIXEL(data,pixel) {\
+ pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \
+ pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \
+ pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \
+ data ++; }
+
+#if GTK_CHECK_VERSION(2,0,0)
+/* GTK+ 2.x version */
+static unsigned char header_data_cmap[256][3] = {
+ { 4, 3, 7},
+ { 61,232, 62},
+ { 39,149, 44},
+ {172, 49, 67},
+ { 17, 56, 22},
+ {229,226,223},
+ { 32,110, 37},
+ { 94, 25, 35},
+ {113, 46, 46},
+ { 22, 87, 27},
+ { 70,166, 74},
+ { 43, 11,142},
+ { 62,115,224},
+ { 37, 49,122},
+ { 71, 22, 27},
+ { 58,219, 58},
+ {195, 67, 75},
+ {108,102, 53},
+ {215,177,130},
+ {112, 53,157},
+ { 68, 53, 54},
+ { 54, 25, 13},
+ { 65, 82,113},
+ {171, 62, 82},
+ { 38, 65,139},
+ {115, 73, 53},
+ {101,103,120},
+ { 12, 32, 28},
+ { 62,204, 62},
+ { 65, 69, 67},
+ { 77, 60,126},
+ {166, 92, 30},
+ { 38, 10, 29},
+ { 93, 10,117},
+ { 76, 81,111},
+ {148,103,130},
+ {111, 66,154},
+ { 83,102, 96},
+ {235,230,224},
+ { 79, 81,155},
+ {109, 67, 94},
+ { 86, 60,171},
+ { 90, 55, 53},
+ {143, 10,147},
+ { 73, 44,127},
+ { 21, 26, 32},
+ {227,194,155},
+ {113, 75, 84},
+ { 63, 84, 87},
+ {108,103,172},
+ { 55, 8, 53},
+ {160,154,146},
+ {166,111, 60},
+ { 70,206, 70},
+ {208, 68, 67},
+ { 78, 48,171},
+ { 97, 20,117},
+ { 20, 22, 28},
+ { 89, 69, 50},
+ { 96,128,130},
+ {147, 84,107},
+ {236,236,237},
+ {151,106, 64},
+ {182,179,188},
+ {168,160,181},
+ { 47,179, 51},
+ { 66, 46, 77},
+ { 57,102,190},
+ { 28, 12, 24},
+ {110, 77,153},
+ { 41, 48, 58},
+ { 93, 31,169},
+ {132,108,133},
+ { 93, 67,121},
+ {176,124,157},
+ { 80, 80,133},
+ { 67, 14, 64},
+ { 58, 58, 96},
+ { 89, 82, 50},
+ { 49, 31,135},
+ { 67, 31, 61},
+ {113, 53, 80},
+ { 38, 34, 99},
+ { 44, 18,110},
+ {242,242,242},
+ {181,134, 81},
+ {190,131, 76},
+ { 13, 15, 21},
+ { 78, 60,151},
+ {108, 76,114},
+ {121, 32,123},
+ { 50, 87,176},
+ { 95, 50,131},
+ {111,120,127},
+ { 67, 30,185},
+ { 87, 70, 76},
+ {219, 71, 76},
+ {147, 84,165},
+ {233,206,169},
+ { 78, 89,131},
+ { 47, 69, 90},
+ { 74, 49,153},
+ {102,102,146},
+ {147, 66,113},
+ { 83,102,116},
+ { 55, 6, 78},
+ { 72, 70,126},
+ {150, 52, 99},
+ { 74, 58, 80},
+ {201,196,207},
+ {150,121,189},
+ {130, 84,112},
+ { 24, 48, 90},
+ { 66, 26,134},
+ { 22, 7, 22},
+ { 89, 33,110},
+ {214,136, 98},
+ {111, 86,182},
+ { 53,204, 55},
+ { 91, 45, 97},
+ {129,133,184},
+ {172, 21,163},
+ { 61, 60,125},
+ {132,107, 70},
+ {170,113,125},
+ {210,209,214},
+ { 96, 85,111},
+ { 55, 20, 97},
+ {193,149, 97},
+ {107, 88,116},
+ {175, 69,182},
+ {124, 28, 59},
+ {216,182,193},
+ {144,126,206},
+ { 41, 20, 69},
+ {110, 44,111},
+ {120,105,118},
+ {108, 89,145},
+ { 57, 69,101},
+ { 94, 35,148},
+ {152, 50,157},
+ { 70, 24,102},
+ {148, 85, 34},
+ { 80, 47, 95},
+ { 93, 68,148},
+ { 86, 94, 89},
+ { 34, 33, 42},
+ { 88, 49,127},
+ { 58, 83,148},
+ { 42, 60, 94},
+ { 92, 90,134},
+ {148,124,134},
+ { 9, 10, 16},
+ { 88, 91,156},
+ {254,254,254},
+ {219,219,219},
+ { 91, 11, 84},
+ { 96, 80,134},
+ { 90, 62, 92},
+ { 85, 70, 99},
+ {148, 67,161},
+ {208,165,115},
+ {112, 66,123},
+ {230,202,166},
+ { 82, 82, 86},
+ { 62, 64,157},
+ {194,102,210},
+ {111, 88, 85},
+ { 70, 30,162},
+ { 58, 48,161},
+ {137, 51,119},
+ {202, 79,179},
+ { 82, 94,110},
+ {245, 78, 78},
+ { 96, 84, 87},
+ {112, 32,114},
+ {130,110,177},
+ { 74, 58,101},
+ { 36,134, 41},
+ {113,128, 90},
+ { 61, 70,126},
+ { 74, 69,168},
+ {110, 66,193},
+ {172,122, 71},
+ { 89, 32, 79},
+ {119, 10,126},
+ {106,114,120},
+ { 18, 6, 14},
+ { 84,101,140},
+ {146,146, 78},
+ { 65, 46,100},
+ {130, 90,145},
+ { 69, 34, 86},
+ { 98, 70, 99},
+ {113, 88, 50},
+ { 39, 33, 74},
+ {194,181,219},
+ { 93, 81,161},
+ { 70, 36,138},
+ {202,122,158},
+ {120,104,148},
+ { 91, 54, 95},
+ { 96, 50,174},
+ {148,132, 80},
+ { 82, 71,127},
+ { 39, 21, 32},
+ {169, 89,111},
+ {126,130,128},
+ { 54, 34, 64},
+ {131, 65, 94},
+ {136, 45,149},
+ { 89,104,163},
+ {140, 30,132},
+ { 79, 70,151},
+ { 13, 16, 48},
+ { 74, 52,126},
+ { 71, 13,101},
+ {129, 86, 88},
+ { 57, 48,128},
+ {101, 9,158},
+ { 17, 22, 73},
+ { 44, 47, 91},
+ {143, 51, 50},
+ { 82, 90,112},
+ {104, 34,115},
+ {193,105,121},
+ {111, 55,111},
+ { 69, 70, 97},
+ { 66, 83,133},
+ {145,146,170},
+ {120, 88,110},
+ {234,207,175},
+ {116,124,175},
+ {108,104, 87},
+ {169, 51,135},
+ { 58, 10,184},
+ { 89, 50,154},
+ { 87,117,134},
+ {108, 87,165},
+ {226,122,134},
+ {114,103,119},
+ { 82, 98, 74},
+ { 91, 70,170},
+ { 70, 35,107},
+ { 7, 6, 21},
+ { 90, 80,136},
+ {102,114,146},
+ {110,112,216},
+ { 29, 14, 68},
+ {110, 31, 65},
+ { 53, 30, 47},
+ { 67, 11,145},
+ { 86, 82,110},
+ { 17, 33, 72},
+ { 55, 33,101},
+ {255,255,255}
+ };
+static unsigned char header_data[] = {
+ 29,221,11,113,77,77,82,190,208,79,190,108,254,44,108,77,
+ 227,227,29,138,77,77,177,254,79,108,66,254,243,77,190,82,
+ 254,108,218,190,77,254,77,190,254,83,254,254,20,190,108,227,
+ 77,82,190,177,192,243,143,143,216,115,108,95,108,108,95,66,
+ 184,141,216,56,33,115,115,158,143,115,177,66,243,177,177,192,
+ 158,190,44,127,127,243,190,254,243,251,127,44,108,227,177,177,
+ 227,77,22,29,82,11,221,77,100,149,112,82,77,82,100,149,
+ 82,149,4,24,112,82,248,82,82,83,11,127,82,127,11,77,
+ 100,195,11,79,20,77,82,190,208,79,190,108,254,44,108,77,
+ 227,227,29,138,77,77,177,254,79,108,66,79,243,77,190,82,
+ 254,108,190,218,77,254,77,190,254,83,254,254,20,190,108,227,
+ 77,82,190,177,192,243,143,143,216,115,108,95,108,108,95,66,
+ 184,141,216,56,33,115,115,146,
+ 237,181,94,176,252,181,55,182,41,55,117,49,242,191,240,242,
+ 49,49,246,188,153,49,41,19,117,137,44,94,182,137,176,69,
+ 49,245,198,213,245,197,129,88,44,71,191,49,49,236,176,59,
+ 93,93,232,41,35,97,74,176,185,130,124,151,72,157,72,69,
+ 160,160,140,130,166,199,128,229,117,160,35,176,97,160,160,210,
+ 191,191,176,139,110,110,182,176,110,139,133,229,179,237,94,202,
+ 102,247,247,188,213,182,247,211,153,181,169,94,169,169,247,180,
+ 149,67,67,91,39,169,11,198,24,79,169,232,232,247,99,59,
+ 59,88,94,191,252,165,55,182,41,55,117,49,242,191,240,242,
+ 49,49,246,211,153,137,182,202,191,137,101,168,182,200,176,117,
+ 49,157,169,242,157,197,129,41,44,71,191,49,49,236,176,59,
+ 93,93,232,41,35,97,74,176,185,130,124,151,72,157,72,69,
+ 160,160,140,130,166,199,128,240,
+ 180,101,94,94,181,180,88,182,182,41,213,49,88,157,69,55,
+ 49,197,49,49,49,242,94,182,151,49,41,242,148,253,82,220,
+ 137,252,153,49,150,242,242,236,36,71,72,26,75,101,93,59,
+ 246,246,204,242,117,44,117,49,210,140,140,47,72,164,200,69,
+ 19,19,90,166,107,74,151,151,176,97,97,97,130,160,97,210,
+ 49,110,191,182,110,176,117,176,153,117,207,179,186,181,169,200,
+ 93,104,39,247,232,246,246,67,99,165,181,165,197,39,49,148,
+ 246,237,48,13,235,235,94,39,148,94,181,237,91,246,34,180,
+ 148,88,94,55,181,165,213,182,182,41,213,49,88,157,69,55,
+ 49,197,49,49,49,242,94,182,110,137,242,242,200,49,41,144,
+ 49,150,102,247,137,197,242,236,36,71,72,26,75,101,93,59,
+ 246,246,204,242,117,44,117,49,210,140,140,47,72,164,200,69,
+ 19,19,90,166,107,74,151,20,
+ 79,41,202,101,126,77,79,235,168,242,39,39,213,197,55,71,
+ 242,55,238,197,165,44,120,70,108,221,253,253,220,13,27,0,
+ 0,195,34,180,215,204,198,30,245,88,240,223,106,236,129,104,
+ 22,75,88,88,115,69,191,93,36,226,35,62,174,243,147,111,
+ 230,47,209,160,35,128,203,186,176,191,191,97,71,71,97,35,
+ 186,136,238,182,117,30,150,246,237,188,59,37,181,169,41,129,
+ 102,93,228,180,228,148,188,67,237,188,148,24,104,188,99,24,
+ 24,165,13,11,235,94,99,172,180,79,181,228,24,153,218,83,
+ 169,55,55,101,126,77,79,235,168,242,39,39,213,197,55,71,
+ 242,55,153,153,165,169,41,242,26,75,197,153,26,213,44,144,
+ 150,252,252,106,30,242,44,30,157,88,200,145,106,236,129,104,
+ 22,75,88,88,115,69,191,93,36,226,35,62,174,243,147,111,
+ 230,47,209,103,35,85,207,146,
+ 190,94,235,44,20,79,83,168,236,238,39,165,88,55,94,242,
+ 101,101,245,204,26,27,70,87,152,214,152,220,220,91,12,91,
+ 152,0,187,221,221,204,190,164,145,22,34,48,106,198,44,254,
+ 122,213,144,44,113,162,129,129,92,92,89,230,201,56,139,92,
+ 73,111,135,175,19,151,186,72,93,89,69,191,160,191,93,136,
+ 179,129,157,215,144,102,93,186,172,172,37,227,190,213,202,101,
+ 106,150,169,213,99,104,237,104,148,148,165,82,148,24,24,13,
+ 13,165,165,169,79,67,104,99,180,169,75,22,24,228,106,181,
+ 215,235,11,44,20,79,83,168,236,238,39,165,88,55,94,242,
+ 101,101,157,204,30,213,242,197,150,150,39,75,204,169,101,242,
+ 106,180,34,122,180,252,215,126,241,22,34,172,122,44,44,254,
+ 122,213,144,44,113,162,129,129,92,92,89,230,201,56,139,92,
+ 73,111,135,139,19,151,233,146,
+ 11,235,202,157,221,83,243,79,113,215,213,213,169,94,101,204,
+ 215,101,150,164,45,87,214,214,253,214,214,24,12,12,12,12,
+ 67,112,0,0,87,77,195,108,48,227,138,227,218,147,139,101,
+ 177,213,218,113,251,139,191,215,144,126,233,136,115,135,191,167,
+ 89,135,219,56,36,203,123,233,129,89,240,136,174,233,186,93,
+ 150,137,73,204,129,26,186,104,106,228,99,215,101,144,44,39,
+ 188,223,169,153,104,104,22,138,218,218,218,169,165,169,79,79,
+ 24,165,122,169,169,228,148,24,24,79,83,79,79,55,41,169,
+ 113,235,55,159,190,83,243,79,113,215,213,213,169,94,101,245,
+ 44,236,137,245,213,39,242,157,106,150,88,88,88,218,88,75,
+ 75,99,227,122,106,204,254,164,241,22,138,22,218,147,139,101,
+ 177,213,218,113,251,139,191,215,144,126,233,136,115,135,191,167,
+ 69,135,185,56,36,203,123,146,
+ 113,168,137,126,190,79,218,11,83,55,144,242,198,236,39,245,
+ 198,180,146,87,244,244,214,152,214,24,12,12,12,12,12,12,
+ 12,12,24,152,0,114,82,221,100,77,218,100,218,41,115,145,
+ 26,159,30,157,41,36,137,126,233,137,89,201,115,230,167,159,
+ 159,119,210,19,230,207,179,93,240,72,240,240,129,240,37,252,
+ 252,26,157,150,233,145,188,37,106,204,22,254,55,198,30,237,
+ 104,213,101,153,75,24,82,79,79,242,157,44,122,169,169,165,
+ 13,79,11,169,165,67,228,24,106,168,235,168,113,235,113,55,
+ 198,113,150,252,218,79,218,11,83,55,144,242,198,55,245,75,
+ 198,101,150,204,181,245,39,99,213,153,44,94,236,197,39,99,
+ 150,172,172,180,122,218,83,106,180,122,122,138,101,92,44,150,
+ 233,227,30,157,41,36,137,126,233,137,89,201,115,230,167,95,
+ 159,119,19,210,230,207,186,146,
+ 44,197,49,153,122,218,218,79,251,168,101,215,236,197,126,232,
+ 70,0,244,0,152,152,214,24,12,12,12,12,12,12,12,12,
+ 12,12,12,91,214,0,0,77,82,221,106,77,254,113,113,145,
+ 22,34,122,198,30,129,150,223,126,243,224,139,193,17,145,177,
+ 193,201,210,226,72,179,186,129,126,230,137,126,201,230,129,40,
+ 240,167,129,30,252,223,75,22,245,213,228,30,144,122,150,237,
+ 188,218,215,150,39,169,153,157,169,197,122,13,39,181,99,104,
+ 213,94,94,213,75,99,228,39,148,83,168,88,88,55,144,102,
+ 41,41,197,150,77,218,218,79,251,168,236,215,55,157,245,39,
+ 55,242,157,242,181,213,39,106,39,181,55,88,157,245,180,99,
+ 75,22,227,180,106,165,218,204,122,122,204,138,79,198,113,26,
+ 22,34,30,198,30,129,150,223,126,243,224,139,193,17,145,177,
+ 193,226,90,162,123,179,233,146,
+ 82,102,211,153,122,198,11,11,235,41,39,144,55,88,223,152,
+ 0,0,244,244,112,91,12,12,67,91,67,24,24,91,12,12,
+ 12,12,12,12,12,112,0,0,205,221,77,221,79,147,106,223,
+ 138,30,147,254,26,241,26,44,251,147,129,126,126,126,158,243,
+ 119,90,219,170,123,240,233,167,119,162,150,157,144,240,233,204,
+ 126,30,201,215,157,34,30,30,252,198,99,34,104,228,237,99,
+ 106,198,204,104,180,55,242,75,204,181,198,213,228,165,228,180,
+ 13,94,242,211,22,101,113,79,165,94,101,228,39,144,159,164,
+ 218,153,172,153,215,198,11,235,235,101,153,144,139,213,88,169,
+ 41,75,202,71,165,88,144,215,213,101,198,153,150,75,228,99,
+ 204,88,254,77,180,106,13,34,75,181,227,77,168,215,106,172,
+ 138,30,147,254,26,241,26,44,251,147,129,126,126,126,158,243,
+ 147,90,219,19,72,233,167,146,
+ 218,153,49,204,41,198,71,71,251,88,213,55,34,45,0,244,
+ 244,152,253,91,67,24,253,253,253,214,214,214,244,0,0,220,
+ 112,67,12,12,12,12,24,214,0,0,149,221,243,218,34,48,
+ 190,198,113,190,227,227,147,216,162,191,158,190,126,95,143,201,
+ 224,33,56,97,17,167,230,252,115,230,240,145,129,129,129,252,
+ 145,157,177,159,150,150,106,218,30,88,252,106,34,180,99,180,
+ 218,73,150,188,180,213,204,228,101,169,150,188,39,180,106,165,
+ 181,41,55,99,99,181,55,150,39,44,197,39,181,168,144,204,
+ 122,245,153,30,88,198,168,71,251,88,213,55,236,242,181,41,
+ 55,202,168,202,137,102,197,153,153,181,204,145,223,150,39,77,
+ 168,198,198,213,30,218,165,180,228,180,22,122,101,44,150,48,
+ 215,198,113,190,227,227,147,216,162,191,158,190,126,95,143,201,
+ 224,33,185,60,17,174,129,57,
+ 215,41,41,113,168,251,71,71,71,55,169,29,244,0,0,244,
+ 253,91,12,91,220,244,152,244,244,214,0,0,244,244,0,244,
+ 244,244,214,112,12,12,12,67,253,244,0,214,221,82,34,100,
+ 79,236,71,251,216,139,71,115,47,162,44,157,95,177,119,119,
+ 219,185,97,62,233,167,89,157,89,240,174,174,230,159,157,104,
+ 26,252,223,150,145,223,30,101,144,73,177,252,157,204,75,106,
+ 122,150,223,148,148,75,75,237,197,34,145,180,106,213,215,30,
+ 169,169,41,211,188,39,169,153,39,169,144,88,181,55,242,204,
+ 41,101,88,79,71,251,139,71,71,55,169,94,202,238,99,150,
+ 197,41,41,137,245,213,39,204,75,153,242,144,41,44,236,44,
+ 168,139,202,30,106,106,180,180,148,22,138,180,88,13,188,22,
+ 254,41,71,251,216,139,71,115,47,162,44,157,159,177,119,119,
+ 56,219,60,151,17,167,162,57,
+ 113,94,242,202,71,71,202,139,19,138,45,0,0,244,214,91,
+ 12,12,24,152,0,0,0,0,244,253,112,24,253,220,214,152,
+ 87,152,244,244,214,12,12,12,12,24,214,0,0,195,77,221,
+ 251,141,115,168,89,30,216,56,135,141,147,136,89,254,139,115,
+ 33,56,103,179,186,193,143,89,145,167,47,158,69,30,102,241,
+ 34,106,252,223,164,149,215,44,44,177,159,144,198,218,215,122,
+ 88,75,172,228,180,39,228,104,227,26,75,218,169,198,113,44,
+ 181,198,169,181,148,122,106,153,39,88,41,55,41,79,245,75,
+ 55,113,41,55,71,71,202,71,19,197,242,202,242,181,213,157,
+ 39,144,102,153,44,41,245,144,41,101,55,168,198,41,144,147,
+ 168,41,69,144,204,122,24,180,180,180,13,122,79,218,34,13,
+ 251,56,224,168,157,73,216,56,135,141,147,136,89,254,139,115,
+ 219,56,103,203,233,89,143,45,
+ 215,169,242,242,202,202,69,69,104,0,0,244,112,24,67,12,
+ 12,24,214,0,0,0,244,13,12,12,12,12,12,12,12,253,
+ 152,220,0,0,152,253,12,12,12,12,12,149,244,244,70,176,
+ 105,40,119,141,240,89,193,89,162,226,136,233,78,108,73,115,
+ 185,103,60,17,233,158,126,129,95,252,159,73,243,73,126,126,
+ 44,192,159,126,34,29,30,88,30,164,164,245,122,75,75,34,
+ 44,218,75,204,44,106,99,228,122,150,180,180,245,41,55,69,
+ 238,55,41,69,242,165,213,215,39,153,157,202,41,215,245,197,
+ 88,94,88,242,202,202,69,69,41,41,242,41,36,39,153,69,
+ 202,71,41,242,139,242,150,242,55,198,236,236,69,137,126,213,
+ 252,99,126,75,150,75,77,165,180,122,221,218,79,30,177,79,
+ 216,111,135,113,136,89,162,89,162,201,136,233,78,108,158,115,
+ 185,103,111,233,233,177,193,146,
+ 88,182,49,242,202,202,30,45,0,0,253,91,12,12,12,12,
+ 24,214,0,214,244,214,12,12,12,12,12,12,12,12,12,12,
+ 27,253,214,244,244,214,12,12,12,12,12,12,67,45,0,152,
+ 83,115,192,193,167,158,41,190,113,89,186,145,159,108,192,141,
+ 210,209,191,17,145,119,174,145,77,89,89,73,30,102,164,215,
+ 226,147,158,77,77,122,243,243,30,126,215,254,30,99,106,75,
+ 79,213,204,101,83,218,223,106,218,165,30,245,41,55,198,137,
+ 144,94,41,19,41,197,153,242,197,153,39,236,200,49,99,137,
+ 197,181,117,242,202,202,36,69,89,197,137,69,144,197,213,71,
+ 94,168,242,41,202,19,168,168,19,69,117,242,197,245,75,39,
+ 188,223,22,180,180,106,195,214,152,0,0,0,244,57,195,251,
+ 251,44,115,230,167,193,88,215,113,89,186,145,159,143,192,80,
+ 210,170,217,17,145,143,47,57,
+ 122,242,117,55,236,227,152,0,0,13,12,12,12,12,12,12,
+ 253,87,244,220,0,91,12,12,12,12,12,12,12,12,12,12,
+ 12,24,253,0,0,214,67,12,12,12,12,12,12,12,112,0,
+ 0,141,227,164,29,127,141,115,144,126,240,26,34,20,108,192,
+ 175,56,217,233,174,92,167,104,126,157,147,158,174,129,215,201,
+ 89,30,129,34,106,177,127,115,95,159,190,101,126,223,75,99,
+ 44,102,223,198,198,145,172,228,34,106,197,88,55,41,197,211,
+ 102,153,242,55,242,153,99,197,242,39,39,101,137,188,172,242,
+ 242,213,213,169,202,202,41,41,197,137,137,19,101,153,197,71,
+ 202,242,150,144,182,219,219,19,102,200,69,41,242,197,197,39,
+ 34,138,122,218,248,244,0,51,125,5,61,155,109,229,0,0,
+ 105,198,157,145,164,192,216,0,0,159,233,26,48,20,215,192,
+ 90,56,35,17,129,201,126,146,
+ 88,238,238,202,37,244,244,253,67,12,12,12,12,12,12,67,
+ 13,152,152,244,220,12,12,12,12,12,12,12,12,12,12,12,
+ 12,12,27,244,0,214,12,12,12,12,12,12,12,12,12,91,
+ 152,0,29,252,127,243,226,40,89,174,145,37,145,164,215,141,
+ 56,156,35,17,174,40,89,227,78,201,113,89,145,245,243,162,
+ 95,164,164,227,122,44,251,135,89,190,251,44,158,227,34,227,
+ 218,172,223,215,157,104,172,22,165,122,215,198,236,102,186,213,
+ 213,102,242,41,136,59,211,153,137,211,188,181,49,153,165,41,
+ 144,242,238,236,69,182,182,197,137,102,39,71,144,102,69,71,
+ 69,102,150,182,69,55,97,72,186,102,99,238,137,126,150,150,
+ 213,30,254,244,0,109,61,84,84,61,61,61,5,5,155,51,
+ 0,68,29,95,113,115,0,84,61,0,29,241,145,164,215,141,
+ 56,156,35,194,174,158,126,57,
+ 30,117,238,70,0,244,82,91,12,12,12,12,12,12,12,12,
+ 253,214,244,244,253,12,12,12,12,12,12,91,27,112,67,12,
+ 12,12,12,12,91,24,12,12,12,12,12,12,12,12,12,12,
+ 12,70,87,0,216,115,115,216,215,73,73,252,58,190,141,33,
+ 219,56,123,78,78,89,92,113,119,44,143,129,159,215,108,157,
+ 164,29,73,215,147,141,113,167,174,113,113,73,204,34,34,218,
+ 138,228,223,227,223,37,22,22,218,180,106,101,144,200,197,168,
+ 41,242,204,188,93,59,237,213,153,246,153,213,238,197,30,69,
+ 36,197,157,139,182,242,197,197,69,182,139,41,238,238,55,71,
+ 69,145,245,94,19,144,238,191,36,236,204,197,242,69,238,197,
+ 75,221,0,145,5,61,61,61,61,5,5,5,5,5,155,125,
+ 63,29,0,208,141,175,0,84,61,38,0,66,29,143,141,216,
+ 219,56,17,194,78,89,119,68,
+ 44,242,242,146,187,131,14,82,91,12,12,12,12,12,12,12,
+ 91,152,0,244,214,24,12,12,12,12,12,112,0,244,220,91,
+ 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+ 67,91,59,187,105,216,76,42,174,159,44,198,192,127,192,81,
+ 56,56,217,95,201,158,119,40,193,143,147,201,243,143,193,73,
+ 126,164,159,215,159,215,159,174,95,141,92,89,164,34,227,106,
+ 228,180,106,122,106,228,228,228,213,99,181,44,41,102,75,88,
+ 153,102,211,246,237,246,213,168,88,245,211,153,238,88,242,150,
+ 41,41,242,236,36,102,211,238,242,55,182,69,157,181,139,202,
+ 137,145,213,71,69,102,150,240,240,200,200,137,236,147,144,150,
+ 177,0,207,61,84,61,5,125,125,109,109,125,155,155,5,5,
+ 125,63,145,0,105,156,0,84,125,125,84,0,205,127,192,81,
+ 56,56,167,95,201,226,243,205,
+ 101,117,117,45,244,16,23,187,152,180,12,12,12,12,12,12,
+ 12,112,244,0,214,12,12,12,12,12,67,214,0,244,244,152,
+ 24,12,12,12,12,12,12,12,12,12,12,12,12,12,12,48,
+ 112,29,65,0,76,143,81,167,78,159,40,73,158,243,201,201,
+ 33,224,230,167,73,201,143,193,233,201,201,115,92,162,42,66,
+ 164,164,29,177,159,177,159,108,66,143,193,252,164,228,75,227,
+ 30,165,213,165,180,228,22,172,204,39,181,88,88,188,188,102,
+ 59,59,211,211,39,153,236,202,197,117,238,181,88,39,49,238,
+ 144,117,197,117,197,49,211,102,197,41,137,137,157,213,144,144,
+ 238,153,181,113,36,137,204,137,204,197,144,202,139,144,238,188,
+ 114,26,61,84,61,155,63,164,57,0,0,152,93,63,5,155,
+ 155,109,63,164,68,226,0,84,125,64,5,154,0,134,143,201,
+ 156,224,230,167,204,201,66,205,
+ 122,49,197,205,187,96,173,222,187,244,13,12,12,12,12,12,
+ 12,12,152,214,244,253,12,12,12,12,12,112,244,0,0,0,
+ 244,220,112,12,12,12,12,12,12,12,12,12,12,91,100,70,
+ 53,15,9,187,250,250,250,58,29,158,192,226,40,108,108,143,
+ 33,226,47,58,108,158,193,226,162,243,19,139,36,47,158,95,
+ 108,48,29,66,215,159,204,190,44,201,177,159,164,34,138,218,
+ 221,254,77,122,75,150,104,22,198,79,165,101,144,39,211,211,
+ 237,59,99,39,153,242,251,71,150,153,242,215,245,102,153,30,
+ 88,238,242,238,102,211,26,102,144,41,137,137,197,197,245,69,
+ 150,102,242,88,137,102,197,150,41,117,69,144,69,200,186,70,
+ 0,5,84,61,155,229,152,114,20,77,221,221,20,87,229,155,
+ 5,155,63,63,0,250,0,84,155,64,155,61,38,0,66,66,
+ 33,209,47,58,108,158,226,57,
+ 204,238,242,205,187,96,173,173,16,187,0,146,67,12,12,12,
+ 12,12,112,244,214,0,220,12,12,12,12,12,112,0,0,0,
+ 0,214,24,12,12,12,12,12,12,12,12,91,27,45,9,1,
+ 1,1,9,32,205,205,250,29,108,66,143,72,109,154,154,154,
+ 154,154,154,196,143,109,154,154,154,154,154,154,154,154,154,154,
+ 154,154,192,176,154,154,154,113,139,44,157,61,154,229,218,34,
+ 88,213,34,106,75,204,39,180,235,41,137,101,242,246,102,197,
+ 211,211,246,109,154,154,154,154,61,64,238,181,246,186,150,197,
+ 153,197,181,102,102,197,99,153,144,157,238,36,69,89,88,238,
+ 172,150,144,144,102,150,242,144,139,36,137,104,26,26,102,244,
+ 63,84,61,125,207,152,195,83,208,108,254,44,115,216,32,207,
+ 155,5,125,63,229,187,0,84,155,51,155,5,63,0,66,192,
+ 33,209,58,42,143,158,92,114,
+ 180,197,242,146,187,54,173,173,173,96,68,0,152,24,12,12,
+ 12,12,12,214,244,244,0,0,91,12,12,67,91,0,0,0,
+ 244,24,12,12,12,12,12,12,12,91,4,152,70,1,1,1,
+ 15,15,4,187,146,146,205,20,66,141,109,154,154,154,154,154,
+ 154,154,154,109,119,132,154,154,154,154,154,154,154,154,154,154,
+ 154,154,190,176,154,154,154,216,141,119,63,154,109,190,215,157,
+ 44,30,34,99,213,218,101,165,235,242,150,144,238,153,106,41,
+ 153,153,120,154,154,154,154,154,154,154,63,213,26,104,39,41,
+ 150,144,88,102,153,215,117,197,41,236,55,55,144,236,55,238,
+ 188,137,202,204,159,218,101,55,219,19,150,104,237,26,227,0,
+ 61,84,155,109,152,57,134,216,215,193,190,108,177,243,119,205,
+ 51,5,155,109,63,0,0,84,155,64,125,61,0,57,208,127,
+ 33,217,47,193,143,135,141,114,
+ 227,41,55,214,187,96,173,173,173,173,173,114,0,187,146,12,
+ 12,12,12,24,244,244,0,0,0,0,152,220,0,0,0,0,
+ 112,12,12,12,12,12,12,91,27,244,152,2,1,1,1,1,
+ 15,1,152,248,57,45,134,250,80,35,154,154,154,125,230,80,
+ 56,47,217,72,184,115,56,216,224,191,154,154,154,109,158,95,
+ 108,143,243,72,154,154,154,113,36,229,154,125,245,159,106,215,
+ 127,218,99,99,196,154,133,181,101,153,104,245,150,172,153,157,
+ 102,242,120,64,211,211,102,154,154,154,154,229,188,188,99,41,
+ 188,55,44,153,188,30,19,242,197,197,242,238,144,55,242,150,
+ 237,69,115,204,188,245,238,197,236,191,102,186,172,150,66,51,
+ 84,61,109,207,87,221,215,158,215,252,22,164,159,201,108,95,
+ 45,125,38,125,63,233,0,84,125,64,155,0,57,250,208,80,
+ 56,47,25,158,184,115,56,114,
+ 106,94,242,57,0,173,173,173,173,173,173,173,114,114,244,244,
+ 91,12,12,12,67,87,244,0,244,0,0,0,0,0,112,91,
+ 12,12,12,12,12,67,100,152,0,9,1,1,1,1,1,1,
+ 1,1,152,114,205,45,205,205,105,154,154,154,155,66,143,216,
+ 135,25,143,115,141,224,135,226,162,123,154,154,154,109,158,158,
+ 66,113,115,200,154,154,154,47,72,154,154,64,34,227,190,218,
+ 236,204,188,180,196,154,229,150,126,188,188,188,153,228,102,204,
+ 102,165,197,211,188,153,39,229,154,154,154,229,188,99,75,245,
+ 197,198,242,64,109,196,196,176,238,232,109,109,176,69,150,99,
+ 172,236,71,238,126,204,144,144,150,237,172,26,245,215,214,125,
+ 84,125,109,70,195,218,30,243,44,157,164,252,30,147,143,159,
+ 20,179,61,155,63,51,0,61,155,64,125,5,0,250,243,216,
+ 135,25,184,115,141,224,224,68,
+ 215,41,246,214,0,96,173,173,173,173,173,173,96,32,14,187,
+ 187,148,12,12,12,12,67,253,244,244,244,0,244,67,12,12,
+ 12,12,12,24,112,87,0,9,15,1,1,1,1,15,1,1,
+ 1,15,0,187,68,45,134,248,191,154,154,154,240,192,135,251,
+ 81,40,184,40,92,209,92,47,89,167,154,154,154,109,40,66,
+ 127,201,92,35,154,154,154,164,154,154,109,34,164,190,44,30,
+ 44,215,204,122,109,154,229,237,37,228,99,150,242,41,197,101,
+ 242,237,246,188,39,39,242,155,154,154,155,49,153,188,99,211,
+ 181,41,211,246,155,154,154,63,120,84,154,63,144,150,197,101,
+ 165,169,236,69,204,213,213,137,26,37,104,172,88,30,87,5,
+ 84,109,109,45,208,77,126,193,144,108,177,190,159,252,204,193,
+ 143,146,61,5,109,64,0,84,155,64,155,109,0,250,184,251,
+ 81,40,192,40,135,162,226,205,
+ 169,117,237,87,114,96,173,173,173,173,173,173,173,54,32,222,
+ 14,244,220,67,12,12,12,12,12,12,12,67,12,12,12,12,
+ 12,112,27,27,0,45,28,1,1,1,1,15,1,1,1,1,
+ 1,15,244,114,57,146,205,208,72,154,154,154,201,143,7,156,
+ 209,81,56,135,135,111,111,162,201,47,154,154,154,109,95,66,
+ 115,147,105,110,154,154,154,63,154,154,229,30,215,44,113,41,
+ 101,213,34,204,109,154,229,228,88,169,99,153,88,88,150,75,
+ 102,237,211,211,211,197,242,154,154,154,63,39,188,211,211,153,
+ 55,242,211,181,64,154,154,155,63,154,154,202,144,197,150,197,
+ 153,69,55,242,204,197,197,150,172,34,104,104,204,159,152,38,
+ 84,125,63,87,108,227,129,193,30,164,108,243,95,34,177,143,
+ 190,87,38,5,109,63,0,84,155,64,125,0,205,250,14,33,
+ 209,81,56,81,135,217,89,205,
+ 44,117,211,87,187,54,173,173,173,173,173,173,173,173,16,114,
+ 3,23,244,152,91,12,12,12,12,12,12,12,12,12,12,112,
+ 220,214,244,152,10,15,1,1,1,1,1,1,1,1,1,1,
+ 15,65,0,68,57,45,250,208,136,154,154,154,119,141,184,219,
+ 60,35,97,35,135,25,167,201,40,194,154,154,154,109,58,77,
+ 115,147,73,229,154,154,154,154,154,154,155,144,215,122,106,126,
+ 109,154,154,154,154,154,154,154,154,154,109,148,165,188,49,39,
+ 150,237,211,246,211,49,154,154,154,63,165,181,39,148,153,188,
+ 88,197,153,165,182,109,154,154,154,154,176,182,55,41,102,102,
+ 102,153,101,144,150,75,213,204,197,30,106,150,106,30,0,155,
+ 38,125,64,152,66,227,147,127,143,129,147,251,184,254,83,243,
+ 66,57,5,5,109,64,0,84,125,64,155,0,127,127,184,219,
+ 8,175,33,209,135,47,47,57,
+ 79,242,102,87,114,54,173,173,173,173,23,173,173,173,173,16,
+ 114,3,173,8,244,253,12,12,12,12,12,12,12,24,253,70,
+ 87,0,9,28,1,1,1,1,1,1,1,1,118,27,1,1,
+ 1,4,244,57,68,68,205,205,136,154,154,154,8,158,81,219,
+ 163,154,154,46,56,111,25,58,40,193,154,154,154,109,215,243,
+ 177,158,201,207,154,154,154,125,154,154,154,196,190,204,75,22,
+ 109,154,154,154,154,154,154,154,154,154,109,153,188,102,197,41,
+ 153,237,211,102,232,154,154,154,63,148,148,153,99,39,188,188,
+ 101,41,153,106,157,133,154,154,154,196,139,69,236,137,245,153,
+ 99,39,165,30,26,150,122,242,236,79,218,108,21,21,21,142,
+ 52,52,31,21,21,21,21,21,21,21,21,21,21,21,21,21,
+ 21,21,31,183,52,142,0,61,155,64,125,0,21,42,119,185,
+ 217,249,90,103,56,111,58,205,
+ 79,181,197,57,114,3,173,173,173,173,152,7,96,173,173,173,
+ 16,187,3,173,23,114,214,24,12,12,12,12,112,112,220,152,
+ 57,65,15,1,1,1,1,1,1,1,2,4,4,4,1,1,
+ 15,27,0,114,114,114,134,76,162,154,154,154,163,58,119,33,
+ 109,154,154,132,56,111,58,42,192,143,154,154,154,196,216,115,
+ 95,20,127,176,154,154,154,216,154,154,154,154,64,150,172,99,
+ 22,150,113,30,109,154,229,92,168,126,237,99,39,144,55,71,
+ 150,237,211,246,154,154,61,211,104,99,188,67,228,99,99,165,
+ 198,165,242,213,236,202,155,154,154,125,191,144,198,117,75,150,
+ 172,75,88,165,99,106,39,197,215,177,106,21,161,5,38,231,
+ 231,231,98,46,46,46,18,18,161,161,161,161,18,18,18,46,
+ 18,46,18,46,46,18,0,84,155,51,155,125,0,66,80,33,
+ 194,81,170,90,56,217,42,57,
+ 198,197,242,68,50,131,173,173,173,23,187,0,187,14,96,173,
+ 173,16,114,131,173,54,205,152,24,67,12,91,27,152,0,6,
+ 28,1,1,1,1,1,1,15,1,65,152,0,27,15,1,1,
+ 15,87,214,114,68,32,134,50,156,125,154,154,154,123,216,90,
+ 109,154,154,196,226,35,25,184,127,108,154,154,154,196,115,58,
+ 95,254,215,151,154,154,154,19,191,154,154,154,155,26,252,122,
+ 30,88,254,126,109,154,133,215,159,233,37,228,242,41,251,71,
+ 157,188,120,154,154,61,197,211,67,99,188,153,99,229,154,154,
+ 154,120,213,165,235,196,154,154,154,154,196,144,144,117,137,172,
+ 99,39,213,245,106,213,153,213,213,150,252,21,38,231,98,46,
+ 46,18,18,161,161,128,128,86,183,183,183,183,183,86,85,85,
+ 85,128,85,128,86,86,0,84,155,64,125,155,109,0,141,175,
+ 194,119,90,175,19,62,25,68,
+ 198,49,238,87,14,7,173,173,173,7,68,0,0,0,187,222,
+ 173,173,54,32,7,173,54,14,114,244,4,9,0,87,2,1,
+ 1,1,1,1,1,1,1,1,15,87,87,0,9,1,1,1,
+ 15,0,248,68,248,205,192,76,115,160,154,154,154,154,163,74,
+ 231,154,154,132,60,123,47,184,81,81,154,154,154,132,89,42,
+ 66,216,201,110,154,154,154,193,143,155,154,154,154,196,106,30,
+ 101,177,106,104,109,154,229,150,252,26,22,99,204,144,55,182,
+ 137,228,154,154,154,154,154,154,154,154,154,229,91,229,154,154,
+ 154,229,117,101,133,154,61,155,154,154,154,240,73,41,157,99,
+ 39,88,204,252,122,218,39,213,153,75,106,21,38,98,98,46,
+ 18,161,161,161,128,128,85,183,52,52,52,52,52,183,85,85,
+ 85,86,85,128,86,183,0,84,155,63,5,38,0,205,76,210,
+ 81,185,185,210,60,123,40,68,
+ 79,242,242,57,156,14,173,173,173,205,187,187,187,187,0,0,
+ 7,16,173,54,205,7,96,173,8,87,6,2,65,1,1,1,
+ 1,15,9,15,1,15,1,1,9,152,152,87,15,1,15,1,
+ 65,0,114,68,68,21,208,105,119,56,97,5,154,154,154,154,
+ 154,154,154,132,47,123,81,135,135,224,154,154,154,109,201,108,
+ 141,251,184,72,154,154,154,122,177,136,61,154,154,154,64,30,
+ 44,150,172,172,196,154,229,48,22,227,99,153,122,41,213,245,
+ 26,102,154,154,154,154,154,154,154,154,154,229,180,232,154,154,
+ 154,133,41,238,125,154,133,55,109,154,154,154,236,147,150,26,
+ 75,169,204,34,169,169,153,106,150,22,48,14,38,98,98,46,
+ 18,18,161,161,128,128,85,183,183,52,52,52,183,183,85,85,
+ 85,85,85,85,86,86,0,84,125,63,155,87,250,76,33,185,
+ 185,43,43,234,47,123,119,68,
+ 79,197,246,87,131,50,173,173,173,187,0,187,187,0,0,0,
+ 0,187,222,173,54,14,21,54,222,57,6,1,1,1,1,178,
+ 87,27,9,1,1,1,1,178,0,0,0,178,15,1,1,1,
+ 2,0,187,114,32,134,76,216,135,47,123,123,230,132,132,132,
+ 132,132,199,74,123,25,40,170,175,249,109,109,196,74,230,42,
+ 156,143,174,72,109,132,63,147,159,215,200,109,109,109,109,200,
+ 101,126,48,99,229,109,93,138,48,213,106,213,79,101,91,153,
+ 153,39,109,109,109,125,125,109,196,196,196,49,94,153,109,109,
+ 196,232,211,64,109,133,238,150,176,196,109,109,232,75,164,104,
+ 197,165,34,99,228,39,213,88,75,122,122,21,38,98,98,46,
+ 18,161,161,161,128,86,85,183,52,52,52,52,183,183,86,85,
+ 85,128,128,128,85,85,0,84,125,109,61,125,0,76,185,43,
+ 43,103,60,86,123,47,226,205,
+ 94,197,211,152,131,32,173,173,173,3,7,0,0,0,0,0,
+ 0,0,0,187,7,3,249,76,222,57,4,15,15,1,118,4,
+ 0,152,2,15,1,1,65,0,0,0,4,1,1,1,1,1,
+ 9,0,114,114,205,208,250,141,185,135,47,230,162,90,43,121,
+ 225,206,170,124,194,47,184,156,209,217,58,42,216,33,147,126,
+ 167,78,29,77,192,216,251,201,159,177,66,227,29,227,48,77,
+ 190,106,34,13,254,245,153,148,180,198,168,101,55,153,188,49,
+ 39,242,182,157,188,211,91,165,169,41,55,181,242,117,181,242,
+ 94,242,153,181,242,197,137,39,242,94,19,75,228,106,204,213,
+ 106,106,223,99,122,122,169,215,36,113,143,14,38,98,163,46,
+ 18,18,161,161,128,128,85,183,183,52,183,52,183,183,85,85,
+ 85,85,85,128,86,183,0,84,155,109,38,125,63,0,185,121,
+ 225,206,107,35,194,47,184,114,
+ 113,41,213,87,131,32,173,173,173,173,173,23,32,32,0,0,
+ 0,0,0,0,0,7,173,3,222,45,152,2,1,1,15,27,
+ 87,87,6,65,1,15,27,0,0,57,2,1,1,1,1,1,
+ 27,0,32,32,32,50,105,33,185,107,81,224,226,212,43,234,
+ 116,206,90,209,47,175,33,170,123,42,80,216,184,226,95,78,
+ 164,29,77,190,243,115,201,167,164,227,177,30,77,159,34,77,
+ 177,204,126,204,144,252,75,180,165,198,168,242,73,102,188,39,
+ 242,55,168,41,204,180,165,242,197,39,153,49,181,88,55,101,
+ 198,55,181,41,242,238,99,99,197,71,36,157,122,30,215,101,
+ 106,223,223,180,77,213,101,215,101,181,157,21,38,163,163,46,
+ 161,18,161,161,128,128,86,183,52,52,52,183,183,85,85,85,
+ 85,128,85,128,85,86,0,84,125,109,84,125,63,0,33,3,
+ 116,23,210,209,217,224,33,32,
+ 88,49,136,187,7,187,173,173,173,173,173,173,54,68,0,0,
+ 0,0,0,0,0,187,173,173,222,146,152,2,1,1,15,27,
+ 152,87,6,6,118,9,0,0,0,178,1,15,1,1,1,1,
+ 27,0,114,32,50,105,156,33,185,206,142,111,111,175,212,3,
+ 124,128,85,203,123,167,217,40,81,184,175,81,40,58,66,80,
+ 108,159,215,215,177,159,29,241,29,190,177,30,215,204,159,218,
+ 44,215,215,168,55,218,180,148,242,168,139,147,44,245,181,101,
+ 88,168,202,137,26,39,99,211,228,39,153,153,181,197,39,197,
+ 197,153,26,144,144,242,228,237,197,198,129,150,102,150,122,213,
+ 245,213,101,169,101,101,79,168,168,198,198,14,38,163,46,46,
+ 18,161,161,161,128,85,85,183,52,52,52,52,52,183,86,85,
+ 85,85,85,85,123,58,0,84,155,125,84,155,109,0,216,222,
+ 151,128,85,203,123,167,47,205,
+ 22,211,186,0,156,187,96,173,173,173,173,173,173,205,0,0,
+ 0,0,0,0,0,114,173,173,222,45,0,2,1,1,118,27,
+ 87,152,6,9,65,152,0,0,27,1,1,1,1,1,1,15,
+ 152,0,114,32,50,7,224,81,206,52,123,217,111,224,90,210,
+ 97,151,183,123,123,217,25,184,185,210,25,42,119,192,141,192,
+ 158,108,143,143,108,177,77,227,29,190,243,198,243,215,204,44,
+ 79,215,44,113,198,122,99,22,101,113,162,144,144,252,169,197,
+ 69,69,182,136,240,39,197,153,122,153,188,180,39,153,39,39,
+ 211,153,150,55,202,144,75,172,213,88,150,150,245,245,106,88,
+ 122,165,101,198,94,169,41,144,219,219,33,21,38,98,163,46,
+ 161,18,161,128,128,85,86,183,52,62,52,52,183,183,183,85,
+ 85,85,52,20,0,109,38,38,38,61,84,109,109,0,114,56,
+ 60,151,62,123,123,217,25,114,
+ 22,39,238,187,7,32,173,173,173,173,173,173,173,68,0,0,
+ 0,0,0,187,114,7,173,173,23,57,152,2,1,1,65,152,
+ 0,152,6,4,4,0,0,152,118,15,1,1,1,1,1,118,
+ 244,187,114,32,205,14,42,194,194,194,25,92,219,71,90,212,
+ 234,212,90,222,131,219,90,135,131,90,224,42,95,158,58,40,
+ 29,108,190,158,159,143,127,119,158,44,198,243,113,243,30,218,
+ 213,129,243,157,145,241,37,228,113,101,40,92,26,150,144,240,
+ 242,242,88,238,75,165,181,39,148,211,39,165,181,39,165,153,
+ 188,228,242,94,41,69,213,242,88,181,99,75,181,99,181,122,
+ 106,213,213,30,197,245,126,204,168,36,201,14,38,163,163,18,
+ 18,161,161,161,128,85,183,52,52,62,62,62,52,183,183,183,
+ 86,62,45,64,61,61,155,155,155,155,155,155,125,125,207,187,
+ 224,212,90,222,131,219,175,68,
+ 218,55,41,187,7,50,173,173,173,173,173,173,173,187,0,0,
+ 187,8,32,187,0,7,173,173,222,27,0,65,15,1,2,0,
+ 0,152,6,4,0,0,0,9,1,1,1,1,1,1,1,65,
+ 152,114,32,105,50,105,42,78,249,135,249,175,90,97,225,90,
+ 234,171,225,103,210,90,111,47,81,81,142,25,58,177,42,40,
+ 143,192,127,243,66,192,141,196,196,196,191,115,115,201,201,122,
+ 252,204,190,157,99,223,223,77,113,165,198,141,150,150,41,213,
+ 213,153,64,109,125,64,211,211,197,181,165,101,39,153,153,211,
+ 88,169,55,71,117,238,150,242,198,39,148,213,236,39,88,30,
+ 153,213,169,101,245,106,22,180,115,115,115,21,38,231,98,46,
+ 18,18,161,161,128,128,85,85,52,52,183,52,183,183,85,85,
+ 123,187,63,154,38,155,155,155,155,155,155,5,155,155,125,63,
+ 187,135,225,103,210,90,162,205,
+ 79,242,19,187,156,21,173,173,173,173,173,173,173,152,187,0,
+ 187,54,173,173,21,114,3,173,222,57,0,178,1,1,2,152,
+ 0,0,9,0,0,0,152,65,15,1,1,1,1,1,1,6,
+ 244,248,68,114,76,76,81,25,56,212,212,219,212,206,160,90,
+ 121,212,130,206,107,60,123,58,108,40,154,154,154,38,127,192,
+ 141,191,154,154,51,108,243,154,154,84,110,113,119,89,159,177,
+ 215,106,159,177,22,22,122,218,88,126,55,144,26,39,215,88,
+ 153,237,125,154,154,125,211,99,165,101,197,153,39,39,188,153,
+ 94,41,41,69,153,75,26,204,144,188,172,215,101,213,106,204,
+ 99,180,218,88,204,180,228,180,44,243,201,14,38,98,163,18,
+ 18,161,161,128,128,85,183,52,52,62,52,52,52,183,183,183,
+ 57,63,84,5,155,155,155,155,155,155,5,155,5,155,155,125,
+ 63,187,170,60,103,60,123,57,
+ 180,49,41,187,76,32,173,173,173,173,173,173,173,0,0,0,
+ 187,96,173,173,96,173,173,173,222,152,0,6,1,1,2,152,
+ 0,152,27,0,0,0,0,152,65,1,1,1,1,1,1,4,
+ 152,114,205,68,76,7,92,119,175,140,43,121,121,210,60,160,
+ 212,206,128,85,124,62,194,56,184,243,64,154,154,154,64,95,
+ 58,109,154,51,95,243,127,154,154,154,72,92,159,252,78,227,
+ 159,126,106,190,177,30,30,106,75,75,165,157,157,157,144,242,
+ 197,39,109,154,154,109,41,169,41,213,153,153,165,181,153,99,
+ 39,238,41,41,238,153,150,204,150,99,22,122,88,213,153,153,
+ 99,75,122,75,75,204,75,180,30,44,201,21,38,98,98,18,
+ 18,18,161,128,128,85,85,52,52,52,52,52,183,183,183,20,
+ 207,84,61,155,155,125,125,125,125,125,125,125,125,125,155,155,
+ 125,207,208,52,124,62,78,32,
+ 106,41,44,187,14,32,96,173,173,173,173,173,96,244,0,187,
+ 114,173,173,173,173,173,173,173,222,87,0,178,1,1,2,0,
+ 0,0,0,0,0,27,27,152,0,4,118,1,1,1,1,27,
+ 0,205,205,205,105,156,249,209,60,160,103,225,128,74,123,217,
+ 210,206,60,171,130,31,17,25,209,81,47,154,154,154,154,58,
+ 155,154,125,126,108,190,141,154,154,154,229,174,158,95,95,122,
+ 190,106,34,177,88,215,218,34,122,44,44,190,215,242,44,245,
+ 237,211,109,154,154,109,197,41,242,26,186,153,165,153,211,99,
+ 39,88,115,41,215,157,157,157,99,106,39,181,215,215,75,227,
+ 188,213,106,252,227,77,122,122,34,30,143,14,38,98,98,46,
+ 18,18,161,161,161,85,85,183,52,62,52,52,52,52,123,0,
+ 61,84,155,155,155,125,155,155,155,5,155,5,5,84,5,5,
+ 5,125,0,81,234,62,194,205,
+ 30,101,69,68,32,50,173,173,173,173,173,173,54,0,0,0,
+ 50,173,173,173,173,173,173,173,222,152,0,65,1,1,2,0,
+ 0,0,0,87,9,0,87,87,152,0,0,65,1,1,15,27,
+ 0,68,57,32,105,156,217,60,170,81,124,35,85,189,189,209,
+ 212,130,81,103,85,123,8,56,156,156,184,72,154,154,154,38,
+ 154,154,200,190,20,254,83,154,154,154,151,66,243,190,143,63,
+ 196,196,109,77,44,190,204,34,30,44,176,109,109,109,109,207,
+ 246,228,109,154,154,109,238,245,157,109,109,93,39,245,34,99,
+ 39,101,242,144,73,150,245,157,245,39,106,122,215,88,245,75,
+ 99,138,106,75,227,122,180,34,138,138,77,21,38,98,46,18,
+ 161,18,161,128,128,86,183,183,52,52,52,52,183,183,58,63,
+ 84,155,155,155,155,125,155,155,155,155,5,155,5,84,5,155,
+ 5,125,207,250,62,123,8,114,
+ 122,197,69,187,32,32,173,173,173,173,173,173,54,187,0,0,
+ 7,173,173,173,173,173,173,173,222,87,152,65,1,1,2,152,
+ 0,0,0,15,15,2,0,152,0,152,152,0,27,1,15,87,
+ 0,114,32,32,76,184,17,233,103,124,52,74,85,203,111,212,
+ 103,35,36,160,203,203,35,162,185,219,184,119,154,154,154,154,
+ 154,196,113,215,108,192,141,154,154,154,72,141,251,133,154,154,
+ 154,154,154,154,229,204,150,252,215,125,154,154,154,154,154,125,
+ 204,88,109,154,154,109,102,232,61,154,63,150,181,122,39,181,
+ 213,213,69,204,245,150,204,150,153,153,99,34,204,204,106,138,
+ 99,39,180,138,227,227,122,180,138,227,108,14,38,98,46,46,
+ 161,161,128,128,85,85,183,62,62,62,62,52,52,183,146,5,
+ 38,155,155,155,155,125,5,155,5,155,155,5,155,84,5,5,
+ 5,38,64,114,233,203,230,205,
+ 122,245,75,187,114,32,173,173,173,173,173,173,54,187,0,0,
+ 3,173,173,173,173,173,173,173,8,152,152,118,1,1,2,152,
+ 0,0,118,1,1,1,65,152,0,0,0,0,0,9,65,27,
+ 0,205,205,205,14,7,194,17,40,151,124,60,60,209,224,212,
+ 52,35,90,206,151,151,123,136,90,90,135,184,89,154,154,154,
+ 154,35,115,73,201,254,243,154,154,154,176,139,36,154,154,154,
+ 125,61,154,154,154,240,252,227,64,154,154,154,109,109,125,196,
+ 202,202,109,154,154,109,245,229,154,154,120,75,79,204,150,122,
+ 245,204,75,34,75,153,99,211,172,172,172,188,22,77,122,180,
+ 22,180,180,34,34,122,122,99,227,204,254,21,38,163,46,18,
+ 161,18,161,128,85,85,52,52,31,62,31,62,62,52,87,84,
+ 155,155,155,155,155,61,84,84,84,84,84,84,84,84,5,5,
+ 5,5,109,0,167,123,136,146,
+ 227,172,172,187,114,50,173,173,173,173,173,173,23,0,0,0,
+ 222,173,173,173,173,173,173,173,222,0,0,15,1,1,178,0,
+ 0,0,15,1,15,1,1,1,65,87,0,152,2,15,1,27,
+ 152,68,57,32,105,216,158,47,226,35,103,43,212,103,175,43,
+ 140,212,43,206,183,124,209,209,222,60,62,217,201,154,154,154,
+ 154,110,115,115,216,141,115,154,154,154,97,115,155,154,154,155,
+ 77,159,61,154,154,125,245,102,154,154,154,125,172,88,139,139,
+ 139,19,196,154,154,109,120,154,154,229,237,99,106,102,150,213,
+ 150,22,99,228,150,106,75,99,104,48,172,22,77,82,218,180,
+ 77,180,75,106,106,218,77,227,180,218,250,14,38,163,98,18,
+ 18,161,161,128,128,85,183,52,62,62,52,52,52,183,0,84,
+ 155,155,155,155,155,155,155,155,155,5,155,5,155,5,5,5,
+ 5,38,63,0,194,35,81,205,
+ 77,153,211,32,32,32,173,173,173,173,173,173,222,187,0,0,
+ 3,173,173,173,173,173,173,173,8,152,0,15,1,1,6,0,
+ 0,152,1,1,1,1,1,1,1,118,4,9,1,1,15,27,
+ 0,187,187,114,50,156,217,135,185,210,234,212,239,52,103,234,
+ 160,43,43,103,217,81,40,103,90,249,40,58,217,154,154,154,
+ 154,125,191,92,193,69,147,154,154,154,151,158,154,154,154,176,
+ 34,26,109,154,154,154,30,120,154,154,154,150,213,198,251,33,
+ 137,136,125,154,154,155,155,154,154,229,99,99,150,102,172,150,
+ 204,99,172,180,213,218,106,172,99,188,148,180,218,77,88,106,
+ 204,106,106,227,190,82,218,227,180,221,190,21,38,98,163,18,
+ 18,161,161,128,128,85,85,183,52,52,52,52,183,52,0,84,
+ 155,155,155,155,5,155,5,5,5,155,5,5,5,5,5,5,
+ 5,155,109,0,20,8,81,205,
+ 190,150,150,205,3,14,173,173,173,173,173,173,96,187,0,0,
+ 3,173,173,173,173,173,173,173,8,152,0,15,1,1,9,0,
+ 0,87,1,1,1,1,1,1,1,15,1,1,1,1,65,152,
+ 0,68,134,32,50,7,25,56,107,225,103,103,85,62,111,206,
+ 35,234,225,86,25,249,158,25,249,123,25,58,154,154,154,154,
+ 154,154,64,240,123,230,143,154,154,154,151,201,154,154,154,151,
+ 150,223,109,154,154,154,215,133,154,154,154,245,101,251,71,111,
+ 186,172,109,154,154,61,61,154,154,154,232,153,181,75,204,165,
+ 215,75,39,30,88,44,245,252,106,180,122,213,88,198,215,30,
+ 106,122,77,77,122,218,204,34,106,122,159,14,38,163,163,46,
+ 161,161,161,128,128,85,183,52,62,62,62,62,52,52,87,84,
+ 155,155,155,155,5,155,5,155,155,125,125,5,5,5,5,5,
+ 5,155,109,187,66,184,158,205,
+ 77,238,215,37,7,32,3,173,173,173,173,173,173,173,187,0,
+ 3,173,173,173,173,173,173,173,8,0,152,1,1,1,9,152,
+ 0,4,1,1,1,1,1,1,1,1,1,1,1,15,4,152,
+ 205,57,114,105,14,158,119,185,60,209,90,86,189,72,140,140,
+ 60,107,225,206,212,43,131,119,81,58,78,151,154,38,56,154,
+ 154,154,154,203,240,164,174,154,154,154,120,33,38,154,154,63,
+ 73,213,125,154,154,38,204,93,154,154,154,191,113,198,137,93,
+ 233,26,125,154,154,109,196,154,154,154,63,41,150,246,122,88,
+ 75,245,218,106,213,252,126,218,30,39,228,99,180,213,172,99,
+ 75,106,204,106,75,106,75,227,180,106,227,21,38,46,46,18,
+ 161,161,161,128,85,85,183,183,52,52,52,52,183,183,146,61,
+ 5,5,155,5,155,5,109,63,0,0,149,84,84,5,5,5,
+ 5,155,63,114,7,185,7,32,
+ 180,102,150,26,179,87,114,14,16,173,173,173,173,173,96,14,
+ 3,173,173,173,173,173,173,173,184,0,27,1,1,1,4,0,
+ 152,9,1,1,1,1,1,1,1,1,1,1,118,4,70,0,
+ 0,114,187,32,250,20,184,185,103,217,103,52,207,35,140,43,
+ 209,124,124,131,234,3,52,209,42,58,78,154,154,51,47,72,
+ 154,154,154,109,158,158,95,154,154,154,229,115,64,154,154,154,
+ 64,125,154,154,154,133,41,204,155,154,154,154,176,133,51,64,
+ 165,197,109,154,154,109,229,61,154,154,154,133,102,99,75,137,
+ 153,99,157,150,213,102,22,30,150,150,22,172,99,34,172,99,
+ 180,34,138,180,227,34,227,34,34,99,227,14,38,163,163,18,
+ 161,161,128,128,85,183,52,52,62,62,62,52,52,183,58,51,
+ 84,155,155,5,155,125,63,0,17,42,29,0,84,84,5,5,
+ 155,125,93,32,131,107,31,205,
+ 149,211,102,213,13,57,57,0,114,131,173,173,173,173,173,173,
+ 173,173,173,173,173,173,173,173,8,0,4,1,1,15,87,152,
+ 27,6,1,1,1,1,1,1,1,1,1,178,27,70,87,0,
+ 187,57,205,205,146,20,7,7,183,123,62,35,72,124,170,43,
+ 206,62,123,60,222,52,31,142,25,20,51,154,196,81,193,159,
+ 154,154,154,154,200,113,115,154,154,154,151,56,162,64,154,154,
+ 84,154,154,154,133,113,89,89,200,125,154,154,154,154,154,125,
+ 242,242,196,154,154,109,188,120,154,154,154,154,93,34,237,223,
+ 180,153,150,213,218,99,172,180,106,180,228,99,22,34,48,100,
+ 228,180,34,99,99,22,180,34,22,180,29,250,183,128,161,86,
+ 86,86,52,52,52,31,142,25,25,142,25,142,142,142,25,0,
+ 84,5,155,155,5,125,0,194,42,21,250,17,93,61,61,5,
+ 155,109,0,20,249,52,142,205,
+ 22,102,150,122,159,29,48,20,187,68,131,173,173,173,173,173,
+ 173,173,173,173,173,173,173,173,14,0,9,1,1,1,9,87,
+ 9,15,1,1,1,1,1,15,1,15,9,87,152,0,21,114,
+ 87,205,57,205,250,66,76,249,123,72,217,60,209,209,43,43,
+ 206,25,25,217,40,131,60,42,42,72,196,196,192,42,108,159,
+ 136,109,109,132,51,162,115,196,196,109,129,143,230,186,186,109,
+ 125,109,109,201,198,129,186,145,177,168,110,196,109,109,109,64,
+ 157,69,64,109,109,64,188,99,64,196,109,125,109,39,99,99,
+ 104,104,245,122,75,246,172,122,126,39,99,34,34,153,172,228,
+ 228,138,228,22,22,99,22,22,48,48,29,20,21,21,21,21,
+ 21,21,21,32,205,205,32,32,32,68,114,68,68,32,205,152,
+ 63,84,5,155,155,125,0,32,205,66,158,158,186,61,61,155,
+ 109,179,68,42,42,249,60,205,
+ 48,150,144,30,164,159,221,48,26,146,244,249,173,173,173,173,
+ 173,173,173,173,173,173,173,173,21,0,9,1,1,178,9,118,
+ 15,1,1,1,1,1,1,1,65,27,87,0,244,87,87,57,
+ 57,68,68,146,250,76,76,40,217,201,111,170,185,90,212,234,
+ 116,142,40,230,167,249,209,62,25,42,184,81,80,143,20,66,
+ 143,193,174,47,40,226,224,175,135,158,254,88,159,252,245,159,
+ 37,145,159,44,73,26,37,172,177,19,19,33,69,72,200,69,
+ 69,69,126,232,179,59,246,153,55,198,137,186,245,153,188,153,
+ 104,245,73,30,126,172,106,75,144,30,34,227,122,30,34,34,
+ 180,122,180,106,22,34,22,22,22,22,138,77,66,195,208,66,
+ 208,250,208,208,70,208,70,20,20,20,66,146,70,208,146,208,
+ 152,61,61,5,155,125,0,174,42,80,40,111,93,61,5,109,
+ 64,152,80,95,193,184,81,146,
+ 180,213,55,190,190,218,221,77,207,17,146,0,14,173,173,173,
+ 173,173,173,173,173,173,173,173,205,0,6,1,1,65,1,1,
+ 1,1,1,15,1,1,15,9,152,0,0,66,114,87,87,57,
+ 68,68,205,70,205,105,56,42,81,158,217,210,234,206,60,16,
+ 52,123,193,40,230,194,58,58,25,119,216,184,40,66,192,80,
+ 192,95,95,108,201,119,216,135,111,119,44,141,236,158,126,95,
+ 159,159,177,180,99,172,172,204,30,44,56,162,230,240,137,201,
+ 200,150,252,93,237,186,150,144,41,157,26,126,106,200,150,153,
+ 75,165,198,190,177,101,218,245,218,30,227,159,169,215,106,34,
+ 77,149,180,22,180,138,77,100,22,22,77,190,221,190,227,177,
+ 254,83,208,77,20,77,108,29,100,208,141,141,192,70,77,77,
+ 146,0,61,84,5,5,155,0,194,42,72,0,84,5,109,64,
+ 152,70,20,42,217,194,58,68,
+ 138,102,157,30,159,77,122,29,195,26,164,146,152,14,96,173,
+ 173,173,173,173,173,173,173,173,87,0,6,1,1,1,1,1,
+ 1,1,1,1,1,118,27,152,152,87,208,87,57,205,57,68,
+ 114,205,146,21,50,156,103,142,184,81,217,90,23,142,194,23,
+ 123,194,58,42,17,194,58,119,80,224,216,42,174,158,192,243,
+ 44,108,159,20,177,201,119,162,233,174,129,145,26,174,145,164,
+ 177,30,30,204,34,223,106,159,30,198,92,19,240,186,73,30,
+ 72,186,26,186,245,30,122,197,150,150,172,213,204,157,215,180,
+ 99,223,204,30,227,122,213,223,77,75,172,223,122,34,172,172,
+ 34,75,106,138,77,149,138,180,138,138,122,190,190,30,177,177,
+ 190,254,159,227,29,164,227,20,254,141,76,119,95,164,108,66,
+ 76,250,152,125,84,61,5,5,0,0,0,154,61,63,179,152,
+ 250,58,20,42,167,17,58,68,
+ 48,26,245,204,252,104,227,77,77,221,241,164,87,0,205,96,
+ 173,173,173,173,173,173,173,173,152,0,178,1,1,1,1,1,
+ 1,1,1,15,6,152,0,0,187,114,68,57,57,57,114,114,
+ 205,146,205,105,156,56,62,194,249,60,111,56,23,40,233,142,
+ 17,111,217,78,58,95,58,20,119,201,162,167,29,159,143,42,
+ 95,158,108,143,190,143,158,40,174,158,158,174,73,73,157,150,
+ 26,73,115,115,95,34,252,174,144,44,226,226,129,136,242,200,
+ 237,26,26,36,144,157,129,26,150,75,153,102,150,69,157,26,
+ 104,172,204,204,145,186,99,227,106,34,34,22,34,180,172,100,
+ 77,180,34,77,77,106,34,227,122,77,218,254,44,215,122,227,
+ 227,223,252,164,29,177,44,127,251,224,201,164,241,138,80,216,
+ 192,108,208,187,149,63,63,125,155,5,155,109,186,0,45,80,
+ 58,158,47,78,78,95,158,57,
+ 138,150,144,101,30,180,227,79,195,127,134,227,164,45,152,114,
+ 96,173,173,173,173,173,173,16,87,0,178,1,1,1,1,1,
+ 15,1,118,9,0,0,146,244,57,57,57,45,57,68,32,134,
+ 70,208,50,105,81,158,25,42,184,111,162,131,62,194,194,249,
+ 194,40,167,78,95,143,95,164,108,216,249,40,95,66,192,143,
+ 108,44,192,216,254,66,159,201,108,73,73,73,158,159,164,252,
+ 162,243,115,92,177,108,143,139,198,147,69,126,129,240,150,186,
+ 93,186,223,30,238,102,93,26,75,69,157,150,126,157,73,102,
+ 223,75,30,55,30,106,106,44,79,113,141,44,177,221,227,180,
+ 34,22,100,100,22,22,100,180,122,77,79,77,204,30,245,204,
+ 252,223,34,29,108,243,243,168,193,129,145,78,159,141,115,158,
+ 164,108,76,105,184,57,87,0,0,0,0,187,146,70,20,7,
+ 194,58,167,58,58,66,108,57,
+ 227,102,204,30,204,164,106,44,30,227,192,66,70,29,70,57,
+ 152,16,173,173,173,173,173,23,87,0,2,1,15,1,1,1,
+ 15,6,0,0,0,244,187,68,57,45,146,45,205,68,208,208,
+ 70,205,50,141,158,25,25,141,184,226,230,90,62,95,58,156,
+ 111,201,58,58,66,80,158,108,66,216,184,47,47,226,119,108,
+ 108,66,135,115,143,108,201,192,192,158,174,129,233,126,159,30,
+ 139,127,89,240,129,30,243,198,56,162,129,126,126,157,240,150,
+ 186,246,245,144,230,137,73,204,213,73,69,30,106,147,198,126,
+ 223,126,30,177,106,223,75,218,245,126,30,193,227,77,34,106,
+ 180,180,138,22,180,180,77,77,204,122,218,204,30,44,159,77,
+ 177,159,34,177,254,113,115,201,26,241,48,164,66,192,73,78,
+ 95,192,216,184,25,58,58,76,80,208,42,14,25,20,20,156,
+ 25,119,58,58,143,80,158,57,
+ 77,204,204,30,75,99,77,79,227,34,221,108,20,70,186,70,
+ 57,152,222,173,173,173,173,222,87,0,65,1,1,1,1,65,
+ 4,152,0,68,152,114,87,57,45,45,45,205,57,195,70,70,
+ 208,192,115,201,143,174,42,184,209,193,230,56,217,58,20,156,
+ 8,135,40,47,119,119,40,66,158,143,201,158,193,115,192,95,
+ 108,201,184,184,119,201,119,115,40,193,227,252,223,164,159,158,
+ 115,147,233,17,73,147,73,157,139,201,177,30,158,69,162,193,
+ 252,150,245,73,240,69,73,137,144,69,30,177,150,41,144,137,
+ 75,106,30,30,245,223,77,79,75,150,177,252,34,227,77,221,
+ 227,138,180,22,138,122,218,254,44,190,215,227,221,215,158,243,
+ 177,108,252,215,254,198,30,95,145,241,48,177,190,108,252,29,
+ 143,119,119,19,119,167,66,14,162,158,47,156,194,42,20,156,
+ 81,135,40,25,201,119,201,68,
+ 227,197,236,44,30,204,204,204,99,159,77,77,70,70,70,146,
+ 29,57,152,222,173,173,173,8,0,0,65,1,15,1,178,152,
+ 0,244,87,87,68,57,57,205,45,146,146,146,208,70,20,208,
+ 127,141,192,141,143,40,192,115,40,184,25,56,217,201,193,224,
+ 135,40,217,158,143,119,192,158,193,108,159,158,115,226,40,29,
+ 66,243,216,115,19,143,141,56,201,95,95,145,145,34,227,30,
+ 192,174,237,145,147,92,73,26,89,89,69,36,119,139,226,230,
+ 240,137,73,157,200,159,240,72,102,69,147,186,200,147,89,172,
+ 252,204,44,44,30,204,245,204,99,252,106,159,138,122,34,30,
+ 106,106,180,180,180,218,254,198,190,30,34,122,30,126,158,44,
+ 126,129,204,106,177,252,174,164,29,34,159,215,158,95,29,177,
+ 141,141,115,192,119,40,184,224,40,184,58,56,111,42,174,184,
+ 135,40,217,158,143,119,143,57,
+ 164,150,69,30,204,34,204,30,22,252,227,77,138,77,77,70,
+ 70,145,70,152,40,173,173,8,152,0,118,1,118,2,87,0,
+ 68,57,57,57,57,45,146,45,45,205,134,134,208,70,208,250,
+ 105,184,119,184,40,42,33,224,226,115,25,33,47,81,167,81,
+ 56,217,136,167,167,193,158,159,158,95,227,95,184,226,167,174,
+ 73,141,216,56,147,89,184,115,201,159,95,172,164,29,227,177,
+ 119,164,145,164,215,36,73,26,73,73,89,191,135,56,19,89,
+ 111,89,157,191,150,145,93,186,145,144,137,186,153,157,238,26,
+ 145,245,88,215,204,34,245,177,34,223,106,227,48,22,34,106,
+ 34,227,75,106,227,218,190,198,218,223,223,22,22,252,190,201,
+ 245,159,172,34,164,164,164,48,77,190,190,243,177,108,108,141,
+ 251,56,81,243,47,42,216,224,226,115,47,156,47,81,111,201,
+ 56,217,230,167,174,193,108,205,
+ 227,144,44,177,240,157,190,101,106,245,190,77,29,227,221,134,
+ 208,70,146,29,152,57,206,7,57,0,118,6,87,244,152,87,
+ 114,87,45,45,45,45,45,146,205,248,208,208,20,20,127,105,
+ 33,40,40,243,47,119,216,92,81,162,230,175,47,184,40,42,
+ 184,191,167,145,95,164,95,164,20,164,227,143,192,89,174,174,
+ 201,141,92,226,40,167,143,60,47,108,177,159,204,227,159,159,
+ 158,158,227,77,193,201,215,245,115,201,126,129,159,162,210,90,
+ 92,19,137,150,159,186,26,150,75,215,200,150,26,137,144,26,
+ 126,30,243,177,129,157,190,101,213,245,215,177,34,34,108,254,
+ 77,138,138,180,106,122,177,218,106,34,22,77,149,106,190,204,
+ 215,138,37,172,22,227,227,77,254,254,143,108,95,108,141,251,
+ 33,40,162,143,47,201,156,92,81,209,230,224,209,184,25,42,
+ 184,35,17,129,95,164,95,57,
+ 66,69,202,162,193,215,113,113,215,88,243,73,30,190,195,254,
+ 77,70,70,149,29,244,152,152,0,0,9,27,152,68,114,87,
+ 87,57,45,45,45,205,45,146,134,195,66,29,29,66,127,216,
+ 115,167,95,243,111,119,81,230,47,111,95,135,191,81,194,158,
+ 216,217,174,164,174,233,167,145,108,227,20,115,192,145,164,158,
+ 177,119,226,201,129,174,158,40,193,201,108,193,73,73,157,159,
+ 190,243,66,147,73,143,73,73,92,137,26,240,89,69,56,103,
+ 162,73,230,157,150,136,245,215,204,162,162,73,73,147,147,126,
+ 227,144,92,162,157,143,113,113,215,30,198,73,106,218,208,198,
+ 75,34,22,172,48,227,122,252,37,228,34,77,177,204,190,159,
+ 122,223,172,48,227,215,77,77,243,243,158,159,164,77,141,156,
+ 115,123,158,243,89,119,92,217,193,230,95,201,191,8,47,95,
+ 216,47,174,164,174,233,145,57,
+ 29,69,44,201,158,147,92,36,193,193,215,159,126,252,177,143,
+ 138,29,149,149,70,29,87,152,0,114,151,70,250,57,87,57,
+ 45,45,146,146,195,146,208,208,66,192,20,29,29,77,243,224,
+ 119,194,164,95,193,184,126,95,158,167,78,158,47,115,17,164,
+ 33,40,167,129,145,145,174,164,177,73,201,141,158,172,29,243,
+ 201,119,115,119,193,95,201,119,89,193,36,92,192,215,177,227,
+ 215,201,119,198,44,215,69,47,89,174,157,30,135,19,226,111,
+ 62,72,230,137,240,137,92,89,69,19,202,89,30,139,162,89,
+ 126,204,198,201,201,147,92,36,193,193,215,193,126,245,158,30,
+ 164,22,34,104,48,22,34,34,48,138,34,159,204,73,215,159,
+ 78,145,223,227,159,108,158,177,201,201,159,78,48,77,141,115,
+ 119,167,164,159,40,184,230,159,95,217,95,201,89,119,233,227,
+ 33,40,167,129,145,174,78,45,
+ 108,236,157,72,215,157,78,157,137,150,34,223,37,172,48,48,
+ 149,100,70,149,70,70,93,57,244,214,146,57,214,57,57,57,
+ 68,57,45,70,70,70,70,70,221,149,70,138,177,190,254,138,
+ 48,126,177,201,115,201,252,177,119,111,92,135,209,115,167,78,
+ 56,201,167,126,119,42,95,227,95,174,30,190,174,164,177,177,
+ 159,108,119,162,174,159,204,164,252,164,193,92,201,126,145,223,
+ 177,158,204,201,159,159,167,204,30,157,159,73,200,89,159,129,
+ 129,233,186,102,186,93,150,93,240,129,129,102,137,150,129,233,
+ 157,44,159,136,215,157,164,126,129,137,48,223,37,37,48,48,
+ 149,48,100,148,138,180,227,34,30,177,227,34,48,48,48,29,
+ 190,190,138,223,48,138,227,149,77,138,149,138,159,190,190,138,
+ 48,174,177,177,115,201,252,143,147,230,226,139,209,115,167,174,
+ 56,201,167,174,143,42,158,57,
+ 177,147,117,129,73,150,204,159,227,172,29,37,37,37,48,48,
+ 70,77,221,221,149,149,70,186,152,114,45,45,45,57,57,57,
+ 214,205,70,70,70,70,100,221,221,77,138,227,122,254,177,159,
+ 227,215,30,215,216,115,159,243,119,158,243,92,111,201,167,78,
+ 115,226,136,174,204,167,164,95,227,108,190,190,164,95,221,108,
+ 159,177,147,119,145,129,126,164,164,164,177,177,129,233,145,227,
+ 215,157,215,157,157,204,174,215,73,129,157,159,230,193,126,240,
+ 150,240,129,157,129,26,26,246,137,150,137,73,89,136,93,72,
+ 73,44,69,157,73,126,204,204,227,223,227,37,37,172,241,172,
+ 221,227,221,13,22,228,180,99,149,77,180,22,48,22,22,77,
+ 83,77,99,241,48,29,223,13,77,227,138,106,215,190,215,159,
+ 180,215,201,215,216,143,159,243,143,193,243,226,217,201,194,78,
+ 115,162,136,126,73,167,164,57,
+ 143,191,36,73,26,233,26,34,252,26,241,237,241,9,172,48,
+ 83,177,82,221,138,149,149,4,195,146,253,146,253,45,146,220,
+ 57,221,70,149,149,70,100,149,122,77,30,77,218,190,215,30,
+ 30,113,215,190,115,89,193,141,193,193,201,162,47,66,145,167,
+ 201,143,240,174,157,167,95,108,190,66,218,177,164,108,108,106,
+ 177,190,141,243,145,174,157,145,174,227,177,204,164,78,164,126,
+ 204,174,190,193,129,126,95,159,126,159,126,193,129,126,129,126,
+ 126,102,230,73,73,240,93,237,89,186,200,36,19,69,129,119,
+ 226,89,201,204,26,233,26,34,164,26,241,237,37,9,67,48,
+ 83,204,218,218,22,48,22,48,138,138,22,172,148,180,228,138,
+ 218,223,138,148,48,100,48,24,122,77,106,77,218,218,215,30,
+ 30,198,143,44,113,89,193,141,40,193,201,162,47,66,145,167,
+ 119,143,233,174,157,167,95,57,
+ 193,230,69,136,186,241,37,172,241,48,37,104,48,148,100,149,
+ 82,204,221,122,48,138,149,149,149,70,146,70,146,220,45,70,
+ 195,70,70,149,70,221,149,138,221,82,177,190,215,215,190,215,
+ 243,143,158,88,143,230,193,115,89,89,115,147,47,95,26,145,
+ 73,177,167,164,164,26,164,164,177,77,159,159,29,29,159,254,
+ 190,177,147,201,145,159,177,126,77,218,34,106,34,227,215,44,
+ 177,95,215,108,204,108,177,159,164,159,193,30,240,129,157,204,
+ 240,137,69,129,191,72,186,126,157,186,186,103,135,145,26,191,
+ 230,230,144,136,240,241,37,172,37,48,241,237,48,100,100,149,
+ 82,204,13,122,172,22,148,48,48,138,48,22,180,221,138,22,
+ 77,180,149,22,149,13,138,138,218,82,190,190,190,215,190,215,
+ 243,44,159,201,147,217,193,115,89,193,139,119,193,174,26,145,
+ 73,201,129,145,164,26,95,57,
+ 143,73,137,73,26,241,138,104,48,48,9,148,48,24,24,13,
+ 13,22,13,22,172,100,149,149,70,146,146,195,57,134,146,70,
+ 195,82,221,29,138,218,82,122,221,82,44,215,122,215,190,92,
+ 215,159,159,243,177,40,119,141,193,40,216,224,136,240,174,159,
+ 158,177,164,145,145,145,159,77,20,227,227,29,190,190,215,127,
+ 252,106,201,201,164,159,190,30,30,75,227,29,164,254,83,113,
+ 252,227,254,190,243,66,30,158,227,159,254,89,252,252,157,73,
+ 201,73,89,137,204,240,129,157,242,237,223,36,162,179,179,126,
+ 201,30,89,204,26,37,138,172,48,48,9,148,48,24,24,13,
+ 13,138,149,148,172,100,24,22,180,221,138,180,190,218,122,22,
+ 218,218,77,99,227,218,13,138,221,254,215,30,177,215,190,92,
+ 215,95,159,44,177,193,119,141,89,158,56,115,35,167,126,159,
+ 108,177,227,233,223,241,159,87,
+ 177,136,240,77,145,37,99,37,172,48,148,100,100,24,180,100,
+ 100,100,24,100,100,149,221,77,221,220,112,82,134,195,221,149,
+ 221,134,13,227,221,79,218,149,221,254,254,215,122,122,215,147,
+ 215,29,177,113,204,73,141,243,193,201,56,19,47,174,158,66,
+ 164,204,95,145,164,164,227,177,145,227,29,29,221,254,215,127,
+ 95,227,215,177,164,227,254,204,164,164,227,227,190,83,44,126,
+ 164,77,218,159,254,30,159,204,227,243,243,69,193,252,129,44,
+ 162,200,102,99,75,102,157,243,144,102,150,157,230,93,59,129,
+ 252,240,145,77,241,37,99,37,172,48,148,100,100,24,100,180,
+ 100,100,149,148,48,149,221,122,122,253,122,218,127,44,75,22,
+ 122,82,77,22,77,79,218,149,13,254,254,44,122,122,215,147,
+ 143,227,77,113,159,73,115,141,95,226,216,19,47,145,159,66,
+ 164,204,95,145,164,223,108,57,
+ 223,179,207,37,241,180,48,172,100,24,149,149,149,100,24,100,
+ 24,149,149,149,112,218,221,218,221,221,149,134,134,254,77,149,
+ 221,70,138,138,82,82,77,70,149,254,83,254,227,106,190,141,
+ 75,48,177,215,245,177,92,73,164,143,56,162,230,17,159,193,
+ 164,106,164,164,48,29,190,177,164,100,149,149,195,127,44,127,
+ 95,149,208,192,138,77,192,34,164,20,254,215,243,254,204,164,
+ 29,70,208,66,66,215,108,227,159,215,141,243,177,126,204,201,
+ 89,129,252,204,137,233,129,129,240,26,172,150,37,233,223,126,
+ 102,37,186,145,241,22,48,172,100,24,149,149,24,100,100,24,
+ 138,24,149,149,112,13,122,218,218,149,180,82,79,143,106,138,
+ 77,221,138,180,82,82,77,70,149,254,79,254,227,106,190,127,
+ 252,22,177,44,204,177,147,204,164,201,141,162,230,17,159,193,
+ 164,106,95,164,48,29,66,214,
+ 146,100,27,57,87,152,152,152,152,152,152,152,152,152,244,244,
+ 244,244,244,152,244,152,244,0,244,152,244,152,152,152,152,0,
+ 244,0,244,244,0,244,152,152,244,244,244,0,244,152,152,244,
+ 152,152,244,187,244,244,244,152,152,244,0,244,87,87,152,152,
+ 0,0,244,152,0,152,0,0,152,244,152,0,0,0,0,0,
+ 152,244,0,0,244,152,0,244,0,0,0,244,244,244,244,0,
+ 0,0,244,244,244,0,244,244,244,0,187,0,244,152,152,187,
+ 152,187,187,152,87,152,152,152,152,187,187,152,152,87,152,152,
+ 152,152,87,152,152,244,152,152,152,152,152,152,152,152,0,244,
+ 244,0,0,244,244,152,0,244,152,152,152,152,244,152,152,152,
+ 0,87,152,244,0,152,152,152,0,244,0,0,0,87,152,187,
+ 152,152,244,152,152,0,152,152,152,0,187,244,87,152,152,152,
+ 152,0,152,152,0,152,244,0
+ };
+#else
+/* GTK+ 1.x version */
+static char header_data_cmap[128][3] = {
+ { 3, 3, 6},
+ { 66, 81, 82},
+ {142,145,123},
+ {204,219,231},
+ {187,194,198},
+ { 79,107,146},
+ { 55, 62, 54},
+ {151,176,203},
+ {250,246,250},
+ { 39, 46, 43},
+ {151,149,130},
+ { 95,122,155},
+ {198,194,204},
+ {230,220,231},
+ { 18, 34, 28},
+ {146,158,172},
+ {177,175,175},
+ {125,123,115},
+ { 82, 78, 64},
+ {205,206,207},
+ {231,232,225},
+ { 24, 24, 27},
+ {186,159,121},
+ { 2, 18, 19},
+ {107,105, 85},
+ {144,131,103},
+ { 94, 90, 73},
+ {139,168,197},
+ {175,186,205},
+ {118,121,134},
+ { 22, 7, 69},
+ {214,209,210},
+ {168,163,172},
+ {251,240,249},
+ { 44, 67,100},
+ {118,146,180},
+ { 95,107,119},
+ { 16, 6, 57},
+ {112,133,159},
+ {153,161,181},
+ { 82, 89,101},
+ {188,185,184},
+ { 91, 89, 95},
+ {192,220,244},
+ { 81, 81, 92},
+ {106,106,113},
+ {243,242,247},
+ {131,148,175},
+ {185,211,236},
+ {211,201,212},
+ {124,130,145},
+ {149,145,156},
+ {186,187,204},
+ { 58, 81,114},
+ {198,201,223},
+ {151,152,164},
+ {241,230,238},
+ { 81, 67, 77},
+ {201,209,230},
+ { 18, 3, 20},
+ {215,206,220},
+ {253,252,252},
+ {164,190,217},
+ {204,224,247},
+ { 18, 18, 4},
+ {148,168,193},
+ { 62, 50, 87},
+ { 7, 7, 39},
+ { 79, 66,100},
+ { 63, 65, 83},
+ {162,175,197},
+ {163,154,162},
+ { 98, 82,105},
+ {172,197,222},
+ {174,176,196},
+ {143,135,116},
+ {213,212,224},
+ {113, 98,117},
+ {185,197,220},
+ {200,200,193},
+ {129,138,155},
+ {136,157,185},
+ {115,114,120},
+ {102,133,168},
+ {168,169,192},
+ {186,178,189},
+ {227,214,226},
+ {162,186,211},
+ { 52, 51, 48},
+ {185,206,231},
+ { 24, 18, 52},
+ {158,168,188},
+ {219,235,247},
+ {238,225,235},
+ {238,238,228},
+ {219,219,220},
+ { 68, 94,133},
+ {100, 96, 86},
+ { 34, 34, 34},
+ {129,143,162},
+ {232,233,244},
+ {154,159,169},
+ {158,153,160},
+ {195,189,205},
+ {134,137,117},
+ { 88,113,150},
+ {242,236,245},
+ { 2, 4, 28},
+ { 66, 64, 55},
+ {176,169,177},
+ {217,224,246},
+ {139,146,159},
+ { 19, 18, 21},
+ {121,110, 90},
+ {170,170,175},
+ { 38, 32, 68},
+ {134,130,141},
+ {218,222,236},
+ {203,200,207},
+ {182,176,190},
+ { 81, 98,107},
+ {142,137,145},
+ {162,160,167},
+ {219,212,222},
+ {164,182,203},
+ {229,226,234},
+ { 96, 96,103},
+ {115,108,114}
+ };
+
+static char header_data[] = {
+ 123,123,60,19,19,49,118,49,118,49,118,49,49,118,49,118,
+ 19,49,118,19,49,118,19,49,118,19,49,118,19,49,118,19,
+ 49,118,19,49,118,19,49,118,19,49,118,19,49,49,118,19,
+ 49,118,19,49,118,118,118,118,118,118,118,118,118,118,118,118,
+ 118,118,118,118,118,118,118,118,118,118,79,79,79,4,52,28,
+ 124,7,15,81,83,83,11,5,5,5,5,105,105,11,11,83,
+ 83,38,35,99,35,81,81,65,65,7,70,70,124,124,7,7,
+ 7,7,27,27,27,27,27,27,27,27,7,124,87,28,28,52,
+ 52,52,41,41,52,103,103,103,12,79,79,79,12,79,12,12,
+ 12,12,12,4,103,41,103,41,28,28,124,70,65,27,81,81,
+ 47,35,35,83,83,11,11,11,11,83,99,81,70,124,28,52,
+ 4,4,12,4,79,79,79,79,118,79,118,118,118,118,118,118,
+ 118,118,118,12,41,41,31,20,
+ 103,123,20,8,8,61,61,61,61,61,61,61,61,61,61,61,
+ 8,61,61,8,61,61,8,61,61,8,61,61,8,61,61,8,
+ 61,61,8,61,61,8,61,61,8,61,61,8,61,61,61,8,
+ 61,61,8,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,8,61,8,61,61,61,61,61,61,8,8,8,8,8,46,
+ 92,92,43,89,62,7,81,35,83,83,11,105,11,105,11,83,
+ 83,35,35,27,7,7,87,62,73,73,73,48,89,48,48,48,
+ 48,89,48,48,73,48,73,48,48,48,43,43,63,92,92,92,
+ 92,92,92,92,92,92,92,94,46,46,46,8,61,8,61,61,
+ 61,61,8,8,61,8,8,8,46,46,92,63,63,43,48,48,
+ 73,62,87,7,27,27,35,35,35,35,81,124,73,48,63,92,
+ 92,92,46,46,46,106,46,8,8,8,61,61,61,61,61,61,
+ 61,61,46,95,79,85,118,20,
+ 103,60,93,8,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,8,
+ 46,92,63,43,73,62,27,35,83,83,105,5,5,5,5,105,
+ 11,83,83,35,81,27,27,7,7,62,62,73,73,73,73,73,
+ 48,73,48,48,48,48,48,43,48,43,48,43,43,43,43,63,
+ 92,63,63,63,92,92,92,100,106,46,8,8,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,8,46,92,92,63,43,48,
+ 48,62,62,7,27,27,35,35,83,83,35,27,7,62,89,63,
+ 110,92,92,92,92,100,100,46,46,46,8,61,61,61,61,8,
+ 94,93,123,41,102,116,109,123,
+ 12,123,56,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,46,46,
+ 92,92,63,43,73,62,7,27,35,83,11,105,5,5,5,5,
+ 105,5,11,83,83,35,35,81,27,27,7,7,87,73,73,73,
+ 73,73,73,89,48,48,48,48,48,89,48,48,48,48,48,48,
+ 48,48,43,58,58,76,3,110,110,100,106,106,46,8,8,61,
+ 61,61,61,61,61,61,61,61,46,61,8,46,92,92,63,43,
+ 48,48,62,62,27,81,81,35,83,83,35,35,81,7,28,89,
+ 48,58,3,3,117,3,63,117,92,92,100,106,100,20,125,13,
+ 49,103,119,102,25,29,32,31,
+ 49,95,106,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+ 61,61,61,61,61,61,61,8,8,8,8,8,8,8,61,61,
+ 61,61,61,61,61,61,61,61,61,61,61,61,8,46,46,92,
+ 92,63,43,48,48,62,7,27,27,35,83,83,105,5,5,5,
+ 5,5,11,11,83,83,35,35,27,27,27,7,7,87,87,62,
+ 73,73,89,89,89,89,89,89,73,73,73,73,73,73,73,73,
+ 73,78,89,48,48,58,58,3,123,117,125,93,56,106,33,33,
+ 61,61,61,61,61,61,61,8,8,46,46,92,46,92,63,63,
+ 48,89,73,62,7,27,27,35,35,83,83,35,35,81,7,28,
+ 89,89,3,58,3,58,3,76,76,76,58,31,60,118,103,41,
+ 85,109,71,121,17,29,122,31,
+ 31,125,94,61,61,61,61,61,8,8,33,33,33,33,8,8,
+ 8,8,33,8,33,33,33,33,8,8,8,61,8,61,8,8,
+ 8,8,8,8,8,8,33,8,33,8,8,8,8,8,8,8,
+ 8,8,33,33,33,33,33,8,8,33,33,33,33,33,33,33,
+ 33,8,61,61,61,61,61,61,8,33,106,46,100,46,106,100,
+ 92,110,43,43,73,73,62,7,27,27,35,35,83,11,5,5,
+ 5,5,5,105,83,83,83,35,35,35,27,27,27,7,87,87,
+ 62,62,62,62,73,73,73,28,73,62,87,62,87,62,62,62,
+ 73,73,73,54,58,58,58,76,3,86,110,13,100,56,106,106,
+ 33,33,33,33,46,8,46,46,46,46,46,46,92,92,92,43,
+ 43,48,48,62,62,27,27,81,35,83,38,83,83,81,65,87,
+ 62,78,89,89,89,58,58,89,54,78,52,28,74,74,114,114,
+ 32,122,71,51,17,82,32,19,
+ 60,13,94,61,61,61,8,8,33,33,33,33,33,106,106,106,
+ 33,33,56,33,33,106,33,33,106,33,106,33,33,33,33,33,
+ 33,33,106,106,106,106,33,106,56,33,33,33,33,33,33,33,
+ 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,
+ 33,33,33,33,33,33,33,33,33,46,106,106,100,100,92,125,
+ 110,95,58,48,48,73,73,87,27,27,27,35,83,83,105,5,
+ 5,96,5,5,5,11,83,83,35,35,27,81,27,27,27,7,
+ 87,87,62,62,28,87,62,28,62,87,87,87,87,87,87,124,
+ 4,73,78,89,19,58,58,76,3,86,110,117,13,125,100,100,
+ 106,106,106,46,106,46,46,94,92,94,92,94,100,125,92,117,
+ 43,48,48,89,62,62,7,27,81,35,35,38,83,47,27,124,
+ 87,73,89,89,78,78,52,28,28,70,32,122,101,122,122,91,
+ 122,101,10,121,17,82,32,31,
+ 19,125,106,61,61,8,8,33,33,33,106,56,56,56,93,93,
+ 93,93,93,86,86,49,12,49,12,12,49,12,49,12,49,12,
+ 49,12,49,49,49,49,49,49,49,12,49,49,49,60,60,60,
+ 60,123,60,123,60,123,60,60,60,60,49,60,60,60,60,60,
+ 60,60,60,123,60,123,60,60,31,49,118,118,19,118,118,54,
+ 78,4,4,28,28,124,7,27,27,35,35,35,11,11,5,96,
+ 96,53,53,53,53,96,5,11,83,11,83,83,35,35,35,81,
+ 81,15,15,15,65,65,65,15,65,15,65,15,15,15,15,65,
+ 65,114,70,74,124,28,52,52,52,52,103,103,4,12,12,79,
+ 54,19,19,118,58,19,19,58,19,19,19,118,54,79,78,4,
+ 4,28,62,87,27,27,27,35,35,38,83,38,38,35,81,65,
+ 70,124,78,28,28,124,70,70,39,91,39,39,101,39,122,122,
+ 71,101,102,121,17,82,122,19,
+ 19,13,94,61,8,33,33,106,56,56,93,93,13,13,86,31,
+ 60,54,118,103,55,127,72,44,44,72,44,44,44,72,42,26,
+ 97,97,77,97,97,77,97,77,97,77,77,24,127,127,127,127,
+ 127,127,127,127,127,127,127,127,113,127,127,77,113,77,113,113,
+ 127,113,127,113,127,127,127,45,127,127,45,45,45,45,45,45,
+ 45,45,45,36,36,126,120,120,120,96,1,53,53,34,34,34,
+ 9,9,9,14,9,9,34,34,34,34,34,1,1,1,1,1,
+ 1,1,1,1,1,1,40,1,40,1,40,40,40,40,40,44,
+ 40,40,40,26,126,126,36,126,36,126,36,126,126,45,126,45,
+ 45,45,45,45,45,127,127,127,127,45,127,45,45,45,45,45,
+ 45,36,126,120,120,40,40,96,40,40,120,5,105,29,38,35,
+ 81,65,124,124,84,91,39,91,122,91,122,101,101,122,101,122,
+ 102,102,51,116,29,82,122,19,
+ 60,117,106,61,8,33,56,56,13,13,95,123,19,118,118,78,
+ 103,52,119,84,80,127,44,72,40,42,42,42,42,36,127,29,
+ 29,116,116,121,121,121,51,121,51,10,51,51,10,102,10,102,
+ 102,102,102,102,71,71,71,71,71,71,71,122,71,122,71,71,
+ 71,71,71,71,71,71,71,71,101,101,101,102,101,102,55,55,
+ 55,55,55,10,55,55,111,111,99,50,38,83,11,5,5,96,
+ 53,53,34,34,34,34,34,53,1,96,120,120,120,36,36,82,
+ 11,11,29,29,38,29,29,29,17,38,38,29,38,38,50,50,
+ 50,80,50,80,50,80,121,99,121,121,111,51,111,51,10,51,
+ 51,10,102,102,102,122,102,101,102,71,71,122,122,71,10,51,
+ 51,111,111,111,99,80,99,99,35,47,81,81,27,81,81,81,
+ 81,39,65,91,91,91,91,91,91,91,39,39,101,101,102,55,
+ 102,55,51,116,82,127,122,19,
+ 31,13,106,8,8,33,106,106,93,13,95,86,76,19,54,54,
+ 103,52,28,84,99,45,40,44,40,40,40,40,40,36,45,29,
+ 29,50,50,121,121,51,51,51,102,71,122,32,32,109,109,109,
+ 114,109,109,109,109,109,109,109,109,109,109,119,109,85,109,109,
+ 109,109,109,109,109,109,109,109,109,114,114,114,114,114,114,114,
+ 114,32,114,91,114,32,101,101,39,15,111,47,99,83,83,105,
+ 5,96,53,53,34,34,34,1,96,120,5,105,11,11,29,83,
+ 50,38,38,80,80,99,35,99,99,99,47,99,2,47,2,81,
+ 111,55,111,15,55,55,102,101,101,55,55,102,102,101,101,32,
+ 32,32,114,114,114,114,114,16,16,114,109,109,109,16,109,32,
+ 32,32,32,91,70,70,124,28,62,62,7,27,81,35,35,35,
+ 47,81,65,7,7,70,91,70,91,114,122,39,101,101,101,55,
+ 55,55,2,116,82,127,101,19,
+ 31,95,106,61,61,8,33,106,106,56,125,13,123,76,76,54,
+ 54,78,52,74,111,105,40,44,96,40,96,96,120,5,36,105,
+ 29,11,29,50,80,121,51,55,102,32,32,109,16,85,16,41,
+ 41,41,41,41,41,41,41,41,103,41,41,41,103,41,103,103,
+ 103,103,41,41,41,41,41,41,41,41,41,41,41,41,16,41,
+ 41,41,41,85,41,16,41,16,70,114,91,65,15,47,99,38,
+ 83,105,5,53,53,53,96,96,96,36,11,11,29,38,38,38,
+ 80,99,99,47,47,111,81,15,15,15,81,15,15,15,101,101,
+ 91,91,91,122,91,91,91,122,122,32,91,114,114,16,16,85,
+ 16,41,41,41,0,0,108,14,64,59,59,90,57,0,103,103,
+ 103,12,4,79,54,58,58,89,78,73,87,27,81,81,38,83,
+ 35,81,39,91,91,70,70,91,91,39,91,39,101,101,55,55,
+ 55,51,111,17,82,45,122,19,
+ 76,13,94,61,61,61,8,33,33,106,106,100,13,110,117,76,
+ 60,89,54,28,81,29,40,120,120,126,36,36,36,107,21,0,
+ 0,0,0,0,0,50,50,111,55,122,32,109,119,41,41,103,
+ 103,12,79,12,12,12,12,12,12,12,12,12,12,12,12,12,
+ 12,79,12,79,79,79,79,79,12,79,79,4,12,79,103,41,
+ 4,103,4,103,4,103,41,103,41,28,16,124,70,7,15,47,
+ 99,11,11,120,53,96,96,96,5,105,11,38,38,99,99,99,
+ 99,47,47,81,15,15,15,15,15,39,65,65,91,91,91,91,
+ 91,32,114,91,32,114,114,70,16,16,119,28,119,52,52,4,
+ 4,4,0,44,9,14,14,67,64,64,64,64,112,59,98,0,
+ 0,31,76,95,3,117,3,58,89,73,87,27,81,35,83,11,
+ 38,35,81,15,65,91,91,91,91,39,91,15,15,101,15,55,
+ 55,51,51,50,82,45,122,19,
+ 31,125,106,61,61,61,61,61,8,33,106,56,56,13,13,117,
+ 76,58,54,52,81,29,120,126,36,11,105,105,0,21,26,2,
+ 122,2,75,16,41,109,41,119,41,41,116,104,17,17,97,18,
+ 108,98,64,64,59,19,31,19,31,79,31,79,79,31,79,19,
+ 79,79,19,118,118,19,79,19,31,79,19,31,79,79,79,49,
+ 79,79,49,79,118,79,79,12,79,79,4,4,28,70,7,81,
+ 47,99,11,105,96,120,5,5,11,11,38,35,35,47,47,47,
+ 81,81,81,15,27,15,65,65,65,70,91,70,91,70,7,114,
+ 91,91,91,114,70,16,74,28,85,41,103,103,79,79,79,79,
+ 0,127,101,3,6,98,64,64,59,59,59,59,90,23,59,59,
+ 68,0,0,117,110,110,63,63,48,48,62,87,27,81,83,105,
+ 11,38,99,81,15,65,91,65,91,91,39,101,101,15,55,55,
+ 51,111,121,116,82,127,101,118,
+ 19,125,94,61,61,61,61,8,8,46,106,106,100,125,110,117,
+ 76,58,54,52,81,29,120,36,82,29,29,88,98,21,18,2,
+ 122,2,75,114,4,79,79,19,31,123,95,125,95,20,20,20,
+ 94,106,94,94,94,94,94,114,16,32,24,26,6,98,0,0,
+ 0,79,19,76,76,76,76,76,123,76,76,76,76,31,31,31,
+ 31,31,31,31,31,31,31,19,19,19,89,79,4,87,124,27,
+ 47,35,83,11,5,105,105,11,83,83,35,47,47,81,81,47,
+ 47,81,81,55,81,65,39,91,91,70,70,124,70,74,70,70,
+ 70,74,70,84,70,74,28,52,52,4,79,118,19,76,76,0,
+ 36,125,3,88,98,14,64,64,14,64,112,59,59,59,64,112,
+ 64,68,0,0,0,110,110,92,63,63,48,73,87,81,35,105,
+ 11,83,38,99,47,15,39,39,39,15,39,15,55,15,55,15,
+ 111,111,121,17,127,45,122,19,
+ 19,117,94,61,61,61,61,61,8,33,46,100,56,13,117,76,
+ 58,58,89,52,81,50,120,36,11,38,38,64,14,14,18,2,
+ 122,17,113,104,16,16,79,31,31,95,95,95,125,20,20,20,
+ 20,94,94,94,94,8,8,8,46,46,8,8,8,8,8,8,
+ 79,41,75,0,95,95,95,95,95,95,95,95,123,95,76,76,
+ 123,123,123,123,95,76,76,76,19,58,19,89,78,62,70,27,
+ 81,35,83,83,11,11,83,83,83,35,47,35,81,47,47,35,
+ 80,38,38,99,99,81,15,65,65,7,7,70,124,124,124,124,
+ 124,124,74,74,74,74,16,28,52,12,118,54,19,31,0,88,
+ 19,101,98,9,14,6,6,108,69,57,57,108,98,59,59,64,
+ 59,64,66,0,0,0,92,92,92,92,43,43,73,7,35,11,
+ 11,29,83,80,47,15,15,65,65,65,39,39,15,55,15,111,
+ 51,111,80,50,82,45,102,19,
+ 19,117,106,61,61,61,8,61,8,33,106,106,125,13,117,76,
+ 58,54,89,28,39,50,36,82,38,50,50,14,98,21,40,10,
+ 2,24,113,113,104,32,41,4,79,95,95,125,125,20,94,94,
+ 94,94,46,94,46,94,61,8,94,61,94,33,8,8,8,95,
+ 12,31,61,98,95,95,123,95,95,123,95,95,123,95,95,95,
+ 31,94,46,61,46,46,94,94,92,76,89,78,61,92,20,92,
+ 3,117,3,3,3,43,3,3,73,117,63,63,3,3,38,58,
+ 58,19,58,58,11,38,47,81,15,65,87,78,7,70,124,70,
+ 70,70,70,70,70,74,74,74,28,52,103,118,49,0,69,18,
+ 9,14,14,108,1,69,9,98,9,88,68,44,44,57,112,59,
+ 59,59,67,72,0,0,0,100,92,46,63,43,48,87,81,83,
+ 38,38,38,99,81,81,39,101,101,65,15,15,15,111,15,111,
+ 111,111,80,29,127,36,102,19,
+ 19,117,94,61,61,61,61,8,8,8,106,100,125,110,76,58,
+ 54,54,12,52,39,50,36,29,50,47,111,21,98,14,18,114,
+ 3,24,24,113,18,0,0,0,14,98,9,6,108,26,24,104,
+ 75,32,114,79,31,125,20,94,94,94,33,94,33,94,31,22,
+ 109,33,61,9,123,123,95,95,95,95,95,95,95,76,95,95,
+ 61,61,20,31,95,3,76,94,61,117,79,89,61,3,78,78,
+ 3,61,61,73,73,62,117,92,27,65,61,61,73,35,11,105,
+ 3,61,65,36,120,105,38,35,81,27,4,61,7,124,70,70,
+ 70,70,70,91,91,84,84,74,119,28,52,4,118,99,64,23,
+ 64,64,108,69,88,14,0,0,0,0,0,69,72,57,57,112,
+ 59,59,59,112,0,0,0,92,46,92,92,63,48,124,81,38,
+ 38,38,80,99,81,39,65,65,91,39,39,55,15,55,111,55,
+ 111,111,80,29,82,45,102,118,
+ 31,125,46,61,61,61,61,61,46,46,106,100,125,117,117,76,
+ 76,58,60,54,84,51,82,116,51,102,102,98,98,98,18,122,
+ 31,17,24,24,24,108,67,107,67,59,0,67,107,107,107,67,
+ 37,59,59,37,37,37,37,98,18,24,113,2,122,71,22,32,
+ 79,8,8,9,123,123,95,123,95,123,95,31,95,31,95,61,
+ 61,94,95,31,31,76,76,58,61,63,79,3,20,62,62,87,
+ 89,61,61,7,87,7,7,61,27,27,61,61,70,83,11,11,
+ 94,15,53,53,53,120,11,38,99,81,4,61,7,124,124,7,
+ 70,7,91,70,70,70,74,74,74,74,119,52,0,9,98,64,
+ 64,6,108,9,9,0,0,0,0,0,0,0,0,57,72,108,
+ 64,59,64,0,72,0,0,0,92,92,3,58,73,7,81,38,
+ 35,99,35,111,15,91,91,91,91,91,39,15,39,39,111,15,
+ 51,111,99,29,45,36,102,19,
+ 19,117,94,61,61,61,8,8,33,46,106,100,100,20,125,125,
+ 117,13,13,123,85,51,17,116,51,102,101,98,9,9,18,122,
+ 19,113,97,97,24,45,18,67,107,107,67,67,37,67,37,37,
+ 30,37,37,37,37,37,37,37,37,37,37,37,88,25,2,2,
+ 97,20,61,98,95,95,31,95,95,95,76,95,95,95,20,61,
+ 61,95,76,76,76,76,19,19,95,3,79,89,79,41,28,28,
+ 76,61,61,62,62,87,87,73,7,27,61,61,124,83,11,19,
+ 76,53,34,34,34,96,120,105,11,35,4,61,65,7,7,70,
+ 70,70,70,91,70,74,70,70,74,74,74,28,94,23,64,23,
+ 34,9,9,9,0,0,0,0,0,0,0,0,0,0,72,57,
+ 57,59,59,59,9,0,0,0,92,110,3,89,73,70,81,99,
+ 99,47,81,15,15,91,65,91,91,65,91,15,15,15,15,55,
+ 111,111,80,29,45,126,55,118,
+ 118,95,94,61,61,61,61,8,33,106,106,106,100,100,56,20,
+ 93,125,93,86,85,51,17,121,51,122,101,98,9,98,18,122,
+ 79,113,26,26,97,97,24,18,67,37,107,67,107,30,115,115,
+ 66,66,115,30,30,30,30,30,37,37,30,66,113,25,10,108,
+ 26,94,61,98,95,95,95,31,95,95,95,76,95,95,61,61,
+ 46,95,95,95,95,95,76,31,19,19,79,79,4,4,4,4,
+ 95,61,61,79,78,4,62,28,7,7,61,61,124,38,58,94,
+ 5,34,34,34,34,53,105,15,65,70,58,61,4,54,89,78,
+ 7,70,70,70,70,70,74,70,70,74,16,74,2,98,0,64,
+ 88,108,115,0,0,0,0,0,0,76,76,76,123,95,57,18,
+ 72,59,59,59,90,0,0,0,117,110,58,89,73,124,65,81,
+ 81,15,39,27,65,122,65,91,91,91,39,15,15,15,55,81,
+ 111,111,99,17,82,36,101,79,
+ 54,76,100,8,8,8,8,8,8,46,94,106,106,106,100,56,
+ 100,93,93,86,103,71,17,121,51,122,122,98,9,9,18,101,
+ 41,82,88,26,26,97,77,24,24,66,30,90,115,88,68,69,
+ 88,115,42,68,69,68,66,115,115,21,72,113,25,75,75,90,
+ 97,94,61,9,95,95,95,95,95,95,123,95,95,95,61,61,
+ 46,76,95,95,95,76,95,95,31,19,49,118,118,118,79,79,
+ 95,61,61,19,89,78,78,4,28,70,61,61,89,94,61,81,
+ 96,53,34,34,34,53,47,61,61,61,61,61,61,61,61,61,
+ 70,7,7,91,70,70,70,70,16,70,70,70,127,14,14,9,
+ 9,6,14,0,0,0,0,31,76,76,123,95,95,86,86,72,
+ 57,9,59,64,59,116,0,0,0,110,3,58,78,28,70,39,
+ 91,91,91,91,91,70,91,91,91,101,65,39,55,15,15,55,
+ 111,111,50,38,36,126,55,19,
+ 4,19,117,106,106,46,8,46,33,33,106,106,100,106,106,56,
+ 106,56,56,13,103,102,17,51,51,32,109,9,9,9,26,10,
+ 41,82,21,18,26,97,97,24,113,24,24,69,69,69,98,0,
+ 0,0,0,107,0,67,21,88,108,77,113,17,25,10,72,30,
+ 42,20,8,98,95,123,95,95,95,95,95,76,95,95,61,61,
+ 46,31,76,31,20,94,46,8,46,46,20,60,19,19,19,118,
+ 125,61,61,19,19,19,78,78,62,124,61,61,58,92,61,61,
+ 5,53,53,34,34,53,96,105,11,35,28,61,27,7,7,7,
+ 70,7,70,65,70,70,70,70,84,84,70,74,1,64,6,88,
+ 98,9,9,0,0,0,0,31,76,76,31,76,76,95,95,57,
+ 68,57,59,112,59,18,0,0,0,100,3,3,89,78,87,91,
+ 7,70,70,114,91,70,91,91,65,91,15,15,15,15,81,55,
+ 47,2,80,17,36,36,55,19,
+ 28,54,76,92,106,46,8,8,8,46,106,94,106,106,100,106,
+ 56,100,56,86,41,102,116,75,71,32,0,88,6,98,26,10,
+ 16,113,0,108,18,26,26,97,97,24,24,24,24,26,108,21,
+ 67,67,64,59,112,108,18,113,113,113,17,25,25,25,30,30,
+ 97,94,61,9,123,95,123,123,95,123,76,95,31,19,61,61,
+ 61,19,19,31,31,76,95,61,61,20,123,31,31,60,60,76,
+ 125,61,61,19,58,19,19,89,4,28,61,61,28,38,110,61,
+ 94,96,53,34,34,96,120,5,11,38,87,61,15,65,65,91,
+ 7,70,7,70,70,70,74,70,70,70,91,91,6,98,53,9,
+ 98,98,9,0,0,0,0,19,19,31,31,31,123,123,86,57,
+ 72,57,59,90,59,57,0,0,0,100,110,3,58,78,28,70,
+ 70,70,70,70,70,70,91,91,91,101,65,15,81,111,55,47,
+ 47,99,80,29,45,24,55,118,
+ 28,78,76,110,100,100,46,46,33,8,33,33,106,33,106,94,
+ 56,56,56,13,41,102,17,2,102,32,98,108,6,9,26,10,
+ 16,24,107,21,18,26,26,26,26,26,97,97,97,24,97,97,
+ 97,97,24,113,17,113,113,113,113,17,17,25,75,113,30,30,
+ 26,94,46,9,76,95,95,76,95,95,76,76,31,79,20,61,
+ 61,76,79,19,19,19,31,61,61,125,95,123,123,95,76,76,
+ 20,61,61,95,76,19,19,79,4,28,61,61,4,35,35,94,
+ 61,78,53,53,53,96,96,11,11,38,87,61,81,39,27,65,
+ 65,70,70,70,70,70,70,70,70,70,70,7,44,1,1,9,
+ 9,98,6,0,0,0,12,118,12,118,118,19,60,31,123,57,
+ 127,57,21,90,64,57,0,0,0,92,110,3,48,78,87,91,
+ 7,70,70,70,70,70,91,91,65,101,65,101,15,15,47,111,
+ 111,99,80,29,36,120,101,79,
+ 52,54,76,110,100,106,46,33,8,8,8,8,33,33,106,106,
+ 106,56,93,86,41,55,17,121,102,0,98,108,6,9,40,10,
+ 16,24,0,59,98,18,18,18,18,18,18,72,26,26,97,97,
+ 24,113,113,113,32,94,61,94,31,17,75,25,12,61,33,17,
+ 97,94,8,9,19,19,95,95,95,76,76,76,19,19,118,61,
+ 61,61,19,118,49,19,31,61,61,20,76,95,95,76,123,123,
+ 20,61,61,123,95,76,19,54,78,4,61,61,28,35,83,47,
+ 61,61,73,53,53,96,5,105,11,38,124,61,27,65,65,7,
+ 7,7,124,87,124,70,70,70,7,91,70,70,36,126,69,9,
+ 9,14,108,0,0,0,74,119,52,52,103,12,118,49,60,115,
+ 116,57,98,30,59,57,0,0,0,92,63,58,78,73,70,65,
+ 91,91,70,70,70,70,91,91,65,65,15,15,15,81,15,47,
+ 111,99,80,29,45,126,55,19,
+ 28,54,3,110,100,100,8,8,8,61,8,8,33,33,106,106,
+ 56,56,56,13,41,71,17,121,102,0,14,18,108,9,26,10,
+ 16,126,107,0,59,88,18,18,57,18,57,18,18,18,26,26,
+ 24,113,113,19,46,8,46,94,33,94,25,103,8,46,122,12,
+ 41,20,94,98,24,42,50,41,95,95,76,95,19,19,54,19,
+ 8,61,8,117,54,19,117,61,61,20,95,95,95,95,95,76,
+ 94,61,61,20,123,31,76,19,54,54,61,61,125,47,38,11,
+ 58,61,61,54,5,96,5,11,83,38,35,47,81,39,65,65,
+ 7,7,7,7,7,7,91,70,7,70,7,70,97,36,1,69,
+ 9,23,9,0,0,0,91,84,84,74,85,52,103,12,49,115,
+ 51,66,115,98,64,57,0,0,0,110,3,89,28,124,91,15,
+ 27,39,70,91,70,7,70,70,39,65,39,65,15,15,81,111,
+ 47,99,104,29,36,36,55,19,
+ 28,54,58,110,92,92,106,106,106,33,33,33,33,33,106,56,
+ 106,56,93,13,41,102,17,111,10,0,98,18,18,6,26,101,
+ 41,45,0,0,0,59,88,57,108,108,108,108,57,18,26,26,
+ 97,24,17,20,94,20,41,113,122,125,95,8,8,16,21,17,
+ 12,109,17,21,6,26,40,26,41,31,76,31,31,58,118,49,
+ 118,110,8,61,61,61,8,94,125,76,95,95,95,95,125,46,
+ 46,8,46,46,46,76,76,19,110,94,94,20,110,3,35,76,
+ 58,58,89,54,58,38,5,5,105,83,38,35,47,81,27,65,
+ 65,91,7,70,7,70,7,70,70,70,70,82,40,57,69,6,
+ 108,108,66,66,9,9,66,9,88,9,9,9,9,6,6,108,
+ 6,6,6,108,1,1,26,99,0,92,3,89,73,124,7,15,
+ 101,65,91,91,70,91,91,91,91,70,39,15,101,15,81,55,
+ 111,99,99,29,45,97,55,118,
+ 52,78,58,117,110,125,100,106,106,33,33,33,33,106,106,56,
+ 56,93,93,86,103,102,29,121,55,0,98,97,26,6,97,114,
+ 41,45,0,107,0,0,0,88,108,108,108,108,57,57,18,26,
+ 97,113,17,95,20,94,6,88,102,114,94,94,46,32,0,98,
+ 16,97,88,9,97,122,16,97,29,76,95,76,31,31,19,19,
+ 19,49,58,31,76,31,76,76,95,76,95,95,76,76,95,95,
+ 76,95,95,95,95,123,123,123,19,78,78,28,70,81,35,35,
+ 11,105,5,5,96,96,96,5,5,11,83,35,35,81,27,65,
+ 7,65,7,7,7,7,70,70,124,124,82,9,108,108,69,66,
+ 88,88,88,9,88,115,115,115,115,9,98,9,9,9,9,9,
+ 6,34,6,108,1,108,1,18,15,0,0,54,28,124,70,27,
+ 65,65,91,65,91,91,91,91,39,65,39,39,15,15,15,55,
+ 47,111,80,29,82,36,55,118,
+ 4,49,123,110,125,100,100,100,106,106,33,106,106,106,106,56,
+ 56,56,93,13,41,102,17,111,10,64,14,24,97,6,24,114,
+ 19,29,107,0,0,0,0,59,88,88,108,88,108,18,18,18,
+ 97,97,82,31,95,20,40,0,98,122,125,12,20,20,122,114,
+ 75,108,88,88,26,91,16,82,1,79,31,95,76,19,58,19,
+ 19,19,19,60,31,31,76,123,76,76,31,31,76,31,76,31,
+ 123,31,123,123,123,123,123,76,19,54,4,28,70,65,81,38,
+ 83,11,5,96,96,96,96,96,5,11,11,83,35,35,81,81,
+ 27,7,65,65,7,7,7,7,70,70,64,112,112,112,64,64,
+ 64,59,64,112,59,64,59,64,64,23,23,23,23,23,23,23,
+ 23,23,23,23,23,64,23,64,14,0,0,0,73,28,70,101,
+ 65,91,65,91,65,65,39,91,39,91,101,15,101,55,55,55,
+ 111,2,80,29,45,126,55,19,
+ 118,76,117,93,100,100,100,56,106,106,106,106,106,106,106,56,
+ 56,56,93,86,41,102,17,121,55,64,9,24,24,1,24,124,
+ 31,17,107,107,0,0,0,59,21,88,108,88,108,108,18,26,
+ 26,97,24,103,19,95,4,18,40,31,10,25,2,16,16,10,
+ 26,18,6,88,18,45,50,26,6,41,58,95,31,31,60,60,
+ 76,60,31,31,31,31,31,31,31,31,60,31,31,31,31,31,
+ 31,60,31,60,31,31,31,123,76,54,54,52,124,70,27,47,
+ 83,11,5,96,53,53,53,53,96,105,11,83,35,35,81,81,
+ 81,27,65,65,65,70,7,7,70,70,23,64,112,64,112,112,
+ 64,112,64,64,112,64,112,59,64,23,64,23,64,23,64,23,
+ 64,23,64,0,64,23,64,112,14,0,0,0,78,62,124,91,
+ 65,91,39,91,91,39,101,39,101,101,101,55,15,55,15,111,
+ 111,111,80,29,45,126,55,19,
+ 19,76,125,106,56,100,93,100,106,106,33,106,106,106,56,56,
+ 56,93,93,13,41,102,17,121,55,64,9,24,17,1,113,41,
+ 95,10,107,107,107,0,0,64,59,88,88,108,108,108,57,18,
+ 26,97,97,10,79,76,76,76,95,4,17,17,17,17,17,113,
+ 26,40,18,108,6,1,18,88,108,28,19,76,76,76,76,76,
+ 31,123,76,31,123,31,123,123,31,31,31,123,123,31,31,31,
+ 31,60,31,31,31,31,123,60,19,19,54,89,52,124,91,81,
+ 38,11,105,96,53,53,53,53,96,5,105,83,83,35,35,81,
+ 27,27,27,65,7,65,70,70,7,70,112,112,23,64,67,23,
+ 112,112,112,64,59,64,112,23,112,64,23,64,23,64,23,64,
+ 23,64,23,112,23,112,23,59,14,0,0,0,89,28,124,7,
+ 70,91,65,65,101,15,65,101,15,101,15,15,55,55,55,55,
+ 51,111,80,17,82,45,55,118,
+ 31,95,100,46,106,106,125,100,56,106,33,106,106,106,106,56,
+ 56,93,93,86,41,71,17,121,10,0,88,17,82,1,17,4,
+ 20,10,107,0,107,107,0,64,59,9,108,88,108,108,57,18,
+ 57,18,97,97,24,75,2,75,25,113,17,25,113,17,113,24,
+ 97,126,40,18,108,6,6,98,44,52,4,12,118,118,54,19,
+ 60,60,76,31,123,31,31,123,123,123,31,123,31,31,123,31,
+ 31,31,123,123,123,123,123,123,76,19,118,54,4,62,70,65,
+ 35,38,105,5,96,53,53,53,96,5,11,83,83,35,81,81,
+ 27,65,27,65,65,65,65,70,91,70,64,59,112,64,112,64,
+ 67,64,112,112,112,64,64,112,67,23,64,67,64,23,67,23,
+ 67,23,64,23,64,67,64,64,14,0,0,0,58,89,28,70,
+ 7,70,65,39,39,15,15,101,101,39,101,15,15,55,55,55,
+ 111,51,99,17,45,36,101,118,
+ 76,13,100,8,8,106,106,106,106,106,33,106,106,106,56,93,
+ 93,56,93,86,41,102,17,121,55,0,9,104,104,40,17,79,
+ 94,102,107,107,107,0,67,64,59,21,88,108,88,108,108,57,
+ 57,57,26,97,97,24,24,113,113,113,113,17,113,113,24,26,
+ 45,82,97,40,18,69,88,88,50,124,28,28,52,103,4,103,
+ 54,118,118,118,60,60,60,123,60,60,31,49,60,49,49,60,
+ 31,123,123,123,95,95,95,76,76,19,54,54,78,78,28,65,
+ 81,35,11,5,96,96,96,53,5,5,11,83,35,35,81,81,
+ 15,27,65,65,7,7,7,70,7,70,112,112,64,67,64,64,
+ 64,67,64,112,64,67,64,64,64,23,23,64,23,64,23,64,
+ 23,64,67,64,23,64,23,67,14,0,0,0,43,48,73,28,
+ 124,91,91,65,15,15,15,15,15,101,101,101,101,15,101,101,
+ 55,10,111,29,82,24,102,19,
+ 76,13,100,8,8,46,33,33,33,33,33,106,106,56,106,56,
+ 93,13,13,86,41,55,17,2,102,0,88,104,17,26,17,79,
+ 94,32,107,107,107,107,67,21,0,64,98,108,88,108,108,108,
+ 18,88,108,26,26,97,97,24,24,113,113,113,24,97,26,18,
+ 26,17,82,45,42,44,57,120,39,70,70,74,124,28,28,52,
+ 52,103,12,12,49,49,49,60,31,49,60,49,19,49,49,49,
+ 19,31,123,123,123,123,95,123,123,31,54,118,78,78,28,84,
+ 27,47,83,11,5,5,96,96,5,105,11,83,35,81,81,81,
+ 27,39,65,65,91,91,70,70,70,70,98,90,98,98,115,112,
+ 90,112,98,21,115,98,115,21,115,14,21,14,9,9,14,98,
+ 14,14,14,21,14,14,14,14,9,0,0,0,110,63,48,78,
+ 62,70,39,39,65,101,101,39,39,101,101,15,101,101,101,101,
+ 55,51,111,17,127,36,102,19,
+ 31,125,106,61,61,8,33,33,33,33,33,106,56,56,93,93,
+ 93,93,93,86,41,102,17,121,101,0,6,2,104,120,104,19,
+ 46,16,107,107,0,107,64,21,59,59,21,88,108,88,88,6,
+ 26,18,108,108,18,26,97,26,97,97,97,97,26,26,18,18,
+ 18,29,17,82,24,97,36,80,65,91,70,70,70,74,74,28,
+ 52,52,103,118,118,60,60,60,60,60,60,19,49,49,118,60,
+ 60,31,123,123,95,95,95,95,76,76,76,54,12,78,28,124,
+ 65,47,80,11,105,5,5,96,5,11,83,83,35,35,81,81,
+ 81,15,65,7,7,70,91,70,70,70,97,120,97,120,97,120,
+ 44,120,126,44,44,44,120,120,1,68,44,68,68,44,18,68,
+ 44,72,72,68,72,72,72,126,126,0,0,0,92,3,19,4,
+ 28,16,91,91,101,101,91,101,39,101,101,101,101,102,101,102,
+ 55,55,51,50,82,24,101,19,
+ 19,125,94,61,61,8,8,33,33,33,106,106,56,56,56,93,
+ 20,93,13,86,41,102,50,121,102,0,9,2,104,26,104,19,
+ 8,16,0,107,107,107,112,98,0,59,21,21,88,108,88,108,
+ 18,97,113,97,98,108,57,18,26,18,26,26,18,18,57,108,
+ 57,18,26,45,127,82,47,91,91,91,91,91,70,74,28,119,
+ 52,103,103,118,49,60,31,123,123,31,60,60,19,49,49,60,
+ 31,123,123,95,13,95,13,95,123,31,19,54,78,52,62,84,
+ 65,81,35,11,105,5,5,5,105,11,83,83,35,81,81,27,
+ 27,39,65,91,7,7,70,70,70,70,50,45,127,127,36,36,
+ 126,126,126,126,126,126,44,18,120,72,72,72,72,77,126,126,
+ 126,126,77,77,77,77,77,77,29,0,0,0,117,58,54,28,
+ 28,70,91,32,91,122,122,122,122,122,122,122,122,122,32,122,
+ 71,55,51,116,82,45,102,19,
+ 19,95,106,61,8,8,33,33,33,33,106,106,106,56,93,56,
+ 93,93,93,13,41,102,17,2,102,0,88,2,10,97,104,31,
+ 46,16,107,107,107,107,112,9,21,64,88,88,18,18,72,26,
+ 113,77,24,18,88,98,98,88,88,57,57,18,57,57,18,108,
+ 108,18,26,24,29,27,91,65,91,91,91,91,74,74,74,52,
+ 52,12,118,118,49,31,31,123,31,60,60,60,60,31,31,125,
+ 46,31,95,86,95,95,95,95,95,19,49,54,78,52,124,70,
+ 39,47,35,38,83,83,83,87,62,83,35,35,81,81,81,39,
+ 65,65,65,91,70,70,70,70,70,70,126,44,97,40,120,120,
+ 97,120,44,44,1,18,69,44,18,44,68,68,44,68,44,68,
+ 44,72,72,44,72,72,72,126,126,0,0,0,58,54,4,52,
+ 74,114,122,91,122,122,91,32,84,84,32,84,32,109,32,109,
+ 32,71,102,116,17,127,122,19,
+ 19,95,106,61,61,61,8,33,33,33,33,106,106,106,56,56,
+ 56,93,13,86,41,10,17,111,10,0,88,10,10,24,104,31,
+ 8,16,107,107,107,107,21,18,72,113,113,25,25,113,113,72,
+ 57,26,113,97,26,57,88,9,98,21,64,64,21,98,98,9,
+ 98,108,97,9,39,65,91,7,7,70,70,91,70,74,74,123,
+ 100,100,106,106,106,106,13,31,46,94,94,94,106,123,61,61,
+ 61,123,123,123,123,95,95,123,123,76,49,54,78,78,28,124,
+ 65,39,81,47,35,81,61,61,3,81,81,81,81,65,65,65,
+ 65,70,7,91,91,70,70,70,70,70,120,126,126,97,120,120,
+ 120,120,44,97,120,44,120,1,18,66,44,72,72,72,68,72,
+ 126,72,72,72,77,77,77,77,120,0,0,0,58,54,52,74,
+ 74,84,122,122,39,32,32,84,109,109,109,109,109,109,109,32,
+ 32,71,51,121,17,127,122,60,
+ 118,95,100,8,8,8,46,33,33,33,33,33,106,106,56,93,
+ 93,125,93,86,85,102,17,121,10,0,6,10,2,24,104,95,
+ 8,79,107,67,9,126,116,109,22,22,22,25,72,98,21,98,
+ 98,88,108,97,97,26,18,108,88,98,21,64,64,59,64,112,
+ 9,122,95,98,65,7,70,91,70,70,70,91,70,74,28,28,
+ 12,100,61,61,46,31,60,31,123,46,61,20,123,76,95,61,
+ 61,95,95,123,86,31,123,123,76,19,19,118,4,28,74,124,
+ 91,27,39,81,47,81,28,61,117,81,81,39,65,91,65,91,
+ 70,70,91,91,7,84,91,70,70,74,97,126,97,36,97,120,
+ 97,44,44,44,44,44,44,120,44,44,44,44,44,44,72,44,
+ 68,72,77,42,72,72,72,126,126,0,0,0,58,78,52,28,
+ 74,84,32,32,32,32,32,109,84,109,109,109,109,109,109,109,
+ 32,32,71,116,17,127,122,19,
+ 49,95,106,61,8,8,8,33,33,33,106,106,106,106,56,93,
+ 93,13,13,86,85,51,17,121,55,0,6,10,2,24,104,31,
+ 20,101,88,29,51,12,95,94,10,72,90,59,59,59,21,21,
+ 98,21,98,98,98,98,98,98,21,21,64,59,98,59,37,30,
+ 18,79,20,98,91,70,70,70,70,70,74,74,124,74,74,74,
+ 52,103,94,61,61,13,123,123,125,61,20,95,123,95,95,61,
+ 61,76,123,31,123,31,31,31,19,54,118,103,52,28,124,7,
+ 91,65,65,65,65,65,78,61,125,91,65,84,7,70,70,70,
+ 91,70,91,39,91,91,91,91,91,84,44,40,120,40,18,44,
+ 44,18,69,44,1,44,18,1,44,68,44,68,44,68,44,68,
+ 68,68,68,72,72,72,72,44,44,0,0,0,58,54,103,28,
+ 74,74,84,84,84,84,84,109,109,109,109,109,109,109,32,32,
+ 32,71,51,75,82,127,122,19,
+ 19,95,20,33,33,33,106,33,106,106,106,56,56,93,93,93,
+ 93,93,13,123,41,102,17,121,10,0,6,15,10,97,104,31,
+ 126,88,21,127,55,45,18,115,98,88,98,98,98,98,21,21,
+ 98,98,98,98,21,64,21,64,21,21,21,21,90,59,30,37,
+ 18,31,56,98,91,7,70,70,70,70,124,70,74,74,74,74,
+ 52,52,54,61,61,61,123,95,61,20,95,123,95,123,95,61,
+ 61,31,76,123,31,31,31,19,49,118,12,54,52,28,28,74,
+ 70,70,70,70,70,70,54,61,125,70,124,70,84,84,84,91,
+ 84,39,39,39,55,55,55,55,55,15,82,26,120,120,120,44,
+ 44,44,44,1,44,18,44,120,40,44,72,44,72,44,72,72,
+ 68,68,68,72,44,44,126,77,127,0,0,107,123,58,54,103,
+ 41,74,109,84,16,16,16,109,74,109,84,109,32,109,109,32,
+ 71,71,51,116,29,77,71,19,
+ 118,86,100,33,33,33,106,33,56,56,56,56,56,93,93,13,
+ 13,13,13,123,85,102,17,51,102,0,14,10,10,36,104,41,
+ 6,98,67,0,107,107,67,90,21,115,21,115,112,21,21,90,
+ 90,112,112,90,112,90,112,90,90,90,115,90,30,30,30,30,
+ 18,95,94,9,91,91,70,70,70,74,70,70,70,70,74,74,
+ 28,52,103,19,61,61,106,61,93,123,95,95,95,95,95,61,
+ 61,95,123,123,123,106,33,33,61,56,60,118,12,103,52,54,
+ 100,61,61,8,19,28,19,61,100,74,76,125,100,110,84,84,
+ 91,39,39,55,51,111,121,111,51,47,82,82,36,97,120,97,
+ 44,1,44,44,44,126,18,44,44,68,69,44,44,68,72,68,
+ 18,44,72,72,126,77,77,77,36,0,0,0,93,13,76,49,
+ 12,103,119,119,119,74,119,109,109,109,32,32,32,122,122,122,
+ 102,51,121,17,127,126,102,19,
+ 118,123,93,33,33,33,33,56,106,56,56,93,13,13,13,86,
+ 86,86,86,60,85,51,17,121,10,114,0,104,2,24,17,24,
+ 98,108,108,40,40,18,18,18,44,26,72,42,26,18,57,18,
+ 108,57,57,57,57,57,18,18,42,72,77,82,17,121,2,101,
+ 16,20,46,98,91,70,91,84,70,84,74,70,84,84,91,84,
+ 74,119,52,103,95,61,61,8,76,76,95,123,95,123,95,61,
+ 61,31,76,95,61,46,60,49,20,61,8,49,49,118,13,61,
+ 106,118,13,61,61,103,76,61,100,52,103,8,76,119,84,84,
+ 84,84,122,39,15,51,99,111,111,15,40,36,44,126,44,1,
+ 44,1,44,18,44,44,1,44,1,68,68,68,72,57,72,68,
+ 72,44,68,72,44,44,72,126,44,0,0,0,106,13,123,76,
+ 118,12,41,41,119,119,74,16,84,84,32,32,101,102,55,51,
+ 121,80,50,127,36,126,111,79,
+ 19,86,56,33,33,106,33,56,56,56,93,93,13,86,13,13,
+ 86,86,86,60,41,51,17,121,102,109,16,104,2,120,26,24,
+ 32,79,41,16,114,91,32,41,79,95,95,76,79,49,4,41,
+ 41,16,16,114,16,114,16,85,41,4,79,31,123,13,20,20,
+ 94,46,8,98,91,70,70,91,70,91,84,91,91,91,39,39,
+ 84,74,74,28,54,61,61,61,20,60,123,31,123,123,95,61,
+ 61,123,31,20,61,13,60,49,60,61,61,20,60,60,61,61,
+ 60,49,49,123,123,118,95,61,56,76,106,103,85,28,119,119,
+ 84,84,84,84,32,39,71,39,55,39,44,40,1,1,69,69,
+ 18,40,1,1,18,69,1,108,6,68,108,69,68,68,68,68,
+ 68,68,68,72,69,72,69,72,44,0,0,0,106,93,95,123,
+ 118,118,103,41,85,119,109,109,32,32,101,71,55,51,51,111,
+ 121,116,50,36,126,120,51,79,
+ 19,95,56,33,33,33,56,56,56,56,93,93,93,93,13,86,
+ 13,13,13,86,85,71,17,51,10,32,91,17,2,120,17,19,
+ 41,16,114,114,114,114,41,19,125,20,125,20,125,95,76,31,
+ 19,79,19,79,79,19,19,19,76,95,95,125,20,20,20,46,
+ 46,46,8,9,65,91,91,70,7,70,91,84,39,39,91,91,
+ 84,84,74,41,8,19,94,61,61,123,31,31,123,31,31,61,
+ 61,123,123,61,61,125,60,60,60,8,61,106,60,13,61,61,
+ 49,118,49,49,49,12,123,61,46,61,61,12,52,85,52,52,
+ 103,52,52,74,74,74,84,91,84,91,126,44,44,1,1,1,
+ 44,1,44,1,69,44,1,69,69,66,66,68,66,68,68,66,
+ 68,68,68,68,68,72,68,44,126,0,0,0,33,106,13,31,
+ 60,103,103,41,41,119,74,109,84,91,122,55,51,55,111,80,
+ 80,50,50,82,126,126,51,79,
+ 19,13,106,33,33,33,33,56,56,56,56,56,93,93,93,93,
+ 93,93,13,86,85,71,17,111,102,114,16,17,104,26,17,79,
+ 41,16,32,32,16,41,31,20,94,94,20,20,20,20,20,20,
+ 117,125,95,125,95,125,20,125,20,20,20,20,94,94,94,46,
+ 8,46,8,9,70,124,84,70,84,91,91,91,91,32,39,91,
+ 91,84,28,46,19,28,103,61,61,61,31,60,31,123,123,61,
+ 61,60,31,61,61,20,60,49,60,46,61,46,60,13,61,61,
+ 49,49,12,49,12,49,86,61,100,20,61,106,103,52,103,103,
+ 12,103,103,103,52,74,74,91,39,39,36,44,120,126,120,44,
+ 120,97,120,120,120,97,97,44,44,57,72,72,57,72,72,72,
+ 72,44,72,77,72,72,126,68,36,0,0,0,61,94,125,31,
+ 19,103,41,85,119,16,84,32,122,71,55,55,111,80,121,80,
+ 116,50,29,82,120,126,111,118,
+ 49,123,93,33,33,56,56,56,56,56,56,56,93,93,56,93,
+ 93,93,13,86,41,51,17,75,10,32,114,26,24,1,24,79,
+ 41,16,16,16,4,19,95,20,94,94,94,94,94,94,20,20,
+ 20,20,20,20,95,95,31,31,19,79,79,79,79,41,16,16,
+ 16,41,114,37,70,70,124,70,124,70,70,84,91,91,84,84,
+ 84,28,8,76,52,52,52,118,61,61,8,49,31,49,60,61,
+ 61,123,31,8,61,33,60,123,60,106,61,13,31,13,61,61,
+ 13,49,49,49,60,118,95,61,106,103,61,61,100,103,103,12,
+ 12,54,54,103,52,28,74,84,84,91,44,1,18,44,40,6,
+ 1,108,69,18,44,69,69,1,108,69,57,57,68,44,57,72,
+ 68,68,18,68,72,68,66,66,44,0,0,0,8,106,13,31,
+ 118,103,85,74,109,32,84,122,39,55,55,51,111,121,80,50,
+ 50,29,11,36,126,120,111,79,
+ 118,31,13,56,106,56,56,56,56,56,56,56,56,93,93,93,
+ 93,93,93,86,85,51,17,121,102,32,16,64,1,26,1,24,
+ 17,17,24,26,24,1,26,10,114,114,41,41,16,4,4,79,
+ 79,79,19,95,31,41,114,16,41,41,4,79,19,98,124,124,
+ 70,70,16,70,74,74,74,74,74,70,74,84,74,70,84,74,
+ 76,46,8,41,103,12,103,12,94,61,61,94,123,60,86,61,
+ 61,123,31,13,61,61,13,123,123,61,94,60,60,60,46,61,
+ 61,123,60,20,106,49,100,61,46,12,60,61,61,13,12,54,
+ 49,12,78,103,52,28,74,74,84,84,23,64,112,23,64,64,
+ 64,23,64,112,64,112,64,112,64,59,59,59,112,59,59,59,
+ 59,59,37,59,59,59,64,64,90,0,0,0,100,125,76,118,
+ 12,28,109,84,32,101,102,55,55,15,111,111,99,80,50,50,
+ 38,29,82,36,126,126,111,54,
+ 12,60,13,56,56,56,56,93,93,56,93,93,93,93,93,93,
+ 13,93,13,86,85,102,17,121,10,109,114,16,41,0,88,120,
+ 104,104,24,113,101,108,26,20,20,20,20,95,95,95,31,31,
+ 95,19,31,3,95,95,79,79,4,41,114,122,109,21,124,70,
+ 70,74,124,74,70,74,84,74,74,74,74,74,74,85,52,123,
+ 100,100,100,106,60,12,118,106,106,106,46,106,94,93,94,46,
+ 46,106,60,60,95,46,61,106,8,56,49,49,49,49,49,106,
+ 8,61,8,93,60,13,106,106,106,125,31,106,106,106,13,12,
+ 12,12,103,103,52,74,74,74,70,70,112,64,59,64,64,64,
+ 112,64,64,64,67,64,67,64,64,64,59,64,59,64,59,64,
+ 59,64,59,64,59,64,59,59,112,0,0,0,117,58,54,103,
+ 74,74,39,39,39,55,39,15,55,47,111,111,80,80,50,50,
+ 50,29,29,36,120,120,111,118,
+ 12,60,13,56,56,56,56,93,93,93,93,93,93,13,93,93,
+ 93,86,93,60,85,102,17,121,102,109,16,16,41,41,41,41,
+ 0,88,24,24,24,9,98,88,88,6,6,6,6,6,6,88,
+ 6,6,6,108,108,26,108,108,18,18,18,18,97,0,124,124,
+ 74,70,84,84,84,74,84,84,84,119,74,85,85,52,103,103,
+ 103,12,12,12,49,49,49,49,60,49,123,60,123,60,60,60,
+ 60,49,60,49,60,60,49,49,49,49,49,49,49,49,49,49,
+ 60,60,60,31,60,19,19,49,118,118,118,54,12,78,103,12,
+ 103,103,28,85,28,74,74,74,74,84,112,23,64,64,59,23,
+ 64,112,64,64,64,64,64,64,59,59,64,59,64,59,64,59,
+ 64,59,64,59,112,59,64,59,112,0,0,0,76,89,78,52,
+ 74,84,39,39,39,81,55,81,55,55,47,47,111,99,80,38,
+ 38,38,29,36,126,126,111,79,
+ 49,86,93,33,33,33,56,56,93,93,86,93,86,93,86,93,
+ 86,93,93,86,85,51,17,2,102,32,109,16,85,16,41,85,
+ 41,124,0,23,97,14,21,21,64,64,64,64,64,21,98,98,
+ 9,9,88,9,97,0,70,65,65,65,91,70,70,91,70,70,
+ 70,84,70,84,84,84,84,74,74,74,119,74,28,85,103,103,
+ 12,103,49,49,49,60,60,60,60,123,60,123,60,60,86,60,
+ 60,60,60,60,49,49,49,49,49,49,49,49,49,49,49,60,
+ 60,60,31,60,60,49,118,54,12,12,103,103,52,103,52,52,
+ 52,28,119,119,74,74,74,74,70,74,64,64,64,64,64,59,
+ 64,67,112,64,64,59,64,64,64,64,59,64,59,23,59,64,
+ 59,23,59,23,59,64,59,59,112,0,0,0,58,54,78,28,
+ 70,91,39,55,15,15,55,15,15,15,55,47,111,99,80,80,
+ 50,50,29,82,120,126,111,19,
+ 49,86,93,33,33,56,56,56,93,56,93,93,93,93,93,93,
+ 93,86,93,86,41,102,17,121,102,114,109,109,16,109,114,32,
+ 91,122,101,55,24,24,18,9,21,64,64,64,64,14,98,98,
+ 9,6,108,26,24,26,0,0,91,91,91,91,70,91,91,91,
+ 91,84,91,91,91,84,84,84,84,74,74,74,52,119,52,103,
+ 103,103,54,49,49,49,60,60,60,60,31,123,123,60,60,60,
+ 86,60,60,60,60,49,12,12,12,12,49,12,49,49,60,60,
+ 60,60,60,60,60,118,54,12,103,52,52,28,119,28,119,74,
+ 119,74,74,74,74,74,84,74,74,74,112,112,59,64,64,64,
+ 64,64,64,67,64,23,64,112,64,59,23,59,64,59,112,0,
+ 112,59,64,59,64,59,64,64,90,0,0,0,58,89,28,28,
+ 124,91,39,39,15,15,15,15,55,15,15,51,111,111,99,99,
+ 80,80,38,82,36,126,111,79,
+ 49,123,56,33,33,33,93,93,93,93,93,86,93,93,93,93,
+ 13,93,13,86,85,51,17,121,10,32,122,122,122,122,0,6,
+ 108,9,6,9,1,24,17,26,108,88,9,88,6,18,24,2,
+ 10,114,114,16,91,25,41,31,79,40,0,65,91,39,39,91,
+ 65,65,65,91,39,91,65,84,70,84,74,74,74,52,52,103,
+ 12,12,12,118,60,60,60,60,31,123,123,31,86,31,86,31,
+ 60,86,60,60,60,49,49,12,12,103,12,12,49,49,49,49,
+ 60,60,60,49,49,12,103,52,52,52,28,85,28,119,74,119,
+ 74,74,74,74,84,84,74,109,84,84,0,64,23,64,64,64,
+ 23,64,64,64,64,64,67,64,67,112,59,112,59,59,59,64,
+ 59,64,59,67,112,112,112,90,0,0,0,0,58,54,73,28,
+ 70,91,39,15,55,15,55,39,39,81,55,15,47,55,55,111,
+ 99,80,38,29,36,126,55,19,
+ 49,60,13,56,56,93,93,86,13,86,13,13,86,86,86,86,
+ 13,86,86,60,119,51,29,116,111,101,55,55,111,111,26,75,
+ 75,25,6,64,21,21,23,14,14,98,9,6,26,17,16,31,
+ 20,94,20,20,95,20,20,94,94,46,94,10,65,91,91,39,
+ 91,39,91,84,91,91,84,84,70,84,84,74,119,52,52,103,
+ 103,12,49,54,60,19,60,60,60,31,123,123,60,31,60,60,
+ 60,31,60,60,60,60,49,49,49,49,49,49,49,49,49,49,
+ 49,12,118,103,103,103,52,74,119,74,84,84,74,74,74,74,
+ 74,74,84,74,74,84,74,74,74,74,74,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,48,78,28,74,
+ 70,91,39,39,39,91,39,39,55,39,55,15,51,47,55,111,
+ 111,121,50,29,36,126,111,19,
+ 103,49,86,13,13,13,86,86,13,86,86,86,86,86,86,86,
+ 123,123,76,49,84,121,82,50,80,111,111,99,99,80,80,0,
+ 9,26,24,108,88,17,2,122,41,19,95,125,94,94,94,94,
+ 94,94,94,94,46,46,94,125,117,95,10,127,91,91,91,70,
+ 84,70,84,70,84,84,70,84,84,74,74,84,74,85,103,103,
+ 12,49,12,49,49,60,60,60,123,60,60,31,60,31,60,60,
+ 123,86,86,123,86,86,60,60,49,49,49,12,103,103,103,103,
+ 41,52,119,52,74,74,84,84,91,84,84,84,32,39,32,39,
+ 32,84,84,84,84,74,74,74,74,74,74,74,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,58,54,73,124,
+ 70,39,39,39,55,39,55,15,39,55,47,55,111,111,111,99,
+ 80,80,50,29,126,36,55,118,
+ 103,49,86,93,93,93,86,93,86,86,13,86,86,86,86,86,
+ 123,60,58,54,114,80,45,29,50,38,50,50,50,38,80,50,
+ 99,99,0,14,0,14,21,98,98,9,9,9,9,9,108,88,
+ 88,6,88,14,67,0,0,91,91,91,91,91,91,70,70,70,
+ 74,74,74,28,74,74,28,28,74,52,52,52,52,103,12,49,
+ 12,49,49,60,60,60,60,60,86,60,60,60,60,86,123,123,
+ 123,31,31,31,31,31,49,49,49,12,118,12,103,52,28,74,
+ 74,28,74,124,74,124,74,124,84,70,84,91,84,84,84,84,
+ 84,84,84,119,74,74,74,28,28,52,52,28,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,58,78,103,74,
+ 70,91,39,39,15,15,55,15,55,15,51,47,55,99,111,111,
+ 80,80,50,29,36,126,10,118,
+ 103,49,86,93,93,93,93,93,93,13,86,86,86,86,60,123,
+ 123,58,49,4,39,50,36,36,29,50,50,50,38,50,50,80,
+ 80,111,15,15,101,91,70,70,114,70,16,74,74,74,74,28,
+ 124,74,28,28,28,28,70,70,74,70,70,74,28,74,74,28,
+ 52,28,52,52,78,103,103,103,12,12,12,54,49,49,60,49,
+ 60,60,60,60,60,60,86,60,86,86,123,86,31,123,31,60,
+ 60,31,31,19,118,118,118,54,12,78,78,4,28,28,28,28,
+ 28,124,28,28,62,28,62,52,62,28,28,28,28,74,74,74,
+ 85,119,52,85,52,85,52,52,52,28,78,52,28,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,54,58,78,28,28,
+ 70,39,39,55,15,55,81,55,55,55,55,55,111,111,121,111,
+ 80,116,50,127,36,126,55,19,
+ 49,60,13,93,56,93,93,86,86,86,86,86,86,60,60,60,
+ 49,54,12,52,55,29,36,36,82,38,38,80,99,99,47,47,
+ 15,39,91,70,70,74,74,124,74,74,124,28,28,28,28,52,
+ 28,52,28,28,28,52,28,28,28,52,28,28,52,78,103,52,
+ 78,54,78,54,54,54,49,54,54,60,60,60,76,76,123,123,
+ 60,123,60,86,86,86,86,86,123,123,31,123,31,60,19,19,
+ 54,54,78,54,78,78,78,78,78,78,52,73,52,73,52,73,
+ 28,62,62,28,73,52,73,78,78,78,78,78,78,12,78,103,
+ 54,103,103,103,52,103,52,52,52,52,78,78,78,78,78,4,
+ 78,4,78,52,78,52,78,4,78,78,78,78,78,78,78,4,
+ 78,52,78,52,52,78,52,78,78,78,78,54,54,78,28,74,
+ 84,39,39,55,55,15,55,55,55,15,55,55,51,55,111,51,
+ 111,80,50,82,36,126,51,118,
+ 49,86,93,56,56,93,93,93,93,93,86,86,86,86,60,118,
+ 54,103,52,70,47,82,120,36,11,50,80,99,47,27,91,70,
+ 124,62,78,78,78,78,78,52,78,78,52,78,78,78,52,78,
+ 78,78,52,103,4,78,78,78,78,89,54,54,54,54,58,58,
+ 58,58,76,76,76,76,117,86,117,117,123,117,123,13,117,13,
+ 13,13,13,86,86,86,86,86,60,123,76,58,58,58,89,54,
+ 54,89,54,78,78,89,78,89,78,73,89,73,89,73,89,78,
+ 89,78,78,78,73,78,78,78,78,54,54,58,60,76,123,123,
+ 123,76,60,54,49,54,54,54,54,58,54,58,58,58,58,58,
+ 58,58,58,58,58,58,58,58,60,58,76,58,60,58,58,58,
+ 58,58,54,58,89,54,89,54,54,54,58,54,54,78,52,74,
+ 74,84,39,39,39,71,39,55,15,55,55,55,55,55,55,51,
+ 111,121,80,29,45,126,55,19,
+ 49,86,93,33,33,33,56,93,93,93,86,86,60,58,12,103,
+ 52,28,74,114,99,82,40,45,29,80,47,39,70,124,4,89,
+ 89,58,3,3,58,58,58,58,54,58,54,54,54,58,54,54,
+ 54,54,54,54,58,58,58,60,58,58,76,3,76,76,117,117,
+ 13,125,93,100,56,100,56,56,56,100,56,106,100,56,56,100,
+ 93,93,125,13,13,117,76,76,60,58,76,58,58,58,58,48,
+ 89,48,89,48,89,89,89,73,89,89,89,89,89,89,89,89,
+ 89,89,89,89,89,54,54,58,58,76,117,110,125,100,100,106,
+ 106,106,100,13,13,13,13,13,110,110,13,13,100,110,100,110,
+ 125,110,125,110,125,110,117,110,110,110,110,110,110,13,117,117,
+ 117,117,117,123,117,76,117,76,76,76,76,117,123,60,54,52,
+ 74,84,84,122,39,122,39,122,39,39,39,39,39,102,39,102,
+ 55,51,121,29,127,36,10,19,
+ 49,13,106,8,33,33,56,93,13,86,60,54,12,52,52,124,
+ 74,91,91,101,80,29,36,50,111,114,124,4,78,54,58,58,
+ 76,117,110,110,125,125,100,125,110,13,110,117,117,123,117,123,
+ 123,117,117,117,110,13,125,100,93,100,100,100,100,100,106,106,
+ 46,8,8,8,8,8,61,61,61,61,61,61,8,8,8,46,
+ 106,100,100,92,110,110,3,76,3,76,58,58,3,3,3,3,
+ 3,3,43,43,43,43,48,43,43,48,43,48,48,48,58,48,
+ 58,3,58,76,58,76,76,117,13,100,56,106,46,8,61,61,
+ 61,61,8,8,8,8,46,46,33,46,46,8,46,8,46,46,
+ 46,46,106,106,100,56,106,106,106,106,106,106,106,106,106,106,
+ 106,106,106,106,100,106,100,100,100,100,100,100,100,117,60,54,
+ 103,85,84,109,84,84,84,32,32,32,32,32,32,32,32,122,
+ 101,102,51,116,82,45,101,118,
+ 118,31,13,106,56,13,123,60,12,12,52,52,74,84,84,122,
+ 32,39,39,122,55,51,111,91,4,76,76,76,117,76,110,110,
+ 110,100,100,106,106,46,46,8,8,106,106,106,46,100,106,100,
+ 106,56,56,106,46,106,46,46,46,46,46,8,8,8,8,8,
+ 8,8,8,8,8,8,8,61,8,8,8,61,8,46,46,92,
+ 46,92,100,110,110,110,110,110,63,110,110,117,117,3,117,63,
+ 110,63,110,63,63,63,63,43,63,43,63,63,63,63,110,110,
+ 110,110,117,110,110,125,93,100,106,46,8,8,8,8,8,8,
+ 8,61,61,8,8,61,8,8,8,8,8,8,8,8,8,8,
+ 8,61,8,8,8,46,46,46,8,8,8,61,61,61,61,8,
+ 8,61,61,61,8,8,8,8,8,8,8,8,33,100,13,76,
+ 54,103,119,119,109,109,74,109,74,109,84,84,84,84,84,109,
+ 32,101,55,121,82,127,122,19,
+ 119,103,58,76,76,54,54,103,103,52,85,74,119,84,84,84,
+ 32,84,109,84,84,84,109,85,52,54,12,12,103,12,103,103,
+ 12,12,79,54,118,118,118,118,118,118,118,118,118,118,118,118,
+ 12,118,118,118,79,54,118,118,118,118,118,118,54,118,79,54,
+ 118,79,118,79,54,79,4,12,4,4,4,52,28,52,28,28,
+ 28,52,28,4,4,4,73,28,28,28,74,74,74,74,74,28,
+ 28,28,28,28,73,73,73,73,73,4,73,4,4,4,4,52,
+ 52,103,103,103,103,54,118,118,118,118,118,118,118,118,118,54,
+ 118,79,12,54,79,12,79,118,12,79,12,118,79,118,118,118,
+ 79,118,118,118,118,19,118,118,118,118,118,118,118,118,118,19,
+ 118,118,118,118,118,118,118,118,118,118,118,118,58,60,76,76,
+ 118,103,74,84,74,84,109,84,109,84,109,84,109,32,32,122,
+ 102,55,51,116,82,45,102,19,
+ 74,52,78,60,58,49,49,58,54,49,54,12,12,103,103,52,
+ 85,85,52,85,85,85,119,119,109,109,109,84,109,109,16,109,
+ 109,109,109,119,119,119,119,119,85,85,119,119,119,119,109,85,
+ 119,109,119,119,85,119,41,85,41,41,52,41,41,119,74,16,
+ 74,91,91,122,39,39,39,39,15,15,15,15,15,15,81,15,
+ 81,55,81,15,81,15,15,15,55,15,15,15,55,55,51,55,
+ 15,55,15,55,55,55,55,15,39,101,39,91,91,91,84,84,
+ 84,84,74,16,74,16,74,85,119,119,119,119,119,119,119,119,
+ 16,74,119,16,74,109,84,16,84,16,84,16,74,119,119,119,
+ 85,41,41,103,41,103,103,41,41,41,85,85,119,85,119,85,
+ 85,85,85,85,85,85,119,16,109,109,84,122,122,39,122,91,
+ 101,101,122,102,122,101,101,71,122,102,71,102,122,71,71,71,
+ 51,51,116,17,77,24,55,118,
+ 119,103,60,123,86,117,86,123,86,123,86,60,60,49,49,49,
+ 103,103,103,85,119,109,109,109,109,109,119,109,109,109,109,109,
+ 109,109,119,109,109,109,109,109,109,109,109,109,32,109,109,109,
+ 32,109,32,122,122,122,122,39,122,122,122,122,122,91,122,101,
+ 101,15,55,15,111,111,111,47,111,111,111,111,99,99,80,80,
+ 99,47,99,47,99,47,47,111,47,47,111,47,111,111,47,111,
+ 111,15,55,15,55,15,55,101,101,122,122,122,32,109,32,109,
+ 109,16,16,16,119,119,119,119,119,16,109,109,109,109,109,109,
+ 109,109,109,109,109,109,109,109,109,109,109,32,109,84,109,109,
+ 109,109,109,109,109,109,109,109,32,32,122,122,71,71,71,122,
+ 71,71,122,122,122,122,122,71,122,101,55,55,55,55,111,51,
+ 51,55,111,111,51,51,55,55,102,39,71,122,32,122,122,71,
+ 71,102,121,116,127,45,102,19,
+ 12,49,13,100,93,93,93,13,13,13,13,86,86,60,12,12,
+ 103,119,109,109,32,32,32,32,109,109,109,109,109,32,32,109,
+ 32,32,32,32,32,32,32,32,32,32,71,32,71,102,55,51,
+ 51,51,51,121,121,80,116,116,80,80,80,99,99,111,111,47,
+ 111,111,47,111,47,99,111,47,99,47,99,99,99,99,99,80,
+ 80,80,80,80,121,99,111,111,111,55,51,55,55,55,55,55,
+ 55,55,55,15,102,101,101,122,122,32,32,32,84,109,109,109,
+ 109,109,109,109,109,109,109,109,109,109,109,109,32,109,32,109,
+ 109,32,32,32,32,32,32,32,32,32,32,71,71,71,122,32,
+ 71,32,71,32,71,71,71,71,71,71,51,71,51,51,51,51,
+ 51,51,51,51,51,51,102,102,51,102,55,55,15,55,55,15,
+ 51,55,55,55,55,102,102,122,122,32,32,32,32,32,32,32,
+ 71,71,51,121,82,127,122,19,
+ 49,123,93,33,33,106,56,93,93,13,86,60,49,12,85,109,
+ 32,32,71,71,32,71,71,32,71,32,71,71,71,71,71,71,
+ 71,71,71,51,71,51,51,51,121,51,51,121,121,121,116,80,
+ 50,50,50,50,29,29,11,29,82,29,29,50,50,38,80,80,
+ 38,80,80,80,80,80,80,50,80,50,80,80,80,80,80,80,
+ 121,80,121,121,111,111,111,51,51,111,55,111,51,51,51,51,
+ 51,55,55,102,102,71,71,102,122,122,122,122,32,32,32,109,
+ 32,109,32,109,32,32,122,71,71,71,71,71,71,71,71,71,
+ 71,71,71,71,71,51,71,51,51,51,51,51,51,51,51,51,
+ 71,51,71,51,71,71,51,71,51,71,51,51,51,51,51,51,
+ 51,51,51,51,51,51,51,51,51,51,51,55,55,55,55,55,
+ 55,55,55,55,102,102,71,71,122,122,32,32,32,32,32,32,
+ 122,71,102,116,82,127,122,19,
+ 19,95,93,33,33,56,56,93,86,60,49,103,109,109,71,71,
+ 51,71,51,71,51,71,71,51,71,51,102,51,51,51,51,51,
+ 51,121,51,121,121,121,116,121,116,50,50,50,29,29,29,29,
+ 29,29,82,11,29,82,29,11,29,11,29,29,50,29,50,50,
+ 50,50,38,50,38,80,80,50,80,80,116,116,80,121,111,121,
+ 121,111,121,121,121,51,121,51,51,51,51,51,51,111,51,51,
+ 111,121,51,51,51,51,51,51,51,51,71,102,102,71,51,71,
+ 102,51,102,51,51,51,51,121,121,121,121,121,121,116,121,116,
+ 121,121,121,121,51,121,51,121,51,51,51,51,121,51,121,121,
+ 121,121,121,121,121,51,121,51,51,51,51,51,51,51,51,121,
+ 121,121,121,121,121,121,51,51,51,51,51,51,51,51,51,51,
+ 51,51,51,51,51,55,55,102,71,102,102,71,71,71,71,102,
+ 51,51,121,17,127,97,55,118,
+ 49,86,93,33,56,93,86,49,103,119,109,71,71,51,51,51,
+ 121,121,121,121,121,121,51,121,51,51,51,51,51,121,121,121,
+ 121,121,121,116,116,29,50,29,29,29,29,29,29,29,29,82,
+ 82,82,29,82,82,11,82,82,29,29,29,50,29,38,29,29,
+ 50,50,50,50,50,116,50,80,50,116,80,50,121,116,121,121,
+ 121,121,121,111,51,121,51,51,121,121,121,121,121,121,80,121,
+ 116,121,116,116,80,121,121,121,121,121,121,121,121,121,121,121,
+ 121,116,116,25,116,116,17,17,17,17,17,17,17,17,116,116,
+ 29,116,116,116,116,116,116,116,116,116,116,116,116,116,116,29,
+ 29,116,29,116,29,116,116,116,116,116,116,116,116,116,116,116,
+ 116,116,29,116,29,116,116,116,116,121,121,116,116,80,116,116,
+ 80,121,121,121,121,121,51,121,121,51,51,121,121,121,121,121,
+ 116,116,29,45,126,42,51,118,
+ 12,118,60,13,49,41,109,71,51,116,116,116,17,116,113,116,
+ 82,116,29,17,29,17,29,29,29,17,82,29,29,29,82,82,
+ 82,82,82,82,45,45,45,45,45,45,45,126,45,126,36,36,
+ 36,126,36,36,45,36,36,45,36,36,45,36,45,45,82,36,
+ 45,127,82,82,127,127,82,82,82,82,29,82,29,29,17,29,
+ 29,29,29,29,29,29,29,29,29,29,29,82,82,82,127,127,
+ 45,127,127,127,45,127,127,82,127,127,113,82,113,82,127,127,
+ 127,127,77,77,77,77,77,77,77,77,77,77,77,127,77,77,
+ 127,77,127,77,127,127,77,127,77,127,77,77,77,77,77,77,
+ 77,45,77,45,45,77,45,77,45,77,77,77,77,77,77,126,
+ 77,126,77,126,77,77,77,45,45,45,82,127,82,127,82,82,
+ 127,82,82,82,82,82,29,82,82,82,82,82,82,127,45,127,
+ 45,45,45,42,44,44,121,79,
+ 109,109,122,102,121,17,127,77,77,77,77,77,77,77,77,77,
+ 77,77,72,77,126,126,77,126,42,77,126,77,42,42,126,126,
+ 126,42,40,42,126,42,42,42,42,42,40,42,40,126,72,42,
+ 42,126,42,42,42,126,126,126,126,126,126,126,126,126,126,126,
+ 126,126,126,126,36,126,126,126,126,126,97,126,126,126,126,126,
+ 126,126,97,126,97,42,126,42,126,42,42,126,42,40,42,42,
+ 42,40,42,42,42,42,126,72,77,126,126,77,72,77,72,72,
+ 72,72,72,72,72,72,72,72,72,72,72,77,77,77,77,77,
+ 42,77,42,126,42,42,126,42,42,42,42,126,42,40,40,42,
+ 40,40,42,40,42,40,42,40,42,40,40,40,40,40,42,44,
+ 72,44,44,44,44,40,40,40,42,42,40,42,42,42,42,42,
+ 42,42,42,126,42,42,42,126,126,42,126,126,40,126,40,126,
+ 42,42,42,42,44,44,111,79
+ };
+#endif
diff --git a/app/xlockmore/xglock/logo2.h b/app/xlockmore/xglock/logo2.h
new file mode 100644
index 000000000..f42793883
--- /dev/null
+++ b/app/xlockmore/xglock/logo2.h
@@ -0,0 +1,1209 @@
+/* GIMP header image file format (INDEXED): xlock/logo2.h */
+
+static unsigned int width = 200;
+static unsigned int height = 72;
+
+/* Call this macro repeatedly. After each use, the pixel data can be extracted */
+
+#define HEADER_PIXEL(data,pixel) {\
+ pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \
+ pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \
+ pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \
+ data ++; }
+
+static char header_data_cmap[256][3] = {
+ { 4, 3, 7},
+ { 61,232, 62},
+ { 39,149, 44},
+ {172, 49, 67},
+ { 17, 56, 22},
+ {229,226,223},
+ { 32,110, 37},
+ { 94, 25, 35},
+ {113, 46, 46},
+ { 22, 87, 27},
+ { 70,166, 74},
+ { 43, 11,142},
+ { 62,115,224},
+ { 37, 49,122},
+ { 71, 22, 27},
+ { 58,219, 58},
+ {195, 67, 75},
+ {108,102, 53},
+ {215,177,130},
+ {112, 53,157},
+ { 68, 53, 54},
+ { 54, 25, 13},
+ { 65, 82,113},
+ {171, 62, 82},
+ { 38, 65,139},
+ {115, 73, 53},
+ {101,103,120},
+ { 12, 32, 28},
+ { 62,204, 62},
+ { 65, 69, 67},
+ { 77, 60,126},
+ {166, 92, 30},
+ { 38, 10, 29},
+ { 93, 10,117},
+ { 76, 81,111},
+ {148,103,130},
+ {111, 66,154},
+ { 83,102, 96},
+ {235,230,224},
+ { 79, 81,155},
+ {109, 67, 94},
+ { 86, 60,171},
+ { 90, 55, 53},
+ {143, 10,147},
+ { 73, 44,127},
+ { 21, 26, 32},
+ {227,194,155},
+ {113, 75, 84},
+ { 63, 84, 87},
+ {108,103,172},
+ { 55, 8, 53},
+ {160,154,146},
+ {166,111, 60},
+ { 70,206, 70},
+ {208, 68, 67},
+ { 78, 48,171},
+ { 97, 20,117},
+ { 20, 22, 28},
+ { 89, 69, 50},
+ { 96,128,130},
+ {147, 84,107},
+ {236,236,237},
+ {151,106, 64},
+ {182,179,188},
+ {168,160,181},
+ { 47,179, 51},
+ { 66, 46, 77},
+ { 57,102,190},
+ { 28, 12, 24},
+ {110, 77,153},
+ { 41, 48, 58},
+ { 93, 31,169},
+ {132,108,133},
+ { 93, 67,121},
+ {176,124,157},
+ { 80, 80,133},
+ { 67, 14, 64},
+ { 58, 58, 96},
+ { 89, 82, 50},
+ { 49, 31,135},
+ { 67, 31, 61},
+ {113, 53, 80},
+ { 38, 34, 99},
+ { 44, 18,110},
+ {242,242,242},
+ {181,134, 81},
+ {190,131, 76},
+ { 13, 15, 21},
+ { 78, 60,151},
+ {108, 76,114},
+ {121, 32,123},
+ { 50, 87,176},
+ { 95, 50,131},
+ {111,120,127},
+ { 67, 30,185},
+ { 87, 70, 76},
+ {219, 71, 76},
+ {147, 84,165},
+ {233,206,169},
+ { 78, 89,131},
+ { 47, 69, 90},
+ { 74, 49,153},
+ {102,102,146},
+ {147, 66,113},
+ { 83,102,116},
+ { 55, 6, 78},
+ { 72, 70,126},
+ {150, 52, 99},
+ { 74, 58, 80},
+ {201,196,207},
+ {150,121,189},
+ {130, 84,112},
+ { 24, 48, 90},
+ { 66, 26,134},
+ { 22, 7, 22},
+ { 89, 33,110},
+ {214,136, 98},
+ {111, 86,182},
+ { 53,204, 55},
+ { 91, 45, 97},
+ {129,133,184},
+ {172, 21,163},
+ { 61, 60,125},
+ {132,107, 70},
+ {170,113,125},
+ {210,209,214},
+ { 96, 85,111},
+ { 55, 20, 97},
+ {193,149, 97},
+ {107, 88,116},
+ {175, 69,182},
+ {124, 28, 59},
+ {216,182,193},
+ {144,126,206},
+ { 41, 20, 69},
+ {110, 44,111},
+ {120,105,118},
+ {108, 89,145},
+ { 57, 69,101},
+ { 94, 35,148},
+ {152, 50,157},
+ { 70, 24,102},
+ {148, 85, 34},
+ { 80, 47, 95},
+ { 93, 68,148},
+ { 86, 94, 89},
+ { 34, 33, 42},
+ { 88, 49,127},
+ { 58, 83,148},
+ { 42, 60, 94},
+ { 92, 90,134},
+ {148,124,134},
+ { 9, 10, 16},
+ { 88, 91,156},
+ {254,254,254},
+ {219,219,219},
+ { 91, 11, 84},
+ { 96, 80,134},
+ { 90, 62, 92},
+ { 85, 70, 99},
+ {148, 67,161},
+ {208,165,115},
+ {112, 66,123},
+ {230,202,166},
+ { 82, 82, 86},
+ { 62, 64,157},
+ {194,102,210},
+ {111, 88, 85},
+ { 70, 30,162},
+ { 58, 48,161},
+ {137, 51,119},
+ {202, 79,179},
+ { 82, 94,110},
+ {245, 78, 78},
+ { 96, 84, 87},
+ {112, 32,114},
+ {130,110,177},
+ { 74, 58,101},
+ { 36,134, 41},
+ {113,128, 90},
+ { 61, 70,126},
+ { 74, 69,168},
+ {110, 66,193},
+ {172,122, 71},
+ { 89, 32, 79},
+ {119, 10,126},
+ {106,114,120},
+ { 18, 6, 14},
+ { 84,101,140},
+ {146,146, 78},
+ { 65, 46,100},
+ {130, 90,145},
+ { 69, 34, 86},
+ { 98, 70, 99},
+ {113, 88, 50},
+ { 39, 33, 74},
+ {194,181,219},
+ { 93, 81,161},
+ { 70, 36,138},
+ {202,122,158},
+ {120,104,148},
+ { 91, 54, 95},
+ { 96, 50,174},
+ {148,132, 80},
+ { 82, 71,127},
+ { 39, 21, 32},
+ {169, 89,111},
+ {126,130,128},
+ { 54, 34, 64},
+ {131, 65, 94},
+ {136, 45,149},
+ { 89,104,163},
+ {140, 30,132},
+ { 79, 70,151},
+ { 13, 16, 48},
+ { 74, 52,126},
+ { 71, 13,101},
+ {129, 86, 88},
+ { 57, 48,128},
+ {101, 9,158},
+ { 17, 22, 73},
+ { 44, 47, 91},
+ {143, 51, 50},
+ { 82, 90,112},
+ {104, 34,115},
+ {193,105,121},
+ {111, 55,111},
+ { 69, 70, 97},
+ { 66, 83,133},
+ {145,146,170},
+ {120, 88,110},
+ {234,207,175},
+ {116,124,175},
+ {108,104, 87},
+ {169, 51,135},
+ { 58, 10,184},
+ { 89, 50,154},
+ { 87,117,134},
+ {108, 87,165},
+ {226,122,134},
+ {114,103,119},
+ { 82, 98, 74},
+ { 91, 70,170},
+ { 70, 35,107},
+ { 7, 6, 21},
+ { 90, 80,136},
+ {102,114,146},
+ {110,112,216},
+ { 29, 14, 68},
+ {110, 31, 65},
+ { 53, 30, 47},
+ { 67, 11,145},
+ { 86, 82,110},
+ { 17, 33, 72},
+ { 55, 33,101},
+ {255,255,255}
+ };
+static char header_data[] = {
+ 29,221,11,113,77,77,82,190,208,79,190,108,254,44,108,77,
+ 227,227,29,138,77,77,177,254,79,108,66,254,243,77,190,82,
+ 254,108,218,190,77,254,77,190,254,83,254,254,20,190,108,227,
+ 77,82,190,177,192,243,143,143,216,115,108,95,108,108,95,66,
+ 184,141,216,56,33,115,115,158,143,115,177,66,243,177,177,192,
+ 158,190,44,127,127,243,190,254,243,251,127,44,108,227,177,177,
+ 227,77,22,29,82,11,221,77,100,149,112,82,77,82,100,149,
+ 82,149,4,24,112,82,248,82,82,83,11,127,82,127,11,77,
+ 100,195,11,79,20,77,82,190,208,79,190,108,254,44,108,77,
+ 227,227,29,138,77,77,177,254,79,108,66,79,243,77,190,82,
+ 254,108,190,218,77,254,77,190,254,83,254,254,20,190,108,227,
+ 77,82,190,177,192,243,143,143,216,115,108,95,108,108,95,66,
+ 184,141,216,56,33,115,115,146,
+ 237,181,94,176,252,181,55,182,41,55,117,49,242,191,240,242,
+ 49,49,246,188,153,49,41,19,117,137,44,94,182,137,176,69,
+ 49,245,198,213,245,197,129,88,44,71,191,49,49,236,176,59,
+ 93,93,232,41,35,97,74,176,185,130,124,151,72,157,72,69,
+ 160,160,140,130,166,199,128,229,117,160,35,176,97,160,160,210,
+ 191,191,176,139,110,110,182,176,110,139,133,229,179,237,94,202,
+ 102,247,247,188,213,182,247,211,153,181,169,94,169,169,247,180,
+ 149,67,67,91,39,169,11,198,24,79,169,232,232,247,99,59,
+ 59,88,94,191,252,165,55,182,41,55,117,49,242,191,240,242,
+ 49,49,246,211,153,137,182,202,191,137,101,168,182,200,176,117,
+ 49,157,169,242,157,197,129,41,44,71,191,49,49,236,176,59,
+ 93,93,232,41,35,97,74,176,185,130,124,151,72,157,72,69,
+ 160,160,140,130,166,199,128,240,
+ 180,101,94,94,181,180,88,182,182,41,213,49,88,157,69,55,
+ 49,197,49,49,49,242,94,182,151,49,41,242,148,253,82,220,
+ 137,252,153,49,150,242,242,236,36,71,72,26,75,101,93,59,
+ 246,246,204,242,117,44,117,49,210,140,140,47,72,164,200,69,
+ 19,19,90,166,107,74,151,151,176,97,97,97,130,160,97,210,
+ 49,110,191,182,110,176,117,176,153,117,207,179,186,181,169,200,
+ 93,104,39,247,232,246,246,67,99,165,181,165,197,39,49,148,
+ 246,237,48,13,235,235,94,39,148,94,181,237,91,246,34,180,
+ 148,88,94,55,181,165,213,182,182,41,213,49,88,157,69,55,
+ 49,197,49,49,49,242,94,182,110,137,242,242,200,49,41,144,
+ 49,150,102,247,137,197,242,236,36,71,72,26,75,101,93,59,
+ 246,246,204,242,117,44,117,49,210,140,140,47,72,164,200,69,
+ 19,19,90,166,107,74,151,20,
+ 79,41,202,101,126,77,79,235,168,242,39,39,213,197,55,71,
+ 242,55,238,197,165,44,120,70,108,221,253,253,220,13,27,0,
+ 0,195,34,180,215,204,198,30,245,88,240,223,106,236,129,104,
+ 22,75,88,88,115,69,191,93,36,226,35,62,174,243,147,111,
+ 230,47,209,160,35,128,203,186,176,191,191,97,71,71,97,35,
+ 186,136,238,182,117,30,150,246,237,188,59,37,181,169,41,129,
+ 102,93,228,180,228,148,188,67,237,188,148,24,104,188,99,24,
+ 24,165,13,11,235,94,99,172,180,79,181,228,24,153,218,83,
+ 169,55,55,101,126,77,79,235,168,242,39,39,213,197,55,71,
+ 242,55,153,153,165,169,41,242,26,75,197,153,26,213,44,144,
+ 150,252,252,106,30,242,44,30,157,88,200,145,106,236,129,104,
+ 22,75,88,88,115,69,191,93,36,226,35,62,174,243,147,111,
+ 230,47,209,103,35,85,207,146,
+ 190,94,235,44,20,79,83,168,236,238,39,165,88,55,94,242,
+ 101,101,245,204,26,27,70,87,152,214,152,220,220,91,12,91,
+ 152,0,187,221,221,204,190,164,145,22,34,48,106,198,44,254,
+ 122,213,144,44,113,162,129,129,92,92,89,230,201,56,139,92,
+ 73,111,135,175,19,151,186,72,93,89,69,191,160,191,93,136,
+ 179,129,157,215,144,102,93,186,172,172,37,227,190,213,202,101,
+ 106,150,169,213,99,104,237,104,148,148,165,82,148,24,24,13,
+ 13,165,165,169,79,67,104,99,180,169,75,22,24,228,106,181,
+ 215,235,11,44,20,79,83,168,236,238,39,165,88,55,94,242,
+ 101,101,157,204,30,213,242,197,150,150,39,75,204,169,101,242,
+ 106,180,34,122,180,252,215,126,241,22,34,172,122,44,44,254,
+ 122,213,144,44,113,162,129,129,92,92,89,230,201,56,139,92,
+ 73,111,135,139,19,151,233,146,
+ 11,235,202,157,221,83,243,79,113,215,213,213,169,94,101,204,
+ 215,101,150,164,45,87,214,214,253,214,214,24,12,12,12,12,
+ 67,112,0,0,87,77,195,108,48,227,138,227,218,147,139,101,
+ 177,213,218,113,251,139,191,215,144,126,233,136,115,135,191,167,
+ 89,135,219,56,36,203,123,233,129,89,240,136,174,233,186,93,
+ 150,137,73,204,129,26,186,104,106,228,99,215,101,144,44,39,
+ 188,223,169,153,104,104,22,138,218,218,218,169,165,169,79,79,
+ 24,165,122,169,169,228,148,24,24,79,83,79,79,55,41,169,
+ 113,235,55,159,190,83,243,79,113,215,213,213,169,94,101,245,
+ 44,236,137,245,213,39,242,157,106,150,88,88,88,218,88,75,
+ 75,99,227,122,106,204,254,164,241,22,138,22,218,147,139,101,
+ 177,213,218,113,251,139,191,215,144,126,233,136,115,135,191,167,
+ 69,135,185,56,36,203,123,146,
+ 113,168,137,126,190,79,218,11,83,55,144,242,198,236,39,245,
+ 198,180,146,87,244,244,214,152,214,24,12,12,12,12,12,12,
+ 12,12,24,152,0,114,82,221,100,77,218,100,218,41,115,145,
+ 26,159,30,157,41,36,137,126,233,137,89,201,115,230,167,159,
+ 159,119,210,19,230,207,179,93,240,72,240,240,129,240,37,252,
+ 252,26,157,150,233,145,188,37,106,204,22,254,55,198,30,237,
+ 104,213,101,153,75,24,82,79,79,242,157,44,122,169,169,165,
+ 13,79,11,169,165,67,228,24,106,168,235,168,113,235,113,55,
+ 198,113,150,252,218,79,218,11,83,55,144,242,198,55,245,75,
+ 198,101,150,204,181,245,39,99,213,153,44,94,236,197,39,99,
+ 150,172,172,180,122,218,83,106,180,122,122,138,101,92,44,150,
+ 233,227,30,157,41,36,137,126,233,137,89,201,115,230,167,95,
+ 159,119,19,210,230,207,186,146,
+ 44,197,49,153,122,218,218,79,251,168,101,215,236,197,126,232,
+ 70,0,244,0,152,152,214,24,12,12,12,12,12,12,12,12,
+ 12,12,12,91,214,0,0,77,82,221,106,77,254,113,113,145,
+ 22,34,122,198,30,129,150,223,126,243,224,139,193,17,145,177,
+ 193,201,210,226,72,179,186,129,126,230,137,126,201,230,129,40,
+ 240,167,129,30,252,223,75,22,245,213,228,30,144,122,150,237,
+ 188,218,215,150,39,169,153,157,169,197,122,13,39,181,99,104,
+ 213,94,94,213,75,99,228,39,148,83,168,88,88,55,144,102,
+ 41,41,197,150,77,218,218,79,251,168,236,215,55,157,245,39,
+ 55,242,157,242,181,213,39,106,39,181,55,88,157,245,180,99,
+ 75,22,227,180,106,165,218,204,122,122,204,138,79,198,113,26,
+ 22,34,30,198,30,129,150,223,126,243,224,139,193,17,145,177,
+ 193,226,90,162,123,179,233,146,
+ 82,102,211,153,122,198,11,11,235,41,39,144,55,88,223,152,
+ 0,0,244,244,112,91,12,12,67,91,67,24,24,91,12,12,
+ 12,12,12,12,12,112,0,0,205,221,77,221,79,147,106,223,
+ 138,30,147,254,26,241,26,44,251,147,129,126,126,126,158,243,
+ 119,90,219,170,123,240,233,167,119,162,150,157,144,240,233,204,
+ 126,30,201,215,157,34,30,30,252,198,99,34,104,228,237,99,
+ 106,198,204,104,180,55,242,75,204,181,198,213,228,165,228,180,
+ 13,94,242,211,22,101,113,79,165,94,101,228,39,144,159,164,
+ 218,153,172,153,215,198,11,235,235,101,153,144,139,213,88,169,
+ 41,75,202,71,165,88,144,215,213,101,198,153,150,75,228,99,
+ 204,88,254,77,180,106,13,34,75,181,227,77,168,215,106,172,
+ 138,30,147,254,26,241,26,44,251,147,129,126,126,126,158,243,
+ 147,90,219,19,72,233,167,146,
+ 218,153,49,204,41,198,71,71,251,88,213,55,34,45,0,244,
+ 244,152,253,91,67,24,253,253,253,214,214,214,244,0,0,220,
+ 112,67,12,12,12,12,24,214,0,0,149,221,243,218,34,48,
+ 190,198,113,190,227,227,147,216,162,191,158,190,126,95,143,201,
+ 224,33,56,97,17,167,230,252,115,230,240,145,129,129,129,252,
+ 145,157,177,159,150,150,106,218,30,88,252,106,34,180,99,180,
+ 218,73,150,188,180,213,204,228,101,169,150,188,39,180,106,165,
+ 181,41,55,99,99,181,55,150,39,44,197,39,181,168,144,204,
+ 122,245,153,30,88,198,168,71,251,88,213,55,236,242,181,41,
+ 55,202,168,202,137,102,197,153,153,181,204,145,223,150,39,77,
+ 168,198,198,213,30,218,165,180,228,180,22,122,101,44,150,48,
+ 215,198,113,190,227,227,147,216,162,191,158,190,126,95,143,201,
+ 224,33,185,60,17,174,129,57,
+ 215,41,41,113,168,251,71,71,71,55,169,29,244,0,0,244,
+ 253,91,12,91,220,244,152,244,244,214,0,0,244,244,0,244,
+ 244,244,214,112,12,12,12,67,253,244,0,214,221,82,34,100,
+ 79,236,71,251,216,139,71,115,47,162,44,157,95,177,119,119,
+ 219,185,97,62,233,167,89,157,89,240,174,174,230,159,157,104,
+ 26,252,223,150,145,223,30,101,144,73,177,252,157,204,75,106,
+ 122,150,223,148,148,75,75,237,197,34,145,180,106,213,215,30,
+ 169,169,41,211,188,39,169,153,39,169,144,88,181,55,242,204,
+ 41,101,88,79,71,251,139,71,71,55,169,94,202,238,99,150,
+ 197,41,41,137,245,213,39,204,75,153,242,144,41,44,236,44,
+ 168,139,202,30,106,106,180,180,148,22,138,180,88,13,188,22,
+ 254,41,71,251,216,139,71,115,47,162,44,157,159,177,119,119,
+ 56,219,60,151,17,167,162,57,
+ 113,94,242,202,71,71,202,139,19,138,45,0,0,244,214,91,
+ 12,12,24,152,0,0,0,0,244,253,112,24,253,220,214,152,
+ 87,152,244,244,214,12,12,12,12,24,214,0,0,195,77,221,
+ 251,141,115,168,89,30,216,56,135,141,147,136,89,254,139,115,
+ 33,56,103,179,186,193,143,89,145,167,47,158,69,30,102,241,
+ 34,106,252,223,164,149,215,44,44,177,159,144,198,218,215,122,
+ 88,75,172,228,180,39,228,104,227,26,75,218,169,198,113,44,
+ 181,198,169,181,148,122,106,153,39,88,41,55,41,79,245,75,
+ 55,113,41,55,71,71,202,71,19,197,242,202,242,181,213,157,
+ 39,144,102,153,44,41,245,144,41,101,55,168,198,41,144,147,
+ 168,41,69,144,204,122,24,180,180,180,13,122,79,218,34,13,
+ 251,56,224,168,157,73,216,56,135,141,147,136,89,254,139,115,
+ 219,56,103,203,233,89,143,45,
+ 215,169,242,242,202,202,69,69,104,0,0,244,112,24,67,12,
+ 12,24,214,0,0,0,244,13,12,12,12,12,12,12,12,253,
+ 152,220,0,0,152,253,12,12,12,12,12,149,244,244,70,176,
+ 105,40,119,141,240,89,193,89,162,226,136,233,78,108,73,115,
+ 185,103,60,17,233,158,126,129,95,252,159,73,243,73,126,126,
+ 44,192,159,126,34,29,30,88,30,164,164,245,122,75,75,34,
+ 44,218,75,204,44,106,99,228,122,150,180,180,245,41,55,69,
+ 238,55,41,69,242,165,213,215,39,153,157,202,41,215,245,197,
+ 88,94,88,242,202,202,69,69,41,41,242,41,36,39,153,69,
+ 202,71,41,242,139,242,150,242,55,198,236,236,69,137,126,213,
+ 252,99,126,75,150,75,77,165,180,122,221,218,79,30,177,79,
+ 216,111,135,113,136,89,162,89,162,201,136,233,78,108,158,115,
+ 185,103,111,233,233,177,193,146,
+ 88,182,49,242,202,202,30,45,0,0,253,91,12,12,12,12,
+ 24,214,0,214,244,214,12,12,12,12,12,12,12,12,12,12,
+ 27,253,214,244,244,214,12,12,12,12,12,12,67,45,0,152,
+ 83,115,192,193,167,158,41,190,113,89,186,145,159,108,192,141,
+ 210,209,191,17,145,119,174,145,77,89,89,73,30,102,164,215,
+ 226,147,158,77,77,122,243,243,30,126,215,254,30,99,106,75,
+ 79,213,204,101,83,218,223,106,218,165,30,245,41,55,198,137,
+ 144,94,41,19,41,197,153,242,197,153,39,236,200,49,99,137,
+ 197,181,117,242,202,202,36,69,89,197,137,69,144,197,213,71,
+ 94,168,242,41,202,19,168,168,19,69,117,242,197,245,75,39,
+ 188,223,22,180,180,106,195,214,152,0,0,0,244,57,195,251,
+ 251,44,115,230,167,193,88,215,113,89,186,145,159,143,192,80,
+ 210,170,217,17,145,143,47,57,
+ 122,242,117,55,236,227,152,0,0,13,12,12,12,12,12,12,
+ 253,87,244,220,0,91,12,12,12,12,12,12,12,12,12,12,
+ 12,24,253,0,0,214,67,12,12,12,12,12,12,12,112,0,
+ 0,141,227,164,29,127,141,115,144,126,240,26,34,20,108,192,
+ 175,56,217,233,174,92,167,104,126,157,147,158,174,129,215,201,
+ 89,30,129,34,106,177,127,115,95,159,190,101,126,223,75,99,
+ 44,102,223,198,198,145,172,228,34,106,197,88,55,41,197,211,
+ 102,153,242,55,242,153,99,197,242,39,39,101,137,188,172,242,
+ 242,213,213,169,202,202,41,41,197,137,137,19,101,153,197,71,
+ 202,242,150,144,182,219,219,19,102,200,69,41,242,197,197,39,
+ 34,138,122,218,248,244,0,51,125,5,61,155,109,229,0,0,
+ 105,198,157,145,164,192,216,0,0,159,233,26,48,20,215,192,
+ 90,56,35,17,129,201,126,146,
+ 88,238,238,202,37,244,244,253,67,12,12,12,12,12,12,67,
+ 13,152,152,244,220,12,12,12,12,12,12,12,12,12,12,12,
+ 12,12,27,244,0,214,12,12,12,12,12,12,12,12,12,91,
+ 152,0,29,252,127,243,226,40,89,174,145,37,145,164,215,141,
+ 56,156,35,17,174,40,89,227,78,201,113,89,145,245,243,162,
+ 95,164,164,227,122,44,251,135,89,190,251,44,158,227,34,227,
+ 218,172,223,215,157,104,172,22,165,122,215,198,236,102,186,213,
+ 213,102,242,41,136,59,211,153,137,211,188,181,49,153,165,41,
+ 144,242,238,236,69,182,182,197,137,102,39,71,144,102,69,71,
+ 69,102,150,182,69,55,97,72,186,102,99,238,137,126,150,150,
+ 213,30,254,244,0,109,61,84,84,61,61,61,5,5,155,51,
+ 0,68,29,95,113,115,0,84,61,0,29,241,145,164,215,141,
+ 56,156,35,194,174,158,126,57,
+ 30,117,238,70,0,244,82,91,12,12,12,12,12,12,12,12,
+ 253,214,244,244,253,12,12,12,12,12,12,91,27,112,67,12,
+ 12,12,12,12,91,24,12,12,12,12,12,12,12,12,12,12,
+ 12,70,87,0,216,115,115,216,215,73,73,252,58,190,141,33,
+ 219,56,123,78,78,89,92,113,119,44,143,129,159,215,108,157,
+ 164,29,73,215,147,141,113,167,174,113,113,73,204,34,34,218,
+ 138,228,223,227,223,37,22,22,218,180,106,101,144,200,197,168,
+ 41,242,204,188,93,59,237,213,153,246,153,213,238,197,30,69,
+ 36,197,157,139,182,242,197,197,69,182,139,41,238,238,55,71,
+ 69,145,245,94,19,144,238,191,36,236,204,197,242,69,238,197,
+ 75,221,0,145,5,61,61,61,61,5,5,5,5,5,155,125,
+ 63,29,0,208,141,175,0,84,61,38,0,66,29,143,141,216,
+ 219,56,17,194,78,89,119,68,
+ 44,242,242,146,187,131,14,82,91,12,12,12,12,12,12,12,
+ 91,152,0,244,214,24,12,12,12,12,12,112,0,244,220,91,
+ 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+ 67,91,59,187,105,216,76,42,174,159,44,198,192,127,192,81,
+ 56,56,217,95,201,158,119,40,193,143,147,201,243,143,193,73,
+ 126,164,159,215,159,215,159,174,95,141,92,89,164,34,227,106,
+ 228,180,106,122,106,228,228,228,213,99,181,44,41,102,75,88,
+ 153,102,211,246,237,246,213,168,88,245,211,153,238,88,242,150,
+ 41,41,242,236,36,102,211,238,242,55,182,69,157,181,139,202,
+ 137,145,213,71,69,102,150,240,240,200,200,137,236,147,144,150,
+ 177,0,207,61,84,61,5,125,125,109,109,125,155,155,5,5,
+ 125,63,145,0,105,156,0,84,125,125,84,0,205,127,192,81,
+ 56,56,167,95,201,226,243,205,
+ 101,117,117,45,244,16,23,187,152,180,12,12,12,12,12,12,
+ 12,112,244,0,214,12,12,12,12,12,67,214,0,244,244,152,
+ 24,12,12,12,12,12,12,12,12,12,12,12,12,12,12,48,
+ 112,29,65,0,76,143,81,167,78,159,40,73,158,243,201,201,
+ 33,224,230,167,73,201,143,193,233,201,201,115,92,162,42,66,
+ 164,164,29,177,159,177,159,108,66,143,193,252,164,228,75,227,
+ 30,165,213,165,180,228,22,172,204,39,181,88,88,188,188,102,
+ 59,59,211,211,39,153,236,202,197,117,238,181,88,39,49,238,
+ 144,117,197,117,197,49,211,102,197,41,137,137,157,213,144,144,
+ 238,153,181,113,36,137,204,137,204,197,144,202,139,144,238,188,
+ 114,26,61,84,61,155,63,164,57,0,0,152,93,63,5,155,
+ 155,109,63,164,68,226,0,84,125,64,5,154,0,134,143,201,
+ 156,224,230,167,204,201,66,205,
+ 122,49,197,205,187,96,173,222,187,244,13,12,12,12,12,12,
+ 12,12,152,214,244,253,12,12,12,12,12,112,244,0,0,0,
+ 244,220,112,12,12,12,12,12,12,12,12,12,12,91,100,70,
+ 53,15,9,187,250,250,250,58,29,158,192,226,40,108,108,143,
+ 33,226,47,58,108,158,193,226,162,243,19,139,36,47,158,95,
+ 108,48,29,66,215,159,204,190,44,201,177,159,164,34,138,218,
+ 221,254,77,122,75,150,104,22,198,79,165,101,144,39,211,211,
+ 237,59,99,39,153,242,251,71,150,153,242,215,245,102,153,30,
+ 88,238,242,238,102,211,26,102,144,41,137,137,197,197,245,69,
+ 150,102,242,88,137,102,197,150,41,117,69,144,69,200,186,70,
+ 0,5,84,61,155,229,152,114,20,77,221,221,20,87,229,155,
+ 5,155,63,63,0,250,0,84,155,64,155,61,38,0,66,66,
+ 33,209,47,58,108,158,226,57,
+ 204,238,242,205,187,96,173,173,16,187,0,146,67,12,12,12,
+ 12,12,112,244,214,0,220,12,12,12,12,12,112,0,0,0,
+ 0,214,24,12,12,12,12,12,12,12,12,91,27,45,9,1,
+ 1,1,9,32,205,205,250,29,108,66,143,72,109,154,154,154,
+ 154,154,154,196,143,109,154,154,154,154,154,154,154,154,154,154,
+ 154,154,192,176,154,154,154,113,139,44,157,61,154,229,218,34,
+ 88,213,34,106,75,204,39,180,235,41,137,101,242,246,102,197,
+ 211,211,246,109,154,154,154,154,61,64,238,181,246,186,150,197,
+ 153,197,181,102,102,197,99,153,144,157,238,36,69,89,88,238,
+ 172,150,144,144,102,150,242,144,139,36,137,104,26,26,102,244,
+ 63,84,61,125,207,152,195,83,208,108,254,44,115,216,32,207,
+ 155,5,125,63,229,187,0,84,155,51,155,5,63,0,66,192,
+ 33,209,58,42,143,158,92,114,
+ 180,197,242,146,187,54,173,173,173,96,68,0,152,24,12,12,
+ 12,12,12,214,244,244,0,0,91,12,12,67,91,0,0,0,
+ 244,24,12,12,12,12,12,12,12,91,4,152,70,1,1,1,
+ 15,15,4,187,146,146,205,20,66,141,109,154,154,154,154,154,
+ 154,154,154,109,119,132,154,154,154,154,154,154,154,154,154,154,
+ 154,154,190,176,154,154,154,216,141,119,63,154,109,190,215,157,
+ 44,30,34,99,213,218,101,165,235,242,150,144,238,153,106,41,
+ 153,153,120,154,154,154,154,154,154,154,63,213,26,104,39,41,
+ 150,144,88,102,153,215,117,197,41,236,55,55,144,236,55,238,
+ 188,137,202,204,159,218,101,55,219,19,150,104,237,26,227,0,
+ 61,84,155,109,152,57,134,216,215,193,190,108,177,243,119,205,
+ 51,5,155,109,63,0,0,84,155,64,125,61,0,57,208,127,
+ 33,217,47,193,143,135,141,114,
+ 227,41,55,214,187,96,173,173,173,173,173,114,0,187,146,12,
+ 12,12,12,24,244,244,0,0,0,0,152,220,0,0,0,0,
+ 112,12,12,12,12,12,12,91,27,244,152,2,1,1,1,1,
+ 15,1,152,248,57,45,134,250,80,35,154,154,154,125,230,80,
+ 56,47,217,72,184,115,56,216,224,191,154,154,154,109,158,95,
+ 108,143,243,72,154,154,154,113,36,229,154,125,245,159,106,215,
+ 127,218,99,99,196,154,133,181,101,153,104,245,150,172,153,157,
+ 102,242,120,64,211,211,102,154,154,154,154,229,188,188,99,41,
+ 188,55,44,153,188,30,19,242,197,197,242,238,144,55,242,150,
+ 237,69,115,204,188,245,238,197,236,191,102,186,172,150,66,51,
+ 84,61,109,207,87,221,215,158,215,252,22,164,159,201,108,95,
+ 45,125,38,125,63,233,0,84,125,64,155,0,57,250,208,80,
+ 56,47,25,158,184,115,56,114,
+ 106,94,242,57,0,173,173,173,173,173,173,173,114,114,244,244,
+ 91,12,12,12,67,87,244,0,244,0,0,0,0,0,112,91,
+ 12,12,12,12,12,67,100,152,0,9,1,1,1,1,1,1,
+ 1,1,152,114,205,45,205,205,105,154,154,154,155,66,143,216,
+ 135,25,143,115,141,224,135,226,162,123,154,154,154,109,158,158,
+ 66,113,115,200,154,154,154,47,72,154,154,64,34,227,190,218,
+ 236,204,188,180,196,154,229,150,126,188,188,188,153,228,102,204,
+ 102,165,197,211,188,153,39,229,154,154,154,229,188,99,75,245,
+ 197,198,242,64,109,196,196,176,238,232,109,109,176,69,150,99,
+ 172,236,71,238,126,204,144,144,150,237,172,26,245,215,214,125,
+ 84,125,109,70,195,218,30,243,44,157,164,252,30,147,143,159,
+ 20,179,61,155,63,51,0,61,155,64,125,5,0,250,243,216,
+ 135,25,184,115,141,224,224,68,
+ 215,41,246,214,0,96,173,173,173,173,173,173,96,32,14,187,
+ 187,148,12,12,12,12,67,253,244,244,244,0,244,67,12,12,
+ 12,12,12,24,112,87,0,9,15,1,1,1,1,15,1,1,
+ 1,15,0,187,68,45,134,248,191,154,154,154,240,192,135,251,
+ 81,40,184,40,92,209,92,47,89,167,154,154,154,109,40,66,
+ 127,201,92,35,154,154,154,164,154,154,109,34,164,190,44,30,
+ 44,215,204,122,109,154,229,237,37,228,99,150,242,41,197,101,
+ 242,237,246,188,39,39,242,155,154,154,155,49,153,188,99,211,
+ 181,41,211,246,155,154,154,63,120,84,154,63,144,150,197,101,
+ 165,169,236,69,204,213,213,137,26,37,104,172,88,30,87,5,
+ 84,109,109,45,208,77,126,193,144,108,177,190,159,252,204,193,
+ 143,146,61,5,109,64,0,84,155,64,155,109,0,250,184,251,
+ 81,40,192,40,135,162,226,205,
+ 169,117,237,87,114,96,173,173,173,173,173,173,173,54,32,222,
+ 14,244,220,67,12,12,12,12,12,12,12,67,12,12,12,12,
+ 12,112,27,27,0,45,28,1,1,1,1,15,1,1,1,1,
+ 1,15,244,114,57,146,205,208,72,154,154,154,201,143,7,156,
+ 209,81,56,135,135,111,111,162,201,47,154,154,154,109,95,66,
+ 115,147,105,110,154,154,154,63,154,154,229,30,215,44,113,41,
+ 101,213,34,204,109,154,229,228,88,169,99,153,88,88,150,75,
+ 102,237,211,211,211,197,242,154,154,154,63,39,188,211,211,153,
+ 55,242,211,181,64,154,154,155,63,154,154,202,144,197,150,197,
+ 153,69,55,242,204,197,197,150,172,34,104,104,204,159,152,38,
+ 84,125,63,87,108,227,129,193,30,164,108,243,95,34,177,143,
+ 190,87,38,5,109,63,0,84,155,64,125,0,205,250,14,33,
+ 209,81,56,81,135,217,89,205,
+ 44,117,211,87,187,54,173,173,173,173,173,173,173,173,16,114,
+ 3,23,244,152,91,12,12,12,12,12,12,12,12,12,12,112,
+ 220,214,244,152,10,15,1,1,1,1,1,1,1,1,1,1,
+ 15,65,0,68,57,45,250,208,136,154,154,154,119,141,184,219,
+ 60,35,97,35,135,25,167,201,40,194,154,154,154,109,58,77,
+ 115,147,73,229,154,154,154,154,154,154,155,144,215,122,106,126,
+ 109,154,154,154,154,154,154,154,154,154,109,148,165,188,49,39,
+ 150,237,211,246,211,49,154,154,154,63,165,181,39,148,153,188,
+ 88,197,153,165,182,109,154,154,154,154,176,182,55,41,102,102,
+ 102,153,101,144,150,75,213,204,197,30,106,150,106,30,0,155,
+ 38,125,64,152,66,227,147,127,143,129,147,251,184,254,83,243,
+ 66,57,5,5,109,64,0,84,125,64,155,0,127,127,184,219,
+ 8,175,33,209,135,47,47,57,
+ 79,242,102,87,114,54,173,173,173,173,23,173,173,173,173,16,
+ 114,3,173,8,244,253,12,12,12,12,12,12,12,24,253,70,
+ 87,0,9,28,1,1,1,1,1,1,1,1,118,27,1,1,
+ 1,4,244,57,68,68,205,205,136,154,154,154,8,158,81,219,
+ 163,154,154,46,56,111,25,58,40,193,154,154,154,109,215,243,
+ 177,158,201,207,154,154,154,125,154,154,154,196,190,204,75,22,
+ 109,154,154,154,154,154,154,154,154,154,109,153,188,102,197,41,
+ 153,237,211,102,232,154,154,154,63,148,148,153,99,39,188,188,
+ 101,41,153,106,157,133,154,154,154,196,139,69,236,137,245,153,
+ 99,39,165,30,26,150,122,242,236,79,218,108,21,21,21,142,
+ 52,52,31,21,21,21,21,21,21,21,21,21,21,21,21,21,
+ 21,21,31,183,52,142,0,61,155,64,125,0,21,42,119,185,
+ 217,249,90,103,56,111,58,205,
+ 79,181,197,57,114,3,173,173,173,173,152,7,96,173,173,173,
+ 16,187,3,173,23,114,214,24,12,12,12,12,112,112,220,152,
+ 57,65,15,1,1,1,1,1,1,1,2,4,4,4,1,1,
+ 15,27,0,114,114,114,134,76,162,154,154,154,163,58,119,33,
+ 109,154,154,132,56,111,58,42,192,143,154,154,154,196,216,115,
+ 95,20,127,176,154,154,154,216,154,154,154,154,64,150,172,99,
+ 22,150,113,30,109,154,229,92,168,126,237,99,39,144,55,71,
+ 150,237,211,246,154,154,61,211,104,99,188,67,228,99,99,165,
+ 198,165,242,213,236,202,155,154,154,125,191,144,198,117,75,150,
+ 172,75,88,165,99,106,39,197,215,177,106,21,161,5,38,231,
+ 231,231,98,46,46,46,18,18,161,161,161,161,18,18,18,46,
+ 18,46,18,46,46,18,0,84,155,51,155,125,0,66,80,33,
+ 194,81,170,90,56,217,42,57,
+ 198,197,242,68,50,131,173,173,173,23,187,0,187,14,96,173,
+ 173,16,114,131,173,54,205,152,24,67,12,91,27,152,0,6,
+ 28,1,1,1,1,1,1,15,1,65,152,0,27,15,1,1,
+ 15,87,214,114,68,32,134,50,156,125,154,154,154,123,216,90,
+ 109,154,154,196,226,35,25,184,127,108,154,154,154,196,115,58,
+ 95,254,215,151,154,154,154,19,191,154,154,154,155,26,252,122,
+ 30,88,254,126,109,154,133,215,159,233,37,228,242,41,251,71,
+ 157,188,120,154,154,61,197,211,67,99,188,153,99,229,154,154,
+ 154,120,213,165,235,196,154,154,154,154,196,144,144,117,137,172,
+ 99,39,213,245,106,213,153,213,213,150,252,21,38,231,98,46,
+ 46,18,18,161,161,128,128,86,183,183,183,183,183,86,85,85,
+ 85,128,85,128,86,86,0,84,155,64,125,155,109,0,141,175,
+ 194,119,90,175,19,62,25,68,
+ 198,49,238,87,14,7,173,173,173,7,68,0,0,0,187,222,
+ 173,173,54,32,7,173,54,14,114,244,4,9,0,87,2,1,
+ 1,1,1,1,1,1,1,1,15,87,87,0,9,1,1,1,
+ 15,0,248,68,248,205,192,76,115,160,154,154,154,154,163,74,
+ 231,154,154,132,60,123,47,184,81,81,154,154,154,132,89,42,
+ 66,216,201,110,154,154,154,193,143,155,154,154,154,196,106,30,
+ 101,177,106,104,109,154,229,150,252,26,22,99,204,144,55,182,
+ 137,228,154,154,154,154,154,154,154,154,154,229,91,229,154,154,
+ 154,229,117,101,133,154,61,155,154,154,154,240,73,41,157,99,
+ 39,88,204,252,122,218,39,213,153,75,106,21,38,98,98,46,
+ 18,161,161,161,128,128,85,183,52,52,52,52,52,183,85,85,
+ 85,86,85,128,86,183,0,84,155,63,5,38,0,205,76,210,
+ 81,185,185,210,60,123,40,68,
+ 79,242,242,57,156,14,173,173,173,205,187,187,187,187,0,0,
+ 7,16,173,54,205,7,96,173,8,87,6,2,65,1,1,1,
+ 1,15,9,15,1,15,1,1,9,152,152,87,15,1,15,1,
+ 65,0,114,68,68,21,208,105,119,56,97,5,154,154,154,154,
+ 154,154,154,132,47,123,81,135,135,224,154,154,154,109,201,108,
+ 141,251,184,72,154,154,154,122,177,136,61,154,154,154,64,30,
+ 44,150,172,172,196,154,229,48,22,227,99,153,122,41,213,245,
+ 26,102,154,154,154,154,154,154,154,154,154,229,180,232,154,154,
+ 154,133,41,238,125,154,133,55,109,154,154,154,236,147,150,26,
+ 75,169,204,34,169,169,153,106,150,22,48,14,38,98,98,46,
+ 18,18,161,161,128,128,85,183,183,52,52,52,183,183,85,85,
+ 85,85,85,85,86,86,0,84,125,63,155,87,250,76,33,185,
+ 185,43,43,234,47,123,119,68,
+ 79,197,246,87,131,50,173,173,173,187,0,187,187,0,0,0,
+ 0,187,222,173,54,14,21,54,222,57,6,1,1,1,1,178,
+ 87,27,9,1,1,1,1,178,0,0,0,178,15,1,1,1,
+ 2,0,187,114,32,134,76,216,135,47,123,123,230,132,132,132,
+ 132,132,199,74,123,25,40,170,175,249,109,109,196,74,230,42,
+ 156,143,174,72,109,132,63,147,159,215,200,109,109,109,109,200,
+ 101,126,48,99,229,109,93,138,48,213,106,213,79,101,91,153,
+ 153,39,109,109,109,125,125,109,196,196,196,49,94,153,109,109,
+ 196,232,211,64,109,133,238,150,176,196,109,109,232,75,164,104,
+ 197,165,34,99,228,39,213,88,75,122,122,21,38,98,98,46,
+ 18,161,161,161,128,86,85,183,52,52,52,52,183,183,86,85,
+ 85,128,128,128,85,85,0,84,125,109,61,125,0,76,185,43,
+ 43,103,60,86,123,47,226,205,
+ 94,197,211,152,131,32,173,173,173,3,7,0,0,0,0,0,
+ 0,0,0,187,7,3,249,76,222,57,4,15,15,1,118,4,
+ 0,152,2,15,1,1,65,0,0,0,4,1,1,1,1,1,
+ 9,0,114,114,205,208,250,141,185,135,47,230,162,90,43,121,
+ 225,206,170,124,194,47,184,156,209,217,58,42,216,33,147,126,
+ 167,78,29,77,192,216,251,201,159,177,66,227,29,227,48,77,
+ 190,106,34,13,254,245,153,148,180,198,168,101,55,153,188,49,
+ 39,242,182,157,188,211,91,165,169,41,55,181,242,117,181,242,
+ 94,242,153,181,242,197,137,39,242,94,19,75,228,106,204,213,
+ 106,106,223,99,122,122,169,215,36,113,143,14,38,98,163,46,
+ 18,18,161,161,128,128,85,183,183,52,183,52,183,183,85,85,
+ 85,85,85,128,86,183,0,84,155,109,38,125,63,0,185,121,
+ 225,206,107,35,194,47,184,114,
+ 113,41,213,87,131,32,173,173,173,173,173,23,32,32,0,0,
+ 0,0,0,0,0,7,173,3,222,45,152,2,1,1,15,27,
+ 87,87,6,65,1,15,27,0,0,57,2,1,1,1,1,1,
+ 27,0,32,32,32,50,105,33,185,107,81,224,226,212,43,234,
+ 116,206,90,209,47,175,33,170,123,42,80,216,184,226,95,78,
+ 164,29,77,190,243,115,201,167,164,227,177,30,77,159,34,77,
+ 177,204,126,204,144,252,75,180,165,198,168,242,73,102,188,39,
+ 242,55,168,41,204,180,165,242,197,39,153,49,181,88,55,101,
+ 198,55,181,41,242,238,99,99,197,71,36,157,122,30,215,101,
+ 106,223,223,180,77,213,101,215,101,181,157,21,38,163,163,46,
+ 161,18,161,161,128,128,86,183,52,52,52,183,183,85,85,85,
+ 85,128,85,128,85,86,0,84,125,109,84,125,63,0,33,3,
+ 116,23,210,209,217,224,33,32,
+ 88,49,136,187,7,187,173,173,173,173,173,173,54,68,0,0,
+ 0,0,0,0,0,187,173,173,222,146,152,2,1,1,15,27,
+ 152,87,6,6,118,9,0,0,0,178,1,15,1,1,1,1,
+ 27,0,114,32,50,105,156,33,185,206,142,111,111,175,212,3,
+ 124,128,85,203,123,167,217,40,81,184,175,81,40,58,66,80,
+ 108,159,215,215,177,159,29,241,29,190,177,30,215,204,159,218,
+ 44,215,215,168,55,218,180,148,242,168,139,147,44,245,181,101,
+ 88,168,202,137,26,39,99,211,228,39,153,153,181,197,39,197,
+ 197,153,26,144,144,242,228,237,197,198,129,150,102,150,122,213,
+ 245,213,101,169,101,101,79,168,168,198,198,14,38,163,46,46,
+ 18,161,161,161,128,85,85,183,52,52,52,52,52,183,86,85,
+ 85,85,85,85,123,58,0,84,155,125,84,155,109,0,216,222,
+ 151,128,85,203,123,167,47,205,
+ 22,211,186,0,156,187,96,173,173,173,173,173,173,205,0,0,
+ 0,0,0,0,0,114,173,173,222,45,0,2,1,1,118,27,
+ 87,152,6,9,65,152,0,0,27,1,1,1,1,1,1,15,
+ 152,0,114,32,50,7,224,81,206,52,123,217,111,224,90,210,
+ 97,151,183,123,123,217,25,184,185,210,25,42,119,192,141,192,
+ 158,108,143,143,108,177,77,227,29,190,243,198,243,215,204,44,
+ 79,215,44,113,198,122,99,22,101,113,162,144,144,252,169,197,
+ 69,69,182,136,240,39,197,153,122,153,188,180,39,153,39,39,
+ 211,153,150,55,202,144,75,172,213,88,150,150,245,245,106,88,
+ 122,165,101,198,94,169,41,144,219,219,33,21,38,98,163,46,
+ 161,18,161,128,128,85,86,183,52,62,52,52,183,183,183,85,
+ 85,85,52,20,0,109,38,38,38,61,84,109,109,0,114,56,
+ 60,151,62,123,123,217,25,114,
+ 22,39,238,187,7,32,173,173,173,173,173,173,173,68,0,0,
+ 0,0,0,187,114,7,173,173,23,57,152,2,1,1,65,152,
+ 0,152,6,4,4,0,0,152,118,15,1,1,1,1,1,118,
+ 244,187,114,32,205,14,42,194,194,194,25,92,219,71,90,212,
+ 234,212,90,222,131,219,90,135,131,90,224,42,95,158,58,40,
+ 29,108,190,158,159,143,127,119,158,44,198,243,113,243,30,218,
+ 213,129,243,157,145,241,37,228,113,101,40,92,26,150,144,240,
+ 242,242,88,238,75,165,181,39,148,211,39,165,181,39,165,153,
+ 188,228,242,94,41,69,213,242,88,181,99,75,181,99,181,122,
+ 106,213,213,30,197,245,126,204,168,36,201,14,38,163,163,18,
+ 18,161,161,161,128,85,183,52,52,62,62,62,52,183,183,183,
+ 86,62,45,64,61,61,155,155,155,155,155,155,125,125,207,187,
+ 224,212,90,222,131,219,175,68,
+ 218,55,41,187,7,50,173,173,173,173,173,173,173,187,0,0,
+ 187,8,32,187,0,7,173,173,222,27,0,65,15,1,2,0,
+ 0,152,6,4,0,0,0,9,1,1,1,1,1,1,1,65,
+ 152,114,32,105,50,105,42,78,249,135,249,175,90,97,225,90,
+ 234,171,225,103,210,90,111,47,81,81,142,25,58,177,42,40,
+ 143,192,127,243,66,192,141,196,196,196,191,115,115,201,201,122,
+ 252,204,190,157,99,223,223,77,113,165,198,141,150,150,41,213,
+ 213,153,64,109,125,64,211,211,197,181,165,101,39,153,153,211,
+ 88,169,55,71,117,238,150,242,198,39,148,213,236,39,88,30,
+ 153,213,169,101,245,106,22,180,115,115,115,21,38,231,98,46,
+ 18,18,161,161,128,128,85,85,52,52,183,52,183,183,85,85,
+ 123,187,63,154,38,155,155,155,155,155,155,5,155,155,125,63,
+ 187,135,225,103,210,90,162,205,
+ 79,242,19,187,156,21,173,173,173,173,173,173,173,152,187,0,
+ 187,54,173,173,21,114,3,173,222,57,0,178,1,1,2,152,
+ 0,0,9,0,0,0,152,65,15,1,1,1,1,1,1,6,
+ 244,248,68,114,76,76,81,25,56,212,212,219,212,206,160,90,
+ 121,212,130,206,107,60,123,58,108,40,154,154,154,38,127,192,
+ 141,191,154,154,51,108,243,154,154,84,110,113,119,89,159,177,
+ 215,106,159,177,22,22,122,218,88,126,55,144,26,39,215,88,
+ 153,237,125,154,154,125,211,99,165,101,197,153,39,39,188,153,
+ 94,41,41,69,153,75,26,204,144,188,172,215,101,213,106,204,
+ 99,180,218,88,204,180,228,180,44,243,201,14,38,98,163,18,
+ 18,161,161,128,128,85,183,52,52,62,52,52,52,183,183,183,
+ 57,63,84,5,155,155,155,155,155,155,5,155,5,155,155,125,
+ 63,187,170,60,103,60,123,57,
+ 180,49,41,187,76,32,173,173,173,173,173,173,173,0,0,0,
+ 187,96,173,173,96,173,173,173,222,152,0,6,1,1,2,152,
+ 0,152,27,0,0,0,0,152,65,1,1,1,1,1,1,4,
+ 152,114,205,68,76,7,92,119,175,140,43,121,121,210,60,160,
+ 212,206,128,85,124,62,194,56,184,243,64,154,154,154,64,95,
+ 58,109,154,51,95,243,127,154,154,154,72,92,159,252,78,227,
+ 159,126,106,190,177,30,30,106,75,75,165,157,157,157,144,242,
+ 197,39,109,154,154,109,41,169,41,213,153,153,165,181,153,99,
+ 39,238,41,41,238,153,150,204,150,99,22,122,88,213,153,153,
+ 99,75,122,75,75,204,75,180,30,44,201,21,38,98,98,18,
+ 18,18,161,128,128,85,85,52,52,52,52,52,183,183,183,20,
+ 207,84,61,155,155,125,125,125,125,125,125,125,125,125,155,155,
+ 125,207,208,52,124,62,78,32,
+ 106,41,44,187,14,32,96,173,173,173,173,173,96,244,0,187,
+ 114,173,173,173,173,173,173,173,222,87,0,178,1,1,2,0,
+ 0,0,0,0,0,27,27,152,0,4,118,1,1,1,1,27,
+ 0,205,205,205,105,156,249,209,60,160,103,225,128,74,123,217,
+ 210,206,60,171,130,31,17,25,209,81,47,154,154,154,154,58,
+ 155,154,125,126,108,190,141,154,154,154,229,174,158,95,95,122,
+ 190,106,34,177,88,215,218,34,122,44,44,190,215,242,44,245,
+ 237,211,109,154,154,109,197,41,242,26,186,153,165,153,211,99,
+ 39,88,115,41,215,157,157,157,99,106,39,181,215,215,75,227,
+ 188,213,106,252,227,77,122,122,34,30,143,14,38,98,98,46,
+ 18,18,161,161,161,85,85,183,52,62,52,52,52,52,123,0,
+ 61,84,155,155,155,125,155,155,155,5,155,5,5,84,5,5,
+ 5,125,0,81,234,62,194,205,
+ 30,101,69,68,32,50,173,173,173,173,173,173,54,0,0,0,
+ 50,173,173,173,173,173,173,173,222,152,0,65,1,1,2,0,
+ 0,0,0,87,9,0,87,87,152,0,0,65,1,1,15,27,
+ 0,68,57,32,105,156,217,60,170,81,124,35,85,189,189,209,
+ 212,130,81,103,85,123,8,56,156,156,184,72,154,154,154,38,
+ 154,154,200,190,20,254,83,154,154,154,151,66,243,190,143,63,
+ 196,196,109,77,44,190,204,34,30,44,176,109,109,109,109,207,
+ 246,228,109,154,154,109,238,245,157,109,109,93,39,245,34,99,
+ 39,101,242,144,73,150,245,157,245,39,106,122,215,88,245,75,
+ 99,138,106,75,227,122,180,34,138,138,77,21,38,98,46,18,
+ 161,18,161,128,128,86,183,183,52,52,52,52,183,183,58,63,
+ 84,155,155,155,155,125,155,155,155,155,5,155,5,84,5,155,
+ 5,125,207,250,62,123,8,114,
+ 122,197,69,187,32,32,173,173,173,173,173,173,54,187,0,0,
+ 7,173,173,173,173,173,173,173,222,87,152,65,1,1,2,152,
+ 0,0,0,15,15,2,0,152,0,152,152,0,27,1,15,87,
+ 0,114,32,32,76,184,17,233,103,124,52,74,85,203,111,212,
+ 103,35,36,160,203,203,35,162,185,219,184,119,154,154,154,154,
+ 154,196,113,215,108,192,141,154,154,154,72,141,251,133,154,154,
+ 154,154,154,154,229,204,150,252,215,125,154,154,154,154,154,125,
+ 204,88,109,154,154,109,102,232,61,154,63,150,181,122,39,181,
+ 213,213,69,204,245,150,204,150,153,153,99,34,204,204,106,138,
+ 99,39,180,138,227,227,122,180,138,227,108,14,38,98,46,46,
+ 161,161,128,128,85,85,183,62,62,62,62,52,52,183,146,5,
+ 38,155,155,155,155,125,5,155,5,155,155,5,155,84,5,5,
+ 5,38,64,114,233,203,230,205,
+ 122,245,75,187,114,32,173,173,173,173,173,173,54,187,0,0,
+ 3,173,173,173,173,173,173,173,8,152,152,118,1,1,2,152,
+ 0,0,118,1,1,1,65,152,0,0,0,0,0,9,65,27,
+ 0,205,205,205,14,7,194,17,40,151,124,60,60,209,224,212,
+ 52,35,90,206,151,151,123,136,90,90,135,184,89,154,154,154,
+ 154,35,115,73,201,254,243,154,154,154,176,139,36,154,154,154,
+ 125,61,154,154,154,240,252,227,64,154,154,154,109,109,125,196,
+ 202,202,109,154,154,109,245,229,154,154,120,75,79,204,150,122,
+ 245,204,75,34,75,153,99,211,172,172,172,188,22,77,122,180,
+ 22,180,180,34,34,122,122,99,227,204,254,21,38,163,46,18,
+ 161,18,161,128,85,85,52,52,31,62,31,62,62,52,87,84,
+ 155,155,155,155,155,61,84,84,84,84,84,84,84,84,5,5,
+ 5,5,109,0,167,123,136,146,
+ 227,172,172,187,114,50,173,173,173,173,173,173,23,0,0,0,
+ 222,173,173,173,173,173,173,173,222,0,0,15,1,1,178,0,
+ 0,0,15,1,15,1,1,1,65,87,0,152,2,15,1,27,
+ 152,68,57,32,105,216,158,47,226,35,103,43,212,103,175,43,
+ 140,212,43,206,183,124,209,209,222,60,62,217,201,154,154,154,
+ 154,110,115,115,216,141,115,154,154,154,97,115,155,154,154,155,
+ 77,159,61,154,154,125,245,102,154,154,154,125,172,88,139,139,
+ 139,19,196,154,154,109,120,154,154,229,237,99,106,102,150,213,
+ 150,22,99,228,150,106,75,99,104,48,172,22,77,82,218,180,
+ 77,180,75,106,106,218,77,227,180,218,250,14,38,163,98,18,
+ 18,161,161,128,128,85,183,52,62,62,52,52,52,183,0,84,
+ 155,155,155,155,155,155,155,155,155,5,155,5,155,5,5,5,
+ 5,38,63,0,194,35,81,205,
+ 77,153,211,32,32,32,173,173,173,173,173,173,222,187,0,0,
+ 3,173,173,173,173,173,173,173,8,152,0,15,1,1,6,0,
+ 0,152,1,1,1,1,1,1,1,118,4,9,1,1,15,27,
+ 0,187,187,114,50,156,217,135,185,210,234,212,239,52,103,234,
+ 160,43,43,103,217,81,40,103,90,249,40,58,217,154,154,154,
+ 154,125,191,92,193,69,147,154,154,154,151,158,154,154,154,176,
+ 34,26,109,154,154,154,30,120,154,154,154,150,213,198,251,33,
+ 137,136,125,154,154,155,155,154,154,229,99,99,150,102,172,150,
+ 204,99,172,180,213,218,106,172,99,188,148,180,218,77,88,106,
+ 204,106,106,227,190,82,218,227,180,221,190,21,38,98,163,18,
+ 18,161,161,128,128,85,85,183,52,52,52,52,183,52,0,84,
+ 155,155,155,155,5,155,5,5,5,155,5,5,5,5,5,5,
+ 5,155,109,0,20,8,81,205,
+ 190,150,150,205,3,14,173,173,173,173,173,173,96,187,0,0,
+ 3,173,173,173,173,173,173,173,8,152,0,15,1,1,9,0,
+ 0,87,1,1,1,1,1,1,1,15,1,1,1,1,65,152,
+ 0,68,134,32,50,7,25,56,107,225,103,103,85,62,111,206,
+ 35,234,225,86,25,249,158,25,249,123,25,58,154,154,154,154,
+ 154,154,64,240,123,230,143,154,154,154,151,201,154,154,154,151,
+ 150,223,109,154,154,154,215,133,154,154,154,245,101,251,71,111,
+ 186,172,109,154,154,61,61,154,154,154,232,153,181,75,204,165,
+ 215,75,39,30,88,44,245,252,106,180,122,213,88,198,215,30,
+ 106,122,77,77,122,218,204,34,106,122,159,14,38,163,163,46,
+ 161,161,161,128,128,85,183,52,62,62,62,62,52,52,87,84,
+ 155,155,155,155,5,155,5,155,155,125,125,5,5,5,5,5,
+ 5,155,109,187,66,184,158,205,
+ 77,238,215,37,7,32,3,173,173,173,173,173,173,173,187,0,
+ 3,173,173,173,173,173,173,173,8,0,152,1,1,1,9,152,
+ 0,4,1,1,1,1,1,1,1,1,1,1,1,15,4,152,
+ 205,57,114,105,14,158,119,185,60,209,90,86,189,72,140,140,
+ 60,107,225,206,212,43,131,119,81,58,78,151,154,38,56,154,
+ 154,154,154,203,240,164,174,154,154,154,120,33,38,154,154,63,
+ 73,213,125,154,154,38,204,93,154,154,154,191,113,198,137,93,
+ 233,26,125,154,154,109,196,154,154,154,63,41,150,246,122,88,
+ 75,245,218,106,213,252,126,218,30,39,228,99,180,213,172,99,
+ 75,106,204,106,75,106,75,227,180,106,227,21,38,46,46,18,
+ 161,161,161,128,85,85,183,183,52,52,52,52,183,183,146,61,
+ 5,5,155,5,155,5,109,63,0,0,149,84,84,5,5,5,
+ 5,155,63,114,7,185,7,32,
+ 180,102,150,26,179,87,114,14,16,173,173,173,173,173,96,14,
+ 3,173,173,173,173,173,173,173,184,0,27,1,1,1,4,0,
+ 152,9,1,1,1,1,1,1,1,1,1,1,118,4,70,0,
+ 0,114,187,32,250,20,184,185,103,217,103,52,207,35,140,43,
+ 209,124,124,131,234,3,52,209,42,58,78,154,154,51,47,72,
+ 154,154,154,109,158,158,95,154,154,154,229,115,64,154,154,154,
+ 64,125,154,154,154,133,41,204,155,154,154,154,176,133,51,64,
+ 165,197,109,154,154,109,229,61,154,154,154,133,102,99,75,137,
+ 153,99,157,150,213,102,22,30,150,150,22,172,99,34,172,99,
+ 180,34,138,180,227,34,227,34,34,99,227,14,38,163,163,18,
+ 161,161,128,128,85,183,52,52,62,62,62,52,52,183,58,51,
+ 84,155,155,5,155,125,63,0,17,42,29,0,84,84,5,5,
+ 155,125,93,32,131,107,31,205,
+ 149,211,102,213,13,57,57,0,114,131,173,173,173,173,173,173,
+ 173,173,173,173,173,173,173,173,8,0,4,1,1,15,87,152,
+ 27,6,1,1,1,1,1,1,1,1,1,178,27,70,87,0,
+ 187,57,205,205,146,20,7,7,183,123,62,35,72,124,170,43,
+ 206,62,123,60,222,52,31,142,25,20,51,154,196,81,193,159,
+ 154,154,154,154,200,113,115,154,154,154,151,56,162,64,154,154,
+ 84,154,154,154,133,113,89,89,200,125,154,154,154,154,154,125,
+ 242,242,196,154,154,109,188,120,154,154,154,154,93,34,237,223,
+ 180,153,150,213,218,99,172,180,106,180,228,99,22,34,48,100,
+ 228,180,34,99,99,22,180,34,22,180,29,250,183,128,161,86,
+ 86,86,52,52,52,31,142,25,25,142,25,142,142,142,25,0,
+ 84,5,155,155,5,125,0,194,42,21,250,17,93,61,61,5,
+ 155,109,0,20,249,52,142,205,
+ 22,102,150,122,159,29,48,20,187,68,131,173,173,173,173,173,
+ 173,173,173,173,173,173,173,173,14,0,9,1,1,1,9,87,
+ 9,15,1,1,1,1,1,15,1,15,9,87,152,0,21,114,
+ 87,205,57,205,250,66,76,249,123,72,217,60,209,209,43,43,
+ 206,25,25,217,40,131,60,42,42,72,196,196,192,42,108,159,
+ 136,109,109,132,51,162,115,196,196,109,129,143,230,186,186,109,
+ 125,109,109,201,198,129,186,145,177,168,110,196,109,109,109,64,
+ 157,69,64,109,109,64,188,99,64,196,109,125,109,39,99,99,
+ 104,104,245,122,75,246,172,122,126,39,99,34,34,153,172,228,
+ 228,138,228,22,22,99,22,22,48,48,29,20,21,21,21,21,
+ 21,21,21,32,205,205,32,32,32,68,114,68,68,32,205,152,
+ 63,84,5,155,155,125,0,32,205,66,158,158,186,61,61,155,
+ 109,179,68,42,42,249,60,205,
+ 48,150,144,30,164,159,221,48,26,146,244,249,173,173,173,173,
+ 173,173,173,173,173,173,173,173,21,0,9,1,1,178,9,118,
+ 15,1,1,1,1,1,1,1,65,27,87,0,244,87,87,57,
+ 57,68,68,146,250,76,76,40,217,201,111,170,185,90,212,234,
+ 116,142,40,230,167,249,209,62,25,42,184,81,80,143,20,66,
+ 143,193,174,47,40,226,224,175,135,158,254,88,159,252,245,159,
+ 37,145,159,44,73,26,37,172,177,19,19,33,69,72,200,69,
+ 69,69,126,232,179,59,246,153,55,198,137,186,245,153,188,153,
+ 104,245,73,30,126,172,106,75,144,30,34,227,122,30,34,34,
+ 180,122,180,106,22,34,22,22,22,22,138,77,66,195,208,66,
+ 208,250,208,208,70,208,70,20,20,20,66,146,70,208,146,208,
+ 152,61,61,5,155,125,0,174,42,80,40,111,93,61,5,109,
+ 64,152,80,95,193,184,81,146,
+ 180,213,55,190,190,218,221,77,207,17,146,0,14,173,173,173,
+ 173,173,173,173,173,173,173,173,205,0,6,1,1,65,1,1,
+ 1,1,1,15,1,1,15,9,152,0,0,66,114,87,87,57,
+ 68,68,205,70,205,105,56,42,81,158,217,210,234,206,60,16,
+ 52,123,193,40,230,194,58,58,25,119,216,184,40,66,192,80,
+ 192,95,95,108,201,119,216,135,111,119,44,141,236,158,126,95,
+ 159,159,177,180,99,172,172,204,30,44,56,162,230,240,137,201,
+ 200,150,252,93,237,186,150,144,41,157,26,126,106,200,150,153,
+ 75,165,198,190,177,101,218,245,218,30,227,159,169,215,106,34,
+ 77,149,180,22,180,138,77,100,22,22,77,190,221,190,227,177,
+ 254,83,208,77,20,77,108,29,100,208,141,141,192,70,77,77,
+ 146,0,61,84,5,5,155,0,194,42,72,0,84,5,109,64,
+ 152,70,20,42,217,194,58,68,
+ 138,102,157,30,159,77,122,29,195,26,164,146,152,14,96,173,
+ 173,173,173,173,173,173,173,173,87,0,6,1,1,1,1,1,
+ 1,1,1,1,1,118,27,152,152,87,208,87,57,205,57,68,
+ 114,205,146,21,50,156,103,142,184,81,217,90,23,142,194,23,
+ 123,194,58,42,17,194,58,119,80,224,216,42,174,158,192,243,
+ 44,108,159,20,177,201,119,162,233,174,129,145,26,174,145,164,
+ 177,30,30,204,34,223,106,159,30,198,92,19,240,186,73,30,
+ 72,186,26,186,245,30,122,197,150,150,172,213,204,157,215,180,
+ 99,223,204,30,227,122,213,223,77,75,172,223,122,34,172,172,
+ 34,75,106,138,77,149,138,180,138,138,122,190,190,30,177,177,
+ 190,254,159,227,29,164,227,20,254,141,76,119,95,164,108,66,
+ 76,250,152,125,84,61,5,5,0,0,0,154,61,63,179,152,
+ 250,58,20,42,167,17,58,68,
+ 48,26,245,204,252,104,227,77,77,221,241,164,87,0,205,96,
+ 173,173,173,173,173,173,173,173,152,0,178,1,1,1,1,1,
+ 1,1,1,15,6,152,0,0,187,114,68,57,57,57,114,114,
+ 205,146,205,105,156,56,62,194,249,60,111,56,23,40,233,142,
+ 17,111,217,78,58,95,58,20,119,201,162,167,29,159,143,42,
+ 95,158,108,143,190,143,158,40,174,158,158,174,73,73,157,150,
+ 26,73,115,115,95,34,252,174,144,44,226,226,129,136,242,200,
+ 237,26,26,36,144,157,129,26,150,75,153,102,150,69,157,26,
+ 104,172,204,204,145,186,99,227,106,34,34,22,34,180,172,100,
+ 77,180,34,77,77,106,34,227,122,77,218,254,44,215,122,227,
+ 227,223,252,164,29,177,44,127,251,224,201,164,241,138,80,216,
+ 192,108,208,187,149,63,63,125,155,5,155,109,186,0,45,80,
+ 58,158,47,78,78,95,158,57,
+ 138,150,144,101,30,180,227,79,195,127,134,227,164,45,152,114,
+ 96,173,173,173,173,173,173,16,87,0,178,1,1,1,1,1,
+ 15,1,118,9,0,0,146,244,57,57,57,45,57,68,32,134,
+ 70,208,50,105,81,158,25,42,184,111,162,131,62,194,194,249,
+ 194,40,167,78,95,143,95,164,108,216,249,40,95,66,192,143,
+ 108,44,192,216,254,66,159,201,108,73,73,73,158,159,164,252,
+ 162,243,115,92,177,108,143,139,198,147,69,126,129,240,150,186,
+ 93,186,223,30,238,102,93,26,75,69,157,150,126,157,73,102,
+ 223,75,30,55,30,106,106,44,79,113,141,44,177,221,227,180,
+ 34,22,100,100,22,22,100,180,122,77,79,77,204,30,245,204,
+ 252,223,34,29,108,243,243,168,193,129,145,78,159,141,115,158,
+ 164,108,76,105,184,57,87,0,0,0,0,187,146,70,20,7,
+ 194,58,167,58,58,66,108,57,
+ 227,102,204,30,204,164,106,44,30,227,192,66,70,29,70,57,
+ 152,16,173,173,173,173,173,23,87,0,2,1,15,1,1,1,
+ 15,6,0,0,0,244,187,68,57,45,146,45,205,68,208,208,
+ 70,205,50,141,158,25,25,141,184,226,230,90,62,95,58,156,
+ 111,201,58,58,66,80,158,108,66,216,184,47,47,226,119,108,
+ 108,66,135,115,143,108,201,192,192,158,174,129,233,126,159,30,
+ 139,127,89,240,129,30,243,198,56,162,129,126,126,157,240,150,
+ 186,246,245,144,230,137,73,204,213,73,69,30,106,147,198,126,
+ 223,126,30,177,106,223,75,218,245,126,30,193,227,77,34,106,
+ 180,180,138,22,180,180,77,77,204,122,218,204,30,44,159,77,
+ 177,159,34,177,254,113,115,201,26,241,48,164,66,192,73,78,
+ 95,192,216,184,25,58,58,76,80,208,42,14,25,20,20,156,
+ 25,119,58,58,143,80,158,57,
+ 77,204,204,30,75,99,77,79,227,34,221,108,20,70,186,70,
+ 57,152,222,173,173,173,173,222,87,0,65,1,1,1,1,65,
+ 4,152,0,68,152,114,87,57,45,45,45,205,57,195,70,70,
+ 208,192,115,201,143,174,42,184,209,193,230,56,217,58,20,156,
+ 8,135,40,47,119,119,40,66,158,143,201,158,193,115,192,95,
+ 108,201,184,184,119,201,119,115,40,193,227,252,223,164,159,158,
+ 115,147,233,17,73,147,73,157,139,201,177,30,158,69,162,193,
+ 252,150,245,73,240,69,73,137,144,69,30,177,150,41,144,137,
+ 75,106,30,30,245,223,77,79,75,150,177,252,34,227,77,221,
+ 227,138,180,22,138,122,218,254,44,190,215,227,221,215,158,243,
+ 177,108,252,215,254,198,30,95,145,241,48,177,190,108,252,29,
+ 143,119,119,19,119,167,66,14,162,158,47,156,194,42,20,156,
+ 81,135,40,25,201,119,201,68,
+ 227,197,236,44,30,204,204,204,99,159,77,77,70,70,70,146,
+ 29,57,152,222,173,173,173,8,0,0,65,1,15,1,178,152,
+ 0,244,87,87,68,57,57,205,45,146,146,146,208,70,20,208,
+ 127,141,192,141,143,40,192,115,40,184,25,56,217,201,193,224,
+ 135,40,217,158,143,119,192,158,193,108,159,158,115,226,40,29,
+ 66,243,216,115,19,143,141,56,201,95,95,145,145,34,227,30,
+ 192,174,237,145,147,92,73,26,89,89,69,36,119,139,226,230,
+ 240,137,73,157,200,159,240,72,102,69,147,186,200,147,89,172,
+ 252,204,44,44,30,204,245,204,99,252,106,159,138,122,34,30,
+ 106,106,180,180,180,218,254,198,190,30,34,122,30,126,158,44,
+ 126,129,204,106,177,252,174,164,29,34,159,215,158,95,29,177,
+ 141,141,115,192,119,40,184,224,40,184,58,56,111,42,174,184,
+ 135,40,217,158,143,119,143,57,
+ 164,150,69,30,204,34,204,30,22,252,227,77,138,77,77,70,
+ 70,145,70,152,40,173,173,8,152,0,118,1,118,2,87,0,
+ 68,57,57,57,57,45,146,45,45,205,134,134,208,70,208,250,
+ 105,184,119,184,40,42,33,224,226,115,25,33,47,81,167,81,
+ 56,217,136,167,167,193,158,159,158,95,227,95,184,226,167,174,
+ 73,141,216,56,147,89,184,115,201,159,95,172,164,29,227,177,
+ 119,164,145,164,215,36,73,26,73,73,89,191,135,56,19,89,
+ 111,89,157,191,150,145,93,186,145,144,137,186,153,157,238,26,
+ 145,245,88,215,204,34,245,177,34,223,106,227,48,22,34,106,
+ 34,227,75,106,227,218,190,198,218,223,223,22,22,252,190,201,
+ 245,159,172,34,164,164,164,48,77,190,190,243,177,108,108,141,
+ 251,56,81,243,47,42,216,224,226,115,47,156,47,81,111,201,
+ 56,217,230,167,174,193,108,205,
+ 227,144,44,177,240,157,190,101,106,245,190,77,29,227,221,134,
+ 208,70,146,29,152,57,206,7,57,0,118,6,87,244,152,87,
+ 114,87,45,45,45,45,45,146,205,248,208,208,20,20,127,105,
+ 33,40,40,243,47,119,216,92,81,162,230,175,47,184,40,42,
+ 184,191,167,145,95,164,95,164,20,164,227,143,192,89,174,174,
+ 201,141,92,226,40,167,143,60,47,108,177,159,204,227,159,159,
+ 158,158,227,77,193,201,215,245,115,201,126,129,159,162,210,90,
+ 92,19,137,150,159,186,26,150,75,215,200,150,26,137,144,26,
+ 126,30,243,177,129,157,190,101,213,245,215,177,34,34,108,254,
+ 77,138,138,180,106,122,177,218,106,34,22,77,149,106,190,204,
+ 215,138,37,172,22,227,227,77,254,254,143,108,95,108,141,251,
+ 33,40,162,143,47,201,156,92,81,209,230,224,209,184,25,42,
+ 184,35,17,129,95,164,95,57,
+ 66,69,202,162,193,215,113,113,215,88,243,73,30,190,195,254,
+ 77,70,70,149,29,244,152,152,0,0,9,27,152,68,114,87,
+ 87,57,45,45,45,205,45,146,134,195,66,29,29,66,127,216,
+ 115,167,95,243,111,119,81,230,47,111,95,135,191,81,194,158,
+ 216,217,174,164,174,233,167,145,108,227,20,115,192,145,164,158,
+ 177,119,226,201,129,174,158,40,193,201,108,193,73,73,157,159,
+ 190,243,66,147,73,143,73,73,92,137,26,240,89,69,56,103,
+ 162,73,230,157,150,136,245,215,204,162,162,73,73,147,147,126,
+ 227,144,92,162,157,143,113,113,215,30,198,73,106,218,208,198,
+ 75,34,22,172,48,227,122,252,37,228,34,77,177,204,190,159,
+ 122,223,172,48,227,215,77,77,243,243,158,159,164,77,141,156,
+ 115,123,158,243,89,119,92,217,193,230,95,201,191,8,47,95,
+ 216,47,174,164,174,233,145,57,
+ 29,69,44,201,158,147,92,36,193,193,215,159,126,252,177,143,
+ 138,29,149,149,70,29,87,152,0,114,151,70,250,57,87,57,
+ 45,45,146,146,195,146,208,208,66,192,20,29,29,77,243,224,
+ 119,194,164,95,193,184,126,95,158,167,78,158,47,115,17,164,
+ 33,40,167,129,145,145,174,164,177,73,201,141,158,172,29,243,
+ 201,119,115,119,193,95,201,119,89,193,36,92,192,215,177,227,
+ 215,201,119,198,44,215,69,47,89,174,157,30,135,19,226,111,
+ 62,72,230,137,240,137,92,89,69,19,202,89,30,139,162,89,
+ 126,204,198,201,201,147,92,36,193,193,215,193,126,245,158,30,
+ 164,22,34,104,48,22,34,34,48,138,34,159,204,73,215,159,
+ 78,145,223,227,159,108,158,177,201,201,159,78,48,77,141,115,
+ 119,167,164,159,40,184,230,159,95,217,95,201,89,119,233,227,
+ 33,40,167,129,145,174,78,45,
+ 108,236,157,72,215,157,78,157,137,150,34,223,37,172,48,48,
+ 149,100,70,149,70,70,93,57,244,214,146,57,214,57,57,57,
+ 68,57,45,70,70,70,70,70,221,149,70,138,177,190,254,138,
+ 48,126,177,201,115,201,252,177,119,111,92,135,209,115,167,78,
+ 56,201,167,126,119,42,95,227,95,174,30,190,174,164,177,177,
+ 159,108,119,162,174,159,204,164,252,164,193,92,201,126,145,223,
+ 177,158,204,201,159,159,167,204,30,157,159,73,200,89,159,129,
+ 129,233,186,102,186,93,150,93,240,129,129,102,137,150,129,233,
+ 157,44,159,136,215,157,164,126,129,137,48,223,37,37,48,48,
+ 149,48,100,148,138,180,227,34,30,177,227,34,48,48,48,29,
+ 190,190,138,223,48,138,227,149,77,138,149,138,159,190,190,138,
+ 48,174,177,177,115,201,252,143,147,230,226,139,209,115,167,174,
+ 56,201,167,174,143,42,158,57,
+ 177,147,117,129,73,150,204,159,227,172,29,37,37,37,48,48,
+ 70,77,221,221,149,149,70,186,152,114,45,45,45,57,57,57,
+ 214,205,70,70,70,70,100,221,221,77,138,227,122,254,177,159,
+ 227,215,30,215,216,115,159,243,119,158,243,92,111,201,167,78,
+ 115,226,136,174,204,167,164,95,227,108,190,190,164,95,221,108,
+ 159,177,147,119,145,129,126,164,164,164,177,177,129,233,145,227,
+ 215,157,215,157,157,204,174,215,73,129,157,159,230,193,126,240,
+ 150,240,129,157,129,26,26,246,137,150,137,73,89,136,93,72,
+ 73,44,69,157,73,126,204,204,227,223,227,37,37,172,241,172,
+ 221,227,221,13,22,228,180,99,149,77,180,22,48,22,22,77,
+ 83,77,99,241,48,29,223,13,77,227,138,106,215,190,215,159,
+ 180,215,201,215,216,143,159,243,143,193,243,226,217,201,194,78,
+ 115,162,136,126,73,167,164,57,
+ 143,191,36,73,26,233,26,34,252,26,241,237,241,9,172,48,
+ 83,177,82,221,138,149,149,4,195,146,253,146,253,45,146,220,
+ 57,221,70,149,149,70,100,149,122,77,30,77,218,190,215,30,
+ 30,113,215,190,115,89,193,141,193,193,201,162,47,66,145,167,
+ 201,143,240,174,157,167,95,108,190,66,218,177,164,108,108,106,
+ 177,190,141,243,145,174,157,145,174,227,177,204,164,78,164,126,
+ 204,174,190,193,129,126,95,159,126,159,126,193,129,126,129,126,
+ 126,102,230,73,73,240,93,237,89,186,200,36,19,69,129,119,
+ 226,89,201,204,26,233,26,34,164,26,241,237,37,9,67,48,
+ 83,204,218,218,22,48,22,48,138,138,22,172,148,180,228,138,
+ 218,223,138,148,48,100,48,24,122,77,106,77,218,218,215,30,
+ 30,198,143,44,113,89,193,141,40,193,201,162,47,66,145,167,
+ 119,143,233,174,157,167,95,57,
+ 193,230,69,136,186,241,37,172,241,48,37,104,48,148,100,149,
+ 82,204,221,122,48,138,149,149,149,70,146,70,146,220,45,70,
+ 195,70,70,149,70,221,149,138,221,82,177,190,215,215,190,215,
+ 243,143,158,88,143,230,193,115,89,89,115,147,47,95,26,145,
+ 73,177,167,164,164,26,164,164,177,77,159,159,29,29,159,254,
+ 190,177,147,201,145,159,177,126,77,218,34,106,34,227,215,44,
+ 177,95,215,108,204,108,177,159,164,159,193,30,240,129,157,204,
+ 240,137,69,129,191,72,186,126,157,186,186,103,135,145,26,191,
+ 230,230,144,136,240,241,37,172,37,48,241,237,48,100,100,149,
+ 82,204,13,122,172,22,148,48,48,138,48,22,180,221,138,22,
+ 77,180,149,22,149,13,138,138,218,82,190,190,190,215,190,215,
+ 243,44,159,201,147,217,193,115,89,193,139,119,193,174,26,145,
+ 73,201,129,145,164,26,95,57,
+ 143,73,137,73,26,241,138,104,48,48,9,148,48,24,24,13,
+ 13,22,13,22,172,100,149,149,70,146,146,195,57,134,146,70,
+ 195,82,221,29,138,218,82,122,221,82,44,215,122,215,190,92,
+ 215,159,159,243,177,40,119,141,193,40,216,224,136,240,174,159,
+ 158,177,164,145,145,145,159,77,20,227,227,29,190,190,215,127,
+ 252,106,201,201,164,159,190,30,30,75,227,29,164,254,83,113,
+ 252,227,254,190,243,66,30,158,227,159,254,89,252,252,157,73,
+ 201,73,89,137,204,240,129,157,242,237,223,36,162,179,179,126,
+ 201,30,89,204,26,37,138,172,48,48,9,148,48,24,24,13,
+ 13,138,149,148,172,100,24,22,180,221,138,180,190,218,122,22,
+ 218,218,77,99,227,218,13,138,221,254,215,30,177,215,190,92,
+ 215,95,159,44,177,193,119,141,89,158,56,115,35,167,126,159,
+ 108,177,227,233,223,241,159,87,
+ 177,136,240,77,145,37,99,37,172,48,148,100,100,24,180,100,
+ 100,100,24,100,100,149,221,77,221,220,112,82,134,195,221,149,
+ 221,134,13,227,221,79,218,149,221,254,254,215,122,122,215,147,
+ 215,29,177,113,204,73,141,243,193,201,56,19,47,174,158,66,
+ 164,204,95,145,164,164,227,177,145,227,29,29,221,254,215,127,
+ 95,227,215,177,164,227,254,204,164,164,227,227,190,83,44,126,
+ 164,77,218,159,254,30,159,204,227,243,243,69,193,252,129,44,
+ 162,200,102,99,75,102,157,243,144,102,150,157,230,93,59,129,
+ 252,240,145,77,241,37,99,37,172,48,148,100,100,24,100,180,
+ 100,100,149,148,48,149,221,122,122,253,122,218,127,44,75,22,
+ 122,82,77,22,77,79,218,149,13,254,254,44,122,122,215,147,
+ 143,227,77,113,159,73,115,141,95,226,216,19,47,145,159,66,
+ 164,204,95,145,164,223,108,57,
+ 223,179,207,37,241,180,48,172,100,24,149,149,149,100,24,100,
+ 24,149,149,149,112,218,221,218,221,221,149,134,134,254,77,149,
+ 221,70,138,138,82,82,77,70,149,254,83,254,227,106,190,141,
+ 75,48,177,215,245,177,92,73,164,143,56,162,230,17,159,193,
+ 164,106,164,164,48,29,190,177,164,100,149,149,195,127,44,127,
+ 95,149,208,192,138,77,192,34,164,20,254,215,243,254,204,164,
+ 29,70,208,66,66,215,108,227,159,215,141,243,177,126,204,201,
+ 89,129,252,204,137,233,129,129,240,26,172,150,37,233,223,126,
+ 102,37,186,145,241,22,48,172,100,24,149,149,24,100,100,24,
+ 138,24,149,149,112,13,122,218,218,149,180,82,79,143,106,138,
+ 77,221,138,180,82,82,77,70,149,254,79,254,227,106,190,127,
+ 252,22,177,44,204,177,147,204,164,201,141,162,230,17,159,193,
+ 164,106,95,164,48,29,66,214,
+ 146,100,27,57,87,152,152,152,152,152,152,152,152,152,244,244,
+ 244,244,244,152,244,152,244,0,244,152,244,152,152,152,152,0,
+ 244,0,244,244,0,244,152,152,244,244,244,0,244,152,152,244,
+ 152,152,244,187,244,244,244,152,152,244,0,244,87,87,152,152,
+ 0,0,244,152,0,152,0,0,152,244,152,0,0,0,0,0,
+ 152,244,0,0,244,152,0,244,0,0,0,244,244,244,244,0,
+ 0,0,244,244,244,0,244,244,244,0,187,0,244,152,152,187,
+ 152,187,187,152,87,152,152,152,152,187,187,152,152,87,152,152,
+ 152,152,87,152,152,244,152,152,152,152,152,152,152,152,0,244,
+ 244,0,0,244,244,152,0,244,152,152,152,152,244,152,152,152,
+ 0,87,152,244,0,152,152,152,0,244,0,0,0,87,152,187,
+ 152,152,244,152,152,0,152,152,152,0,187,244,87,152,152,152,
+ 152,0,152,152,0,152,244,0
+ };
diff --git a/app/xlockmore/xglock/logo2.xcf b/app/xlockmore/xglock/logo2.xcf
new file mode 100644
index 000000000..a1bb2b8a3
--- /dev/null
+++ b/app/xlockmore/xglock/logo2.xcf
Binary files differ
diff --git a/app/xlockmore/xglock/modes.h b/app/xlockmore/xglock/modes.h
new file mode 100644
index 000000000..7033443dc
--- /dev/null
+++ b/app/xlockmore/xglock/modes.h
@@ -0,0 +1,710 @@
+/*-
+ * @(#)modes.h 4.01 2000/01/28 xlockmore
+ *
+ * modes.h - mode management for xlock, the X Window System lockscreen.
+ *
+ * Copyright (c) 1991 by Patrick J. Naughton.
+ *
+ * See xlock.c for copying information.
+ *
+ * Revision History:
+ * 10-Oct-1999: Generated by genlauncher.
+ * Adapted by Eric Lassauge <lassauge AT users.sourceforge.net>
+ * 08-Jul-1998: Adapted to xglock from mode.h by Remi Cohen-Scali
+ * <remi.cohenscali@pobox.com>
+ *
+ */
+
+/*-
+ * Declare external interface routines for supported screen savers.
+ */
+
+#ifndef _LMODE_H_
+#define _LMODE_H_
+
+/* -------------------------------------------------------------------- */
+
+typedef struct LockStruct_s {
+ gchar *cmdline_arg; /* mode name */
+ gint def_delay; /* default delay for mode */
+ gint def_batchcount;
+ gint def_cycles;
+ gint def_size;
+ gfloat def_saturation;
+ gchar *desc; /* text description of mode */
+ void *userdata; /* for use by the mode */
+} LockStruct;
+
+LockStruct LockProcs[] =
+{
+ {"anemone",
+ 50000, 1, 1, 1, 1.00,
+ "Shows wiggling tentacles", (void *) NULL},
+ {"ant",
+ 1000, -3, 40000, -7, 1.00,
+ "Shows Langton's and Turk's generalized ants", (void *) NULL},
+ {"ant3d",
+ 5000, -3, 100000, 1, 1.00,
+ "Shows 3D ants", (void *) NULL},
+ {"apollonian",
+ 1000000, 64, 20, 1, 1.00,
+ "Shows Apollonian Circles", (void *) NULL},
+#ifdef USE_GL
+ {"atlantis",
+ 25000, 4, 100, 6000, 1.00,
+ "Shows moving sharks/whales/dolphin", (void *) NULL},
+#endif
+#ifdef USE_GL
+ {"atunnels",
+ 25000, 1, 1, 0, 1.00,
+ "Shows an OpenGL advanced tunnel screensaver", (void *) NULL},
+#endif
+ {"ball",
+ 10000, 10, 20, -100, 1.00,
+ "Shows bouncing balls", (void *) NULL},
+ {"bat",
+ 100000, -8, 1, 0, 1.00,
+ "Shows bouncing flying bats", (void *) NULL},
+#ifdef USE_GL
+ {"biof",
+ 10000, 800, 1, 0, 1.00,
+ "Shows 3D bioform", (void *) NULL},
+#endif
+ {"blot",
+ 200000, 6, 30, 1, 0.30,
+ "Shows Rorschach's ink blot test", (void *) NULL},
+ {"bouboule",
+ 10000, 100, 1, 15, 1.00,
+ "Shows Mimi's bouboule of moving stars", (void *) NULL},
+ {"bounce",
+ 5000, -10, 1, 0, 1.00,
+ "Shows bouncing footballs", (void *) NULL},
+ {"braid",
+ 1000, 15, 100, -7, 1.00,
+ "Shows random braids and knots", (void *) NULL},
+ {"bubble",
+ 100000, 25, 1, 100, 0.60,
+ "Shows popping bubbles", (void *) NULL},
+#if defined( USE_GL ) && defined( HAVE_CXX )
+ {"bubble3d",
+ 20000, 1, 2, 1, 1.00,
+ "Richard Jones's GL bubbles", (void *) NULL},
+#endif
+ {"bug",
+ 75000, 10, 32767, -4, 1.00,
+ "Shows Palmiter's bug evolution and garden of Eden", (void *) NULL},
+#ifdef USE_GL
+ {"cage",
+ 80000, 1, 1, 1, 1.00,
+ "Shows the Impossible Cage, an Escher-like GL scene", (void *) NULL},
+#endif
+ {"clock",
+ 100000, -16, 200, -200, 1.00,
+ "Shows Packard's clock", (void *) NULL},
+ {"coral",
+ 60000, -3, 1, 35, 0.60,
+ "Shows a coral reef", (void *) NULL},
+ {"crystal",
+ 60000, -500, 200, -15, 1.00,
+ "Shows polygons in 2D plane groups", (void *) NULL},
+ {"daisy",
+ 100000, 300, 350, 1, 1.00,
+ "Shows a meadow of daisies", (void *) NULL},
+ {"dclock",
+ 10000, 1, 10000, 1, 0.30,
+ "Shows a floating digital clock or message", (void *) NULL},
+ {"decay",
+ 200000, 6, 30, 1, 0.30,
+ "Shows a decaying screen", (void *) NULL},
+ {"deco",
+ 1000000, -30, 2, -10, 0.60,
+ "Shows art as ugly as sin", (void *) NULL},
+ {"demon",
+ 50000, 0, 1000, -7, 1.00,
+ "Shows Griffeath's cellular automata", (void *) NULL},
+ {"dilemma",
+ 200000, -2, 1000, 0, 1.00,
+ "Shows Lloyd's Prisoner's Dilemma simulation", (void *) NULL},
+ {"discrete",
+ 1000, 4096, 2500, 1, 1.00,
+ "Shows various discrete maps", (void *) NULL},
+ {"dragon",
+ 2000000, 1, 16, -24, 1.00,
+ "Shows Deventer's Hexagonal Dragons Maze", (void *) NULL},
+ {"drift",
+ 10000, 30, 1, 1, 1.00,
+ "Shows cosmic drifting flame fractals", (void *) NULL},
+ {"euler2d",
+ 1000, 1024, 3000, 1, 1.00,
+ "Shows a simulation of 2D incompressible inviscid fluid", (void *) NULL},
+ {"eyes",
+ 20000, -8, 5, 1, 1.00,
+ "Shows eyes following a bouncing grelb", (void *) NULL},
+ {"fadeplot",
+ 30000, 10, 1500, 1, 0.60,
+ "Shows a fading plot of sine squared", (void *) NULL},
+ {"fiberlamp",
+ 10000, 500, 10000, 0, 1.00,
+ "Shows a Fiber Optic Lamp", (void *) NULL},
+#ifdef USE_GL
+ {"fire",
+ 10000, 800, 1, 0, 1.00,
+ "Shows a 3D fire-like image", (void *) NULL},
+#endif
+ {"flag",
+ 50000, 1, 1000, -7, 1.00,
+ "Shows a waving flag image", (void *) NULL},
+ {"flame",
+ 750000, 20, 10000, 1, 1.00,
+ "Shows cosmic flame fractals", (void *) NULL},
+ {"flow",
+ 1000, 1024, 3000, -10, 1.00,
+ "Shows dynamic strange attractors", (void *) NULL},
+ {"forest",
+ 400000, 100, 200, 1, 1.00,
+ "Shows binary trees of a fractal forest", (void *) NULL},
+ {"fzort",
+ 10000, 1, 1, 1, 1.00,
+ "Shows a metalic-looking fzort", (void *) NULL},
+ {"galaxy",
+ 100, -5, 250, -3, 1.00,
+ "Shows crashing spiral galaxies", (void *) NULL},
+#ifdef USE_GL
+ {"gears",
+ 50000, 1, 2, 1, 1.00,
+ "Shows GL's gears", (void *) NULL},
+#endif
+#ifdef USE_GL
+ {"glplanet",
+ 15000, 1, 2, 1, 1.00,
+ "Animates texture mapped sphere (planet)", (void *) NULL},
+#endif
+ {"goop",
+ 10000, -12, 1, 1, 1.00,
+ "Shows goop from a lava lamp", (void *) NULL},
+ {"grav",
+ 10000, -12, 1, 1, 1.00,
+ "Shows orbiting planets", (void *) NULL},
+ {"helix",
+ 25000, 1, 100, 1, 1.00,
+ "Shows string art", (void *) NULL},
+ {"hop",
+ 10000, 1000, 2500, 1, 1.00,
+ "Shows real plane iterated fractals", (void *) NULL},
+ {"hyper",
+ 100000, -6, 300, 1, 1.00,
+ "Shows spinning n-dimensional hypercubes", (void *) NULL},
+ {"ico",
+ 100000, 0, 400, 0, 1.00,
+ "Shows a bouncing polyhedron", (void *) NULL},
+ {"ifs",
+ 1000, 1, 1, 1, 1.00,
+ "Shows a modified iterated function system", (void *) NULL},
+ {"image",
+ 3000000, -20, 1, 1, 1.00,
+ "Shows randomly appearing logos", (void *) NULL},
+#if defined( USE_GL ) && defined( HAVE_CXX )
+ {"invert",
+ 80000, 1, 1, 1, 1.00,
+ "Shows a sphere inverted without wrinkles", (void *) NULL},
+#endif
+ {"juggle",
+ 10000, 200, 1000, 1, 1.00,
+ "Shows a Juggler, juggling", (void *) NULL},
+ {"julia",
+ 10000, 1000, 20, 1, 1.00,
+ "Shows the Julia set", (void *) NULL},
+ {"kaleid",
+ 80000, 4, 40, -9, 0.60,
+ "Shows a kaleidoscope", (void *) NULL},
+ {"kumppa",
+ 10000, 1, 1, 1, 1.00,
+ "Shows kumppa", (void *) NULL},
+#ifdef USE_GL
+ {"lament",
+ 10000, 1, 1, 1, 1.00,
+ "Shows Lemarchand's Box", (void *) NULL},
+#endif
+ {"laser",
+ 20000, -10, 200, 1, 1.00,
+ "Shows spinning lasers", (void *) NULL},
+ {"life",
+ 750000, 40, 140, 0, 1.00,
+ "Shows Conway's game of Life", (void *) NULL},
+ {"life1d",
+ 10000, 1, 10, 0, 1.00,
+ "Shows Wolfram's game of 1D Life", (void *) NULL},
+ {"life3d",
+ 1000000, 35, 85, 1, 1.00,
+ "Shows Bays' game of 3D Life", (void *) NULL},
+ {"lightning",
+ 10000, 1, 1, 1, 0.60,
+ "Shows Keith's fractal lightning bolts", (void *) NULL},
+ {"lisa",
+ 25000, 1, 256, -1, 1.00,
+ "Shows animated lisajous loops", (void *) NULL},
+ {"lissie",
+ 10000, 1, 2000, -200, 0.60,
+ "Shows lissajous worms", (void *) NULL},
+ {"loop",
+ 100000, -5, 1600, -12, 1.00,
+ "Shows Langton's self-producing loops", (void *) NULL},
+ {"lyapunov",
+ 25000, 600, 1, 1, 1.00,
+ "Shows lyapunov space", (void *) NULL},
+ {"mandelbrot",
+ 25000, -8, 20000, 1, 1.00,
+ "Shows mandelbrot sets", (void *) NULL},
+ {"marquee",
+ 100000, 1, 1, 1, 1.00,
+ "Shows messages", (void *) NULL},
+ {"matrix",
+ 100, 1, 1, 1, 1.00,
+ "Shows the matrix", (void *) NULL},
+ {"maze",
+ 1000, 1, 3000, -40, 1.00,
+ "Shows a random maze and a depth first search solution", (void *) NULL},
+#ifdef USE_GL
+ {"moebius",
+ 30000, 1, 1, 1, 1.00,
+ "Shows Moebius Strip II, an Escher-like GL scene with ants", (void *) NULL},
+#endif
+#ifdef USE_GL
+ {"molecule",
+ 50000, 1, 20, 1, 1.00,
+ "Draws molecules", (void *) NULL},
+#endif
+#ifdef USE_GL
+ {"morph3d",
+ 40000, 0, 1, 1, 1.00,
+ "Shows GL morphing polyhedra", (void *) NULL},
+#endif
+ {"mountain",
+ 1000, 30, 4000, 1, 1.00,
+ "Shows Papo's mountain range", (void *) NULL},
+ {"munch",
+ 5000, 1, 7, 1, 1.00,
+ "Shows munching squares", (void *) NULL},
+#ifdef USE_GL
+ {"noof",
+ 1000, 1, 1, 1, 1.00,
+ "Shows SGI Diatoms", (void *) NULL},
+#endif
+ {"nose",
+ 100000, 1, 1, 1, 1.00,
+ "Shows a man with a big nose runs around spewing out messages", (void *) NULL},
+ {"pacman",
+ 10000, 10, 1, 0, 1.00,
+ "Shows Pacman(tm)", (void *) NULL},
+ {"penrose",
+ 10000, 1, 1, -40, 1.00,
+ "Shows Penrose's quasiperiodic tilings", (void *) NULL},
+ {"petal",
+ 10000, -500, 400, 1, 1.00,
+ "Shows various GCD Flowers", (void *) NULL},
+ {"petri",
+ 10000, 1, 1, 4, 1.00,
+ "Shows a mold simulation in a petri dish", (void *) NULL},
+#ifdef USE_GL
+ {"pipes",
+ 1000, 2, 5, 500, 1.00,
+ "Shows a selfbuilding pipe system", (void *) NULL},
+#endif
+ {"polyominoes",
+ 6000, 1, 8192, 1, 1.00,
+ "Shows attempts to place polyominoes into a rectangle", (void *) NULL},
+ {"puzzle",
+ 10000, 250, 1, 1, 1.00,
+ "Shows a puzzle being scrambled and then solved", (void *) NULL},
+ {"pyro",
+ 15000, 100, 1, -3, 1.00,
+ "Shows fireworks", (void *) NULL},
+ {"qix",
+ 30000, -5, 32, 1, 1.00,
+ "Shows spinning lines a la Qix(tm)", (void *) NULL},
+ {"roll",
+ 100000, 25, 1, -64, 0.60,
+ "Shows a rolling ball", (void *) NULL},
+ {"rotor",
+ 100, 4, 100, -6, 0.30,
+ "Shows Tom's Roto-Rooter", (void *) NULL},
+#ifdef USE_GL
+ {"rubik",
+ 100000, -30, 5, -6, 1.00,
+ "Shows an auto-solving Rubik's Cube", (void *) NULL},
+#endif
+#ifdef USE_GL
+ {"sballs",
+ 40000, 0, 10, 0, 1.00,
+ "Balls spinning like crazy in GL", (void *) NULL},
+#endif
+ {"scooter",
+ 20000, 24, 3, 100, 1.00,
+ "Shows a journey through space tunnel and stars", (void *) NULL},
+ {"shape",
+ 10000, 100, 256, 1, 1.00,
+ "Shows stippled rectangles, ellipses, and triangles", (void *) NULL},
+ {"sierpinski",
+ 400000, 2000, 100, 1, 1.00,
+ "Shows Sierpinski's triangle", (void *) NULL},
+#ifdef USE_GL
+ {"sierpinski3d",
+ 15000, 1, 2, 1, 1.00,
+ "Shows GL's Sierpinski gasket", (void *) NULL},
+#endif
+#if defined(USE_GL) && defined( USE_UNSTABLE )
+ {"skewb",
+ 100000, -30, 5, 1, 1.00,
+ "Shows an auto-solving Skewb", (void *) NULL},
+#endif
+ {"slip",
+ 50000, 35, 50, 1, 1.00,
+ "Shows slipping blits", (void *) NULL},
+#ifdef HAVE_CXX
+ {"solitare",
+ 2000000, 1, 1, 1, 1.00,
+ "Shows Klondike's game of solitare", (void *) NULL},
+#endif
+#ifdef USE_UNSTABLE
+ {"space",
+ 10000, 100, 1, 15, 1.00,
+ "Shows a journey into deep space", (void *) NULL},
+#endif
+ {"sphere",
+ 5000, 1, 20, 0, 1.00,
+ "Shows a bunch of shaded spheres", (void *) NULL},
+ {"spiral",
+ 5000, -40, 350, 1, 1.00,
+ "Shows a helical locus of points", (void *) NULL},
+ {"spline",
+ 30000, -6, 2048, 1, 0.30,
+ "Shows colorful moving splines", (void *) NULL},
+#ifdef USE_GL
+ {"sproingies",
+ 80000, 5, 0, 0, 1.00,
+ "Shows Sproingies! Nontoxic. Safe for pets and small children", (void *) NULL},
+#endif
+#ifdef USE_GL
+ {"stairs",
+ 200000, 0, 1, 1, 1.00,
+ "Shows some Infinite Stairs, an Escher-like scene", (void *) NULL},
+#endif
+ {"star",
+ 75000, 100, 1, 100, 0.30,
+ "Shows a star field with a twist", (void *) NULL},
+ {"starfish",
+ 10000, 1, 1, 1, 1.00,
+ "Shows starfish", (void *) NULL},
+ {"strange",
+ 1000, 1, 1, 1, 1.00,
+ "Shows strange attractors", (void *) NULL},
+#ifdef USE_GL
+ {"superquadrics",
+ 40000, 25, 40, 1, 1.00,
+ "Shows 3D mathematical shapes", (void *) NULL},
+#endif
+ {"swarm",
+ 15000, -100, 1, -10, 1.00,
+ "Shows a swarm of bees following a wasp", (void *) NULL},
+ {"swirl",
+ 5000, 5, 1, 1, 1.00,
+ "Shows animated swirling patterns", (void *) NULL},
+ {"t3d",
+ 250000, 1000, 60000, 0, 1.00,
+ "Shows a Flying Balls Clock Demo", (void *) NULL},
+ {"tetris",
+ 50000, 1, 1, -100, 1.00,
+ "Shows an autoplaying tetris game", (void *) NULL},
+#if defined(USE_GL) && defined(HAVE_CXX) && defined( HAVE_TTF ) && defined( HAVE_GLTT )
+ {"text3d",
+ 100000, 1, 10, 1, 1.00,
+ "Shows 3D text", (void *) NULL},
+#endif
+#if defined(USE_GL) && defined(HAVE_CXX) && defined( HAVE_FREETYPE ) && defined( HAVE_FTGL )
+ {"text3d2",
+ 100000, 1, 10, 1, 1.00,
+ "Shows 3D text", (void *) NULL},
+#endif
+ {"thornbird",
+ 1000, 800, 16, 1, 1.00,
+ "Shows an animated bird in a thorn bush fractal map", (void *) NULL},
+ {"tik_tak",
+ 60000, -20, 200, -1000, 1.00,
+ "Shows rotating polygons", (void *) NULL},
+ {"toneclock",
+ 60000, -20, 200, -1000, 1.00,
+ "Shows Peter Schat's toneclock", (void *) NULL},
+ {"triangle",
+ 10000, 1, 1, 1, 1.00,
+ "Shows a triangle mountain range", (void *) NULL},
+ {"tube",
+ 25000, -9, 20000, -200, 1.00,
+ "Shows an animated tube", (void *) NULL},
+ {"turtle",
+ 1000000, 1, 20, 1, 1.00,
+ "Shows turtle fractals", (void *) NULL},
+ {"vines",
+ 200000, 0, 1, 1, 1.00,
+ "Shows fractals", (void *) NULL},
+ {"voters",
+ 1000, 0, 327670, 0, 1.00,
+ "Shows Dewdney's Voters", (void *) NULL},
+ {"wator",
+ 750000, 1, 32767, 0, 1.00,
+ "Shows Dewdney's Water-Torus planet of fish and sharks", (void *) NULL},
+ {"wire",
+ 500000, 1000, 150, -8, 1.00,
+ "Shows a random circuit with 2 electrons", (void *) NULL},
+ {"world",
+ 100000, -16, 1, 1, 0.30,
+ "Shows spinning Earths", (void *) NULL},
+ {"worm",
+ 17000, -20, 10, -3, 1.00,
+ "Shows wiggly worms", (void *) NULL},
+ {"xcl",
+ 20000, -3, 1, 1, 1.00,
+ "Shows a control line combat model race", (void *) NULL},
+ {"xjack",
+ 50000, 1, 1, 1, 1.00,
+ "Shows Jack having one of those days", (void *) NULL},
+ {"blank",
+ 3000000, 1, 1, 1, 1.00,
+ "Shows nothing but a black screen", (void *) NULL},
+#ifdef USE_BOMB
+ {"bomb",
+ 100000, 10, 20, 1, 1.0,
+ "Shows a bomb and will autologout after a time", (void *) NULL},
+ {"random",
+ 1, 1, 1, 1, 1.0,
+ "Shows a random mode from above except blank and bomb", (void *) NULL},
+#else
+ {"random",
+ 1, 1, 1, 1, 1.0,
+ "Shows a random mode from above except blank", (void *) NULL},
+#endif
+};
+
+/* Number of modes (set in main) */
+guint nb_mode = 0;
+
+/* Defaults values available */
+#define DEF_DELAY 0
+#define DEF_BATCHCOUNT 1
+#define DEF_CYCLES 2
+#define DEF_SIZE 3
+#define DEF_SATURATION 4
+#define NB_DEFAULTED_OPTIONS 5
+
+/* Default values options names */
+static gchar *defaulted_options[NB_DEFAULTED_OPTIONS] = {
+ "delay",
+ "batchcount",
+ "cycles",
+ "size",
+ "saturation"};
+
+/* Number of default values options */
+static guint nb_defaultedOptions = NB_DEFAULTED_OPTIONS;
+
+/*------------------------------------*/
+/* Boolean xlock options */
+/*------------------------------------*/
+
+/* boolean option entry */
+typedef struct struct_option_bool_s {
+ gchar *cmdarg;
+ gchar *label;
+ gchar *desc;
+ gchar defval;
+ gchar value;
+} struct_option_bool;
+
+/* Description of the boolean options */
+struct_option_bool BoolOpt[] =
+{
+ {"mono", "mono", "The mono option causes xlock to display monochrome", '\000', '\000'},
+ {"nolock", "nolock", "The nolock option causes xlock to only draw the patterns and not lock the display", '\000', '\000'},
+ {"remote", "remote", "The remote option causes xlock to not stop you from locking remote X11 server", '\000', '\000'},
+ {"allowroot", "allowroot", "The allowroot option allow the root password to unlock the server", '\000', '\000'},
+ {"enablesaver", "enablesaver", "This option enables the use of the normal Xserver screen saver", '\000', '\000'},
+ {"resetsaver", "resetsaver", "This option enables the call of XResetScreenSaver", '\000', '\000'},
+ {"allowaccess", "allowaccess", "For servers not allowing clients to modify host access, left the X11 server open", '\000', '\000'},
+#ifdef USE_VTLOCK
+ {"lockvt", "lockvt", "This option control the VT switch locking", '\000', '\000'},
+#endif
+ {"mousemotion", "mousemotion", "Allows to turn on/off the mouse sensitivity to bring up pass window", '\001', '\000'},
+ {"grabmouse", "grabmouse", "This option causes xlock to grab mouse and keyboard", '\001', '\000'},
+ {"grabserver", "grabserver", "The grabserver option causes xlock to grab the server", '\001', '\000'},
+ {"echokeys", "echokeys", "This option causes xlock to echo a question mark for each typed character", '\000', '\000'},
+ {"usefirst", "usefirst", "This option enables xlock to use the first keystroke in the password", '\000', '\000'},
+ {"verbose", "verbose", "verbose launch", '\000', '\000'},
+ {"debug", "debug", "This option allows xlock to be locked in a window", '\000', '\000'},
+ {"wireframe", "wireframe", "This option turns on wireframe rendering mode mainly for GL", '\000', '\000'},
+#ifdef USE_GL
+ {"showfps", "showfps", "This option turns on frame per sec display for GL", '\000', '\000'},
+ {"fpstop", "fpstop", "This option turns on top fps display for GL", '\000', '\000'},
+#endif
+ {"install", "install", "Allows xlock to install its own colormap if xlock runs out of colors", '\000', '\000'},
+ {"sound", "sound", "Allows you to turn on and off sound if installed with the capability", '\000', '\000'},
+ {"timeelapsed", "timeelapsed", "Allows you to find out how long a machine is locked", '\000', '\000'},
+ {"fullrandom", "fullrandom", "Turn on/off randomness options within modes", '\000', '\000'},
+ {"use3d", "use3d", "Turn on/off 3d view, available on bouboule, pyro, star, and worm", '\000', '\000'},
+ {"trackmouse", "trackmouse", "Turn on and off mouse interaction in eyes, julia, and swarm", '\000', '\000'},
+#if 0
+ {"dtsaver", "dtsaver", "Turn on/off CDE Saver Mode. Only available if CDE support was compiled in", '\000', '\000'},
+#endif
+};
+
+/* Number of boolean options (set in main) */
+guint nb_boolOpt = 0;
+
+/* Boolean option dialog callback struct */
+typedef struct struct_option_bool_callback_s {
+ GtkWidget *boolopt_dialog;
+} struct_option_bool_callback;
+
+/*------------------------------------*/
+/* General options */
+/*------------------------------------*/
+
+/* Gen option entry struct */
+typedef struct struct_option_gen_s {
+ gchar *cmdarg;
+ gchar *label;
+ gchar *desc;
+ gchar *help_anchor;
+ GtkWidget *text_widget;
+} struct_option_gen;
+
+/* Description of the general option */
+struct_option_gen generalOpt[] =
+{
+ {"username", "username", "text string to use for Name prompt", "opt_gen_", (GtkWidget *)NULL},
+ {"password", "password", "text string to use for Password prompt", "gen_opt_", (GtkWidget *)NULL},
+ {"info", "info", "text string to use for instruction", "gen_opt_", (GtkWidget *)NULL},
+ {"validate", "validate", "text string to use for validating password message", "gen_opt_", (GtkWidget *)NULL},
+ {"invalid", "invalidate", "text string to use for invalid password message", "gen_opt_", (GtkWidget *)NULL},
+ {"message", "message", "message to say", "gen_opt_", (GtkWidget *)NULL},
+ {"delay", "delay", "The delay option sets the speed at which a mode will operate", "gen_opt_", (GtkWidget *)NULL},
+ {"batchcount", "batchcount", "This option sets number of things to do per batch to num", "gen_opt_", (GtkWidget *)NULL},
+ {"cycles", "cycles", "This option delay is used for some mode as parameter", "gen_opt_", (GtkWidget *)NULL},
+ {"ncolors", "ncolors", "This option delay is used for some mode as parameter", "gen_opt_", (GtkWidget *)NULL},
+ {"size", "size", "This option delay is used for some mode as parameter", "gen_opt_", (GtkWidget *)NULL},
+ {"saturation", "saturation", "This option delay is used for some GL mode as parameter", "gen_opt_", (GtkWidget *)NULL},
+ {"nice", "nice", "This option sets system nicelevel of the xlock process", "gen_opt_", (GtkWidget *)NULL},
+ {"lockdelay", "lockdelay", "This option set the delay between launch and lock", "gen_opt_", (GtkWidget *)NULL},
+ {"timeout", "timeout", "The timeout option sets the password screen timeout", "gen_opt_", (GtkWidget *)NULL},
+ {"geometry", "geometry", "geometry of mode window", "gen_opt_", (GtkWidget *)NULL},
+ {"icongeometry", "icongeometry", "geometry of mode icon window", "gen_opt_", (GtkWidget *)NULL},
+ {"glgeometry", "geometry", "geometry of GL mode window", "gen_opt_", (GtkWidget *)NULL},
+ {"delta3d", "delta3d", "Turn on/off 3d view, available on bouboule, pyro, star, and worm", "gen_opt_", (GtkWidget *)NULL},
+ {"neighbors", "neighbors", "Sets number of neighbors of cell (3, 4, 6, 9, 12) for automata modes", "gen_opt_", (GtkWidget *)NULL},
+ {"cpasswd", "cpasswd", "Sets the key to be this text string to unlock", "gen_opt_", (GtkWidget *)NULL},
+ {"program", "program", "program used as a fortune generator", "gen_opt_", (GtkWidget *)NULL},
+#ifdef USE_AUTO_LOGOUT
+ {"forceLogout", "forceLogout", "This option sets minutes to auto-logout", "gen_opt_", (GtkWidget *)NULL},
+#endif
+#ifdef USE_BUTTON_LOGOUT
+ {"logoutButtonHelp", "logoutButtonHelp", "Text string is a message shown outside logout", "gen_opt_", (GtkWidget *)NULL},
+ {"logoutButtonLabel", "logoutButtonLabel", "Text string is a message shown inside logout button", "gen_opt_", (GtkWidget *)NULL},
+#endif
+#if defined( USE_AUTO_LOGOUT ) || defined( USE_BUTTON_LOGOUT )
+ {"logoutFailedString", "logoutFailedString", "Text string is shown when a logout is attempted and fails", "gen_opt_", (GtkWidget *)NULL},
+#endif
+ {"startCmd", "startCmd", "Command to execute when the screen is locked", "gen_opt_", (GtkWidget *)NULL},
+ {"endCmd", "endCmd", "Command to execute when the screen is unlocked", "gen_opt_", (GtkWidget *)NULL},
+ {"pipepassCmd", "pipepassCmd", "Command into which to pipe the password when the screen is unlocked", "gen_opt_", (GtkWidget *)NULL},
+#if defined( USE_AUTO_LOGOUT ) || defined( USE_BUTTON_LOGOUT )
+ {"logoutCmd", "logoutCmd", "Command to execute when the user is logged out", "gen_opt_", (GtkWidget *)NULL},
+#endif
+ {"mailCmd", "mailCmd", "Command to execute when mails are checked", "gen_opt_", (GtkWidget *)NULL},
+#ifdef USE_DPMS
+ {"dpmsstandby", "dpmsstandby", "Allows one to set DPMS Standby for monitor (0 is infinite)", "gen_opt_", (GtkWidget *)NULL},
+ {"dpmssuspend", "dpmssuspend", "Allows one to set DPMS Suspend for monitor (0 is infinite)", "gen_opt_", (GtkWidget *)NULL},
+ {"dpmsoff", "dpmsoff", "Allows one to set DPMS Power Off for monitor (0 is infinite)", "gen_opt_", (GtkWidget *)NULL},
+#endif
+};
+
+/* Number of general options (set in main) */
+guint nb_genOpt = 0;
+
+/* General option dialog callback struct */
+typedef struct struct_option_gen_callback_s {
+ GtkWidget *gen_dialog;
+ GtkWidget *text_widget;
+} struct_option_gen_callback;
+
+/*------------------------------------*/
+/* Font/File/Color options */
+/*------------------------------------*/
+
+/* Option type (font/color/file) */
+typedef enum enum_type_option_fntcol_e {
+ TFNTCOL_FONT = 0,
+ TFNTCOL_COLOR,
+ TFNTCOL_FILE
+} enum_type_option_fntcol;
+
+/* Font/Color/File option entry struct */
+typedef struct struct_option_fntcol_s {
+ enum_type_option_fntcol type;
+ gchar *cmdarg;
+ gchar *label;
+ gchar *desc;
+ gchar *help_anchor;
+ GtkWidget *entry;
+ GtkWidget *drawing_area;
+} struct_option_fntcol;
+
+/* Description of the font and color option */
+struct_option_fntcol fntcolorOpt[] =
+{
+ {TFNTCOL_COLOR, "bg", "background", "background color to use for password prompt", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_COLOR, "fg", "foreground", "foreground color to use for password prompt", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_COLOR, "none3d", "none3d", "color used for empty size in 3d mode", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_COLOR, "right3d", "right3d", "color used for right eye in 3d mode", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_COLOR, "left3d", "left3d", "color used for left eye in 3d mode", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_COLOR, "both3d", "both3d", "color used for overlapping images for left and right eye in 3d mode", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_FONT, "font", "font", "font to use for password prompt", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_FONT, "messagefont", "msgfont", "font to use for message", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_FONT, "planfont", "planfont", "font to use for lower part of password screen", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+#ifdef USE_GL
+ {TFNTCOL_FONT, "fpsfont", "fpsfont", "font to use for FPS display in GL mode", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+#endif
+ {TFNTCOL_FILE, "messagesfile", "messagesfile", "file to be used as the fortune generator", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_FILE, "messagefile", "messagefile", "file whose contents are displayed", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_FILE, "bitmap", "bitmap", "sets the xbm, xpm, or ras file to be displayed with some modes", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_FILE, "lifefile", "lifefile", "sets the lifeform (only one format: #P xlife format)", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+ {TFNTCOL_FILE, "life3dfile", "life3dfile", "sets the lifeform (only one format similar to #P xlife format)", "opt_fntcol_",
+ (GtkWidget *)NULL, (GtkWidget *)NULL},
+};
+
+/* Number of font/color/file options (set in main) */
+guint nb_fntColorOpt = 0;
+
+/* Font/Color/File option dialog callback struct */
+typedef struct struct_option_fntcol_callback_s {
+ GtkWidget *fntcol_dialog;
+ GtkWidget *entry;
+ GtkWidget *drawing_area;
+} struct_option_fntcol_callback;
+
+/* Colors handling */
+/* GdkVisual *gdkvisual; */
+GdkColormap *gdkcolormap;
+
+#endif /* !_LMODE_H_ */
diff --git a/app/xlockmore/xglock/xglock.c b/app/xlockmore/xglock/xglock.c
new file mode 100644
index 000000000..4ffb78c23
--- /dev/null
+++ b/app/xlockmore/xglock/xglock.c
@@ -0,0 +1,1806 @@
+/*-
+ * xglock.c - main file for xglock, the GTK+ gui interface to xlock.
+ *
+ * Copyright (c) 1998 by An Unknown author & Remi Cohen-Scali
+ *
+ * See xlock.c for copying information.
+ *
+ * Revision History:
+ * Nov-04: updates by Eric Lassauge <lassauge AT users.sourceforge.net>
+ * - Version 3.0 : give a first try at GTK 2.x !
+ * Nov-99: updates by Eric Lassauge <lassauge AT users.sourceforge.net>
+ * - Callbacks for 'Cancel' buttons , don't SIGSEGV anymore
+ * - FontSelection dialog updates for GTK 1.2.6
+ * - Drawing of little colored rectangle simplified, now works in
+ * Pseudo 8 bits and doesn't need an 'expose'
+ * - Add 'About' box
+ * - Add handling of "similar to xmlock" RC file
+ * - etc...
+ * Jul-98: Continual improvements by Remi Cohen-Scali <remi.cohenscali AT pobox.com>
+ * ?? -98: First written by Charles Vidal <cvidal AT ivsweb.com>.
+ */
+
+/*-
+ XgLock Problems are almost the same as XmLock's ones.
+ 1. Allowing only one in -inroot. Need a way to kill it. (a menu ?)
+ 2. Still missing many options (TO DO).
+ 3. Need a clean rewritting.
+ */
+
+#include <sys/types.h>
+#include <sys/signal.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if 0
+# define XGLOCK_DEBUG 1
+#else
+# undef XGLOCK_DEBUG
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#else
+# define HAVE_UNISTD_H 1
+#endif
+
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#ifdef HAVE_VFORK
+#define FORK vfork
+#define FORK_STR "vfork"
+#else
+#define FORK fork
+#define FORK_STR "fork"
+#endif
+
+#include <gdk/gdkx.h>
+#include <gtk/gtk.h>
+
+#include "modes.h"
+
+/* Alloc args by chunks of */
+#define ARGS_CHUNK 20
+#define MODE_STRING "-mode"
+
+#define XLOCK "xlock"
+#define WINDOW_WIDTH 160
+#define WINDOW_HEIGHT 100
+#define WINDOW_GEOMETRY "160x100"
+
+#define XGLOCK_SPACING 3
+#define XGLOCK_TABLE_HOMOGENEOUS ARG_HOMOGENEOUS
+#define XGLOCK_TABLE_SPACING XGLOCK_SPACING
+#define XGLOCK_TABLE_ROW_SPACING XGLOCK_SPACING
+#define XGLOCK_TABLE_COL_SPACING XGLOCK_SPACING
+#define XGLOCK_TABLE_BORDER_WIDTH XGLOCK_SPACING
+
+#define FRAME_WIDTH 500
+#define FRAME_HEIGHT 300
+
+#define FONT_DIALOG_WIDTH 600
+#define FONT_DIALOG_HEIGHT 400
+
+#define MAX_WIDGET_NUMBER_LEN 25
+
+#include "logo.h"
+
+#ifndef XGLOCKRC_FILE
+#define XGLOCKRC_FILE "xglockrc"
+#endif
+
+static char numberwidget[MAX_WIDGET_NUMBER_LEN];
+static pid_t numberprocess = -1;
+static pid_t *launchedprocesses =(pid_t *)NULL;
+static int num_launchedprocesses = 0;
+static int sz_launchedprocesses = 0;
+static int selected_mode = -1;
+/*static GtkWidget *font_sel_entry =(GtkWidget *)NULL;*/
+static GtkTooltips *tooltips=(GtkTooltips *)NULL;
+
+/* Prototypes */
+#if defined( __ANSI_C__ ) || defined( NeedFunctionsPrototypes )
+# define __PROTO( name, args ) name args
+#else /* ! __ANSI_C__ && ! NeedFunctionsPrototypes */
+# define __PROTO( name, args ) name ()
+#endif /* ? __ANSI_C__ && ! NeedFunctionsPrototypes */
+
+#define STD_CB_ARGS (GtkWidget *, gpointer)
+
+static void *__PROTO( secured_malloc, (size_t) );
+static void *__PROTO( secured_calloc, (int, size_t) );
+static void *__PROTO( secured_realloc, (void *, size_t) );
+static gchar *__PROTO( check_quotes, (gchar *str) );
+
+static void __PROTO( mode_list_item_select_cb, STD_CB_ARGS );
+static void __PROTO( mode_list_item_unselect_cb, STD_CB_ARGS );
+static void __PROTO( compose_xlock_command, (char *) );
+static void __PROTO( kill_xlock_cb, STD_CB_ARGS );
+static void __PROTO( launch_xlock, STD_CB_ARGS );
+static void __PROTO( exit_xglock, STD_CB_ARGS );
+static void __PROTO( bool_option_clicked_cb, STD_CB_ARGS );
+static void __PROTO( destroy_window, STD_CB_ARGS );
+
+static void __PROTO( color_selection_cancel_cb, STD_CB_ARGS );
+static void __PROTO( color_selection_ok_cb, STD_CB_ARGS );
+static void __PROTO( color_selection_changed_cb, STD_CB_ARGS );
+static void __PROTO( create_color_selection_dialog, STD_CB_ARGS );
+
+/*static void __PROTO( font_select_item_select_cb, STD_CB_ARGS );*/
+static void __PROTO( font_select_cancel_cb, STD_CB_ARGS );
+static void __PROTO( font_select_ok_cb, STD_CB_ARGS );
+static void __PROTO( create_font_selection_dialog, STD_CB_ARGS );
+
+static void __PROTO( file_selection_cancel_cb, STD_CB_ARGS );
+static void __PROTO( file_selection_ok_cb, STD_CB_ARGS );
+static void __PROTO( create_file_selection_dialog, STD_CB_ARGS );
+
+static void __PROTO( contextual_help_dialog, STD_CB_ARGS );
+static void __PROTO( window_help_dialog, STD_CB_ARGS );
+static void __PROTO( global_help_dialog, STD_CB_ARGS );
+static void __PROTO( about_dialog, STD_CB_ARGS );
+static void __PROTO( about_dialog_close_callback, STD_CB_ARGS );
+
+static GtkWidget * __PROTO( create_file_menu, (GtkWidget *) );
+static GtkWidget * __PROTO( create_help_menu, (GtkWidget *) );
+
+static void __PROTO( create_fntColorOptions_entries, (GtkWidget *) );
+static void __PROTO( create_genOptions_entries, (GtkWidget *) );
+static void __PROTO( create_boolOptions_buttons, (GtkWidget *) );
+
+#if GTK_CHECK_VERSION(2,0,0)
+/* GTK+ 2.x differences */
+#define gtk_color_selection_set_opacity(colorsel,has_opacity) \
+ gtk_color_selection_set_has_opacity_control(colorsel,(gboolean)has_opacity)
+#endif
+
+/*
+ * secured_malloc
+ * --------------
+ * Return an allocated string of bytes
+ */
+static gpointer
+secured_malloc(gulong sz)
+{
+ gpointer allocated =(gpointer)NULL;
+ allocated =(gpointer)g_malloc( sz );
+ g_assert( allocated );
+ return allocated;
+}
+
+/*
+ * secured_calloc
+ * --------------
+ * Return an allocated string of bytes
+ */
+static gpointer
+secured_calloc(gulong n,
+ gulong sz)
+{
+ gpointer allocated = NULL;
+
+ allocated =(gpointer )g_malloc( n * sz );
+ g_assert( allocated );
+ return allocated;
+}
+
+/*
+ * secured_realloc
+ * ---------------
+ * Return an allocated string of bytes
+ */
+static gpointer
+secured_realloc(gpointer ptr,
+ gulong sz)
+{
+ gpointer allocated = NULL;
+
+ allocated =(gpointer )g_realloc( ptr, sz );
+ g_assert( allocated );
+ return allocated;
+}
+
+/*
+ * compose_xlock_command
+ * ---------------------
+ * This function scan the string passed as argument to see if
+ * it is necessary to suround it with quotes for using it as a command
+ * line argument.
+ */
+static gchar *
+check_quotes(gchar *str)
+{
+ static gchar *req_dbl = "'#&;* ";
+ static gchar *req_simple = "\"";
+ gint len = strlen( str );
+ gint dbl_cspn = strcspn( str, req_dbl );
+ gint simple_cspn = strcspn( str, req_simple );
+ gchar *quotes = "";
+
+ if ( dbl_cspn != len )
+ quotes = "\"";
+ if ( simple_cspn != len )
+ quotes = "'";
+ return quotes;
+}
+
+/*
+ * compose_xlock_command
+ * ---------------------
+ * This function scan all the selected options and build an according
+ * command line for running xlock.
+ */
+static void
+compose_xlock_command(gchar ***cmd_argv_p,
+ gulong *cmd_argv_sz,
+ gulong *cmd_argc)
+{
+ gint i;
+ gulong n = *cmd_argc;
+ gulong sz = *cmd_argv_sz;
+ gchar **cmd_argv = *cmd_argv_p;
+
+#ifdef XGLOCK_DEBUG
+# define CHECK_REALLOC(num, size, need) \
+ (void) fprintf(stderr, \
+ "check realloc: current=%ld need=%d size=%ld\n", \
+ num, need, size ); \
+ if (size <= num+need) { \
+ (void) fprintf(stderr, \
+ "must realloc: size <= num+need is %s\n", \
+ size<=num+need?"TRUE":"FALSE"); \
+ cmd_argv =(char **)secured_realloc((gpointer)cmd_argv, \
+ (gulong)(size+ARGS_CHUNK)*sizeof(char **)); \
+ size+= ARGS_CHUNK; \
+ }
+
+#else /* ! XGLOCK_DEBUG */
+# define CHECK_REALLOC(num, size, need) \
+ if (size <= num+need) { \
+ cmd_argv =(char **)secured_realloc((gpointer)cmd_argv, \
+ (gulong)(size+ARGS_CHUNK)*sizeof(char **)); \
+ size+= ARGS_CHUNK; \
+ }
+
+#endif /* ? XGLOCK_DEBUG */
+
+ for (i = 0; i < (gint) nb_boolOpt; i++)
+ if (BoolOpt[i].value) {
+
+ /* Check dynamic tab size */
+ CHECK_REALLOC( n, sz, 1 );
+
+ /* Add the arg */
+ cmd_argv[n] = (gchar *) secured_malloc( strlen( BoolOpt[i].cmdarg )+2 );
+ (void) sprintf( cmd_argv[n], "-%s", BoolOpt[i].cmdarg );
+ n++;
+ }
+
+ /* General options */
+ for (i = 0; i < (gint) nb_genOpt; i++)
+ {
+ gchar *val;
+
+ if ( !( GTK_IS_ENTRY( generalOpt[i].text_widget ) ) ) continue;
+
+ val = (gchar *)gtk_entry_get_text( GTK_ENTRY( generalOpt[i].text_widget ));
+ if ( strlen( val ) > 0 )
+ {
+ gint j;
+ gchar *quotes;
+
+ for ( j = 0; j < (gint) nb_defaultedOptions; j++ )
+ if ( !strcmp( generalOpt[i].cmdarg, defaulted_options[j] ) )
+ break;
+ if ( j < (gint) nb_defaultedOptions )
+ {
+ gint defval = 0;
+ gfloat defflt = 1.0;
+ gboolean flt = False;
+
+ switch ( j )
+ {
+ case DEF_DELAY:
+ defval = LockProcs[selected_mode].def_delay; break;
+ case DEF_BATCHCOUNT:
+ defval = LockProcs[selected_mode].def_batchcount; break;
+ case DEF_CYCLES:
+ defval = LockProcs[selected_mode].def_cycles; break;
+ case DEF_SIZE:
+ defval = LockProcs[selected_mode].def_size; break;
+ case DEF_SATURATION:
+ flt = True;
+ defflt = LockProcs[selected_mode].def_saturation; break;
+ }
+ if (flt) {
+ if ( defflt == atoi( val ) )
+ {
+#ifdef XGLOCK_DEBUG
+ (void) fprintf(stderr,
+ "Option %s has its default value (%g): discarded\n",
+ generalOpt[i].cmdarg, defflt);
+#endif
+ continue;
+ }
+ } else {
+ if ( defval == atoi( val ) )
+ {
+#ifdef XGLOCK_DEBUG
+ (void) fprintf(stderr,
+ "Option %s has its default value (%d): discarded\n",
+ generalOpt[i].cmdarg, defval);
+#endif
+ continue;
+ }
+ }
+ }
+
+ /* Check dyntab size */
+ CHECK_REALLOC( n, sz, 2 );
+
+ cmd_argv[n] = (gchar*) secured_malloc( strlen( generalOpt[i].cmdarg )+2 );
+ (void) sprintf( cmd_argv[n], "-%s", generalOpt[i].cmdarg );
+ n++;
+
+ quotes = check_quotes( val );
+
+ cmd_argv[n] = (gchar *) secured_malloc( strlen( val )+3 );
+ (void) sprintf( cmd_argv[n], "%s%s%s", quotes, val, quotes);
+ n++;
+ }
+ }
+
+ /* font and color options */
+ for (i = 0; i < (gint) nb_fntColorOpt; i++)
+ {
+ switch ( fntcolorOpt[i].type )
+ {
+ /* Handle color parameter */
+ case TFNTCOL_COLOR:
+ {
+ gchar *val = (gchar *)gtk_entry_get_text( GTK_ENTRY( fntcolorOpt[i].entry ) );
+ gushort R, G, B;
+ gdouble T;
+ gchar opt[50];
+
+ if ( strlen( val ) > 0 )
+ {
+ CHECK_REALLOC( n, sz, 2 );
+
+ cmd_argv[n] = (gchar*) secured_malloc( strlen( fntcolorOpt[i].cmdarg )+2 );
+ (void) sprintf( cmd_argv[n], "-%s", fntcolorOpt[i].cmdarg );
+ n++;
+
+ (void) sscanf( val, "#%4hx%4hx%4hx (%lf)", &R, &G, &B, &T );
+ (void) sprintf( opt, "#%04x%04x%04x", R, G, B );
+
+ cmd_argv[n] = (gchar*) secured_malloc( strlen( opt )+3 );
+ (void) sprintf( cmd_argv[n], "\"%s\"", opt );
+ n++;
+ }
+ break;
+ }
+
+ /* Handle font or file parameters */
+ case TFNTCOL_FONT:
+ case TFNTCOL_FILE:
+ {
+ gchar *val = (gchar *)gtk_entry_get_text( GTK_ENTRY( fntcolorOpt[i].entry ) );
+ gchar *quotes;
+
+ if (strlen( val ) > 0)
+ {
+ CHECK_REALLOC( n, sz, 2 );
+
+ cmd_argv[n] = (gchar *) secured_malloc( strlen( fntcolorOpt[i].cmdarg )+2 );
+ (void) sprintf( cmd_argv[n], "-%s", fntcolorOpt[i].cmdarg );
+ n++;
+
+ quotes = check_quotes( val );
+
+ cmd_argv[n] = (gchar *) secured_malloc( strlen( val )+3 );
+ (void) sprintf( cmd_argv[n], "%s%s%s", quotes, val, quotes);
+ n++;
+ }
+ break;
+ }
+ }
+ }
+
+ /* Add a NULL ptr */
+ CHECK_REALLOC( n, sz, 1 );
+ cmd_argv[n++] =(char *)NULL;
+
+#undef CHECK_REALLOC
+
+ /* Return argv, argc, argsz */
+ *cmd_argc = n;
+ *cmd_argv_sz = sz;
+ *cmd_argv_p = cmd_argv;
+}
+
+/*
+ * kill_xlock_cb
+ * -------------
+ * Callback associated wih the Kill xlock file menu entry
+ */
+static void
+kill_xlock_cb(GtkWidget *w,
+ gpointer udata)
+{
+ guint i;
+ gint dummy = 0;
+
+ for ( i = 0; i < (guint) num_launchedprocesses; i++ )
+ if ( launchedprocesses[i] != -1 ) {
+ (void) kill( launchedprocesses[i], SIGKILL );
+ (void) wait( &dummy );
+ launchedprocesses[i] = -1;
+ }
+ num_launchedprocesses = 0;
+}
+
+/*
+ * launch_xlock
+ * ------------
+ * This callback launch the xlock command accordingly to the selected
+ * modes and options. The xlock process is launched in root window, in
+ * a window or in normal mode.
+ */
+static void
+launch_xlock(GtkWidget *w,
+ gpointer udata )
+{
+#ifdef XGLOCK_DEBUG
+ gint i;
+#endif
+ gchar *launch_opt =(char *)udata;
+ gulong args_size = 0,
+ args_cnt = 0;
+ gchar **cmd_argv =(char **)NULL;
+
+ if ( selected_mode >= 0 && selected_mode < (gint) nb_mode )
+ {
+ /* Alloc argv table */
+ args_size = ARGS_CHUNK;
+ args_cnt = 0;
+ cmd_argv =(char **)secured_calloc( ARGS_CHUNK, sizeof(char *) );
+
+ /* First arg is xlock itself */
+ cmd_argv[args_cnt] = (gchar *) secured_malloc( strlen( XLOCK )+1 );
+ (void) strcpy(cmd_argv[args_cnt], XLOCK);
+ args_cnt++;
+
+ /* If launch in window/root */
+ if ( launch_opt )
+ {
+ cmd_argv[args_cnt] = (gchar *) secured_malloc( strlen( launch_opt )+1 );
+ (void) strcpy(cmd_argv[args_cnt], launch_opt);
+ args_cnt++;
+ }
+
+ /* Mode arg */
+ cmd_argv[args_cnt] = (gchar *) secured_malloc( strlen( MODE_STRING )+1 );
+ (void) strcpy(cmd_argv[args_cnt], MODE_STRING);
+ args_cnt++;
+
+ /* Mode name */
+ cmd_argv[args_cnt] = (gchar *) secured_malloc( strlen( LockProcs[selected_mode].cmdline_arg )+1 );
+ (void) strcpy(cmd_argv[args_cnt], LockProcs[selected_mode].cmdline_arg);
+ args_cnt++;
+
+ /* Add other user selected args */
+ compose_xlock_command( &cmd_argv, &args_size, &args_cnt );
+
+#ifdef XGLOCK_DEBUG
+ (void) fprintf( stderr, "Running command: " );
+ for ( i = 0; i < args_cnt; i++ )
+ (void) fprintf( stderr, "%s ", cmd_argv[i] ? cmd_argv[i] : "\n" );
+#endif
+ /* Allocate the launched pid_t dyntab */
+ if ( !launchedprocesses )
+ {
+ launchedprocesses = (pid_t *) secured_calloc( 10, sizeof( pid_t ) );
+ sz_launchedprocesses = 10;
+ }
+ /* Grow dyntab */
+ if ( num_launchedprocesses == sz_launchedprocesses )
+ {
+ launchedprocesses = (pid_t *) secured_realloc(launchedprocesses,
+ (sz_launchedprocesses+10)*sizeof( pid_t ) );
+ sz_launchedprocesses+= 10;
+ }
+ /* Fork process to run xlock */
+ if ( (launchedprocesses[num_launchedprocesses] = FORK() ) == -1 )
+ {
+ perror( FORK_STR );
+ (void) fprintf(stderr,
+ "Cannot " FORK_STR " process for xlock !\n" );
+ }
+ /* Child process */
+ else if ( launchedprocesses[num_launchedprocesses] == 0 )
+ (void) execvp( XLOCK, cmd_argv );
+ else
+ num_launchedprocesses++;
+ }
+
+ /* Free resources */
+ while ( args_cnt-- )
+ free( cmd_argv[args_cnt] );
+ free( cmd_argv );
+ cmd_argv =(char **)NULL;
+}
+
+/*
+ * exit_xglock
+ * -----------
+ * This callback terminates the xglock process. It kills the root
+ * widget and break the gtk main loop.
+ */
+static void
+exit_xglock(GtkWidget *w,
+ gpointer udata )
+{
+ GtkWidget *root =(GtkWidget *)udata;
+ guint i;
+ gint dummy = 0;
+
+ /* Cleanup launched processes */
+ for ( i = 0; i < (guint) num_launchedprocesses; i++ )
+ if ( launchedprocesses[i] != -1 ) {
+ (void) kill( launchedprocesses[i], SIGKILL );
+ (void) wait( &dummy );
+ launchedprocesses[i] = -1;
+ }
+ num_launchedprocesses = 0;
+
+ if ( numberprocess != -1 ) {
+ (void) kill( numberprocess, SIGKILL );
+ (void) wait( &dummy );
+ numberprocess = -1;
+ }
+
+ gtk_main_quit();
+ gtk_widget_destroy(root);
+}
+
+/*
+ * destroy_window
+ * --------------
+ * Callback for destroying window
+ */
+static void
+destroy_window(GtkWidget * widget,
+ gpointer udata)
+{
+ gtk_widget_destroy( (GtkWidget *)udata );
+}
+
+/*
+ * bool_option_clicked_cb
+ * ----------------------
+ * This callback is called when a check button is clicked. It's
+ * state is then saved in the structure.
+ */
+static void
+bool_option_clicked_cb(GtkWidget *w,
+ gpointer udata )
+{
+ guint optnr =(guint)udata;
+
+ if ( !( GTK_IS_CHECK_BUTTON(w) )) return;
+
+ BoolOpt[optnr].value = !BoolOpt[optnr].value;
+#ifdef XGLOCK_DEBUG
+ (void) fprintf(stderr,
+ "Option #%ud %s is %s\n",
+ optnr, BoolOpt[optnr].cmdarg,
+ BoolOpt[optnr].value ? "ACTIVE":"INACTIVE" );
+#endif
+}
+
+/* ================================================================= */
+/* */
+/* List items' callbacks */
+/* */
+/* ================================================================= */
+
+/*
+ * mode_list_item_select_cb
+ * ------------------------
+ * Callback called when a mode list item is selected in the list.
+ * It fork the process and exec xlock in the specified mode.
+ */
+static void
+mode_list_item_select_cb(GtkWidget *w,
+ gpointer mode_nr )
+{
+ gint mode =(gint)mode_nr;
+ gint i;
+
+ if (w->state != GTK_STATE_SELECTED ) return;
+
+ if ( mode < 0 || mode >= (gint) nb_mode ) return;
+
+ selected_mode = mode;
+
+ for ( i = 0; i < (gint) nb_defaultedOptions; i++ )
+ {
+ gchar temp[30];
+ gint defval = 0, j;
+ gfloat defflt = 1.0;
+ gboolean flt = False;
+
+ for ( j = 0; j < (gint) nb_mode; j++ )
+ if ( !strcmp( generalOpt[j].cmdarg, defaulted_options[i] ) )
+ break;
+ if ( j == (gint) nb_mode ) break;
+ switch ( i ) {
+ case DEF_DELAY:
+ defval = LockProcs[selected_mode].def_delay; break;
+ case DEF_BATCHCOUNT:
+ defval = LockProcs[selected_mode].def_batchcount; break;
+ case DEF_CYCLES:
+ defval = LockProcs[selected_mode].def_cycles; break;
+ case DEF_SIZE:
+ defval = LockProcs[selected_mode].def_size; break;
+ case DEF_SATURATION:
+ flt = True;
+ defflt = LockProcs[selected_mode].def_saturation; break;
+ }
+ if (flt)
+ (void) sprintf(temp, "%g", defflt );
+ else
+ (void) sprintf(temp, "%d", defval );
+ gtk_entry_set_text(GTK_ENTRY(generalOpt[j].text_widget), temp);
+ }
+
+ if ( ( numberprocess = FORK() ) == -1 )
+ (void) fprintf( stderr, "Fork error !\n" );
+ else if ( numberprocess == 0 ) {
+ (void) execlp(XLOCK, XLOCK, "-parent", numberwidget,
+ MODE_STRING, LockProcs[mode].cmdline_arg, "-geometry", WINDOW_GEOMETRY, "-delay", "100000",
+ "-nolock", "-inwindow", "+install", 0);
+ }
+}
+
+/*
+ * mode_list_item_unselect_cb
+ * --------------------------
+ * Callback called when a mode list item is deselected in the list.
+ * It kills the child process forked to display preview in the
+ * preview window.
+ */
+static void
+mode_list_item_unselect_cb(GtkWidget *w,
+ gpointer udata )
+{
+ gint dummy = 0;
+
+ if ( w->state == GTK_STATE_SELECTED ) return;
+
+ selected_mode = -1;
+
+ if ( numberprocess != -1 ) {
+ (void) kill( numberprocess, SIGKILL );
+ (void) wait( &dummy );
+ numberprocess = -1;
+ }
+}
+
+/* ================================================================= */
+/* */
+/* Color selection dialog */
+/* */
+/* ================================================================= */
+
+/*
+ * color_selection_cancel_cb
+ * -------------------------
+ * Cancel callback for color selection dialog
+ */
+static void
+color_selection_cancel_cb(GtkWidget *w,
+ gpointer udata)
+{
+ struct_option_fntcol_callback *cbs_ptr =(struct_option_fntcol_callback *)udata;
+ gtk_widget_hide(cbs_ptr->fntcol_dialog);
+ gtk_widget_destroy(cbs_ptr->fntcol_dialog);
+ (void) g_free(udata);
+}
+
+/*
+ * color_selection_ok_cb
+ * ---------------------
+ * Ok callback for color selection dialog
+ */
+static void
+color_selection_ok_cb(GtkWidget *w,
+ gpointer udata)
+{
+ struct_option_fntcol_callback *cbs_ptr =(struct_option_fntcol_callback *)udata;
+ GtkColorSelection *colorsel;
+ GdkColor gdkcol_bg;
+#if (!(GTK_CHECK_VERSION(2,0,0)))
+ gdouble colors[4];
+#endif
+ gchar colorstr[30];
+
+ colorsel = GTK_COLOR_SELECTION( GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->colorsel );
+
+#if GTK_CHECK_VERSION(2,0,0)
+ gtk_color_selection_get_current_color(colorsel, &gdkcol_bg);
+ gtk_color_selection_set_current_color(colorsel, &gdkcol_bg);
+ gtk_color_selection_get_current_alpha(colorsel);
+
+ (void) sprintf(colorstr, "#%04x%04x%04x (%3.2f)",
+ gdkcol_bg.red,
+ gdkcol_bg.green,
+ gdkcol_bg.blue,
+ (gdouble)(gtk_color_selection_get_current_alpha(colorsel)/65535.0));
+#else
+ gtk_color_selection_get_color(colorsel, colors);
+ gtk_color_selection_set_color(colorsel, colors);
+
+ (void) sprintf(colorstr, "#%04x%04x%04x (%3.2f)",
+ (gushort)(colors[0] * 0xffff),
+ (gushort)(colors[1] * 0xffff),
+ (gushort)(colors[2] * 0xffff),
+ colors[3]);
+
+ gdkcol_bg.red = (gushort)(colors[0] * 0xffff);
+ gdkcol_bg.green = (gushort)(colors[1] * 0xffff);
+ gdkcol_bg.blue = (gushort)(colors[2] * 0xffff);
+#endif
+ gdk_color_alloc(gdkcolormap, &gdkcol_bg);
+
+#ifdef XGLOCK_DEBUG
+ (void) fprintf(stderr,
+ "Parsed bg color: color=#%04x%04x%04x pixel=%lx\n",
+ gdkcol_bg.red,
+ gdkcol_bg.green,
+ gdkcol_bg.blue,
+ gdkcol_bg.pixel);
+#endif
+ gdk_window_set_background(GTK_WIDGET(cbs_ptr->drawing_area)->window, &gdkcol_bg);
+ gdk_window_clear(GTK_WIDGET(cbs_ptr->drawing_area)->window);
+ gdk_flush();
+
+ gtk_entry_set_text( GTK_ENTRY(cbs_ptr->entry), colorstr );
+ gtk_widget_hide( cbs_ptr->fntcol_dialog );
+ gtk_widget_destroy(cbs_ptr->fntcol_dialog);
+ (void) g_free(udata);
+}
+
+/*
+ * color_selection_changed_cb
+ * --------------------------
+ * Color changed callback for color selection dialog (update the current color)
+ */
+static void
+color_selection_changed_cb(GtkWidget *w,
+ gpointer udata)
+{
+ GtkWidget *colorsel_dialog =(GtkWidget *)udata;
+ GtkColorSelection *colorsel;
+#if GTK_CHECK_VERSION(2,0,0)
+ GdkColor gdkcol_bg;
+#else
+ gdouble colors[4];
+#endif
+
+ colorsel = GTK_COLOR_SELECTION( GTK_COLOR_SELECTION_DIALOG(colorsel_dialog)->colorsel );
+#if GTK_CHECK_VERSION(2,0,0)
+ gtk_color_selection_get_current_color(colorsel, &gdkcol_bg);
+#else
+ gtk_color_selection_get_color(colorsel, colors);
+#endif
+}
+
+/*
+ * create_color_selection_dialog
+ * -----------------------------
+ * Create a color selection dialog. Is the callback for a color option
+ * choice button
+ */
+static void
+create_color_selection_dialog(GtkWidget *w,
+ gpointer udata)
+{
+ struct_option_fntcol *optentry =(struct_option_fntcol *)udata;
+#if GTK_CHECK_VERSION(2,0,0)
+ GdkColor gdkcol_bg;
+#endif
+ gdouble colors[4];
+ gchar *val;
+ struct_option_fntcol_callback *cbs_ptr;
+
+ cbs_ptr =(struct_option_fntcol_callback *)secured_malloc(sizeof(struct_option_fntcol_callback));
+
+ gtk_preview_set_install_cmap(TRUE);
+ gtk_widget_push_visual(gtk_preview_get_visual());
+ gtk_widget_push_colormap(gtk_preview_get_cmap());
+
+ cbs_ptr->fntcol_dialog = gtk_color_selection_dialog_new("color selection dialog");
+ cbs_ptr->entry = optentry->entry;
+ cbs_ptr->drawing_area = optentry->drawing_area;
+
+ val = (gchar *)gtk_entry_get_text( GTK_ENTRY(cbs_ptr->entry) );
+ if ( strlen( val ) > 0 )
+ {
+ gushort R, G, B;
+
+ (void) sscanf( val, "#%04hx%04hx%04hx (%lf)", &R, &G, &B, &colors[3]);
+ gtk_color_selection_set_opacity(GTK_COLOR_SELECTION( GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->colorsel),
+ colors[3] < 1.0);
+#if GTK_CHECK_VERSION(2,0,0)
+ if (colors[3] < 1.0)
+ gtk_color_selection_set_current_alpha(
+ GTK_COLOR_SELECTION( GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->colorsel),
+ (guint16)(colors[3] * 65535.0));
+ gdkcol_bg.red = R;
+ gdkcol_bg.green = G;
+ gdkcol_bg.blue = B;
+ gtk_color_selection_set_current_color(
+ GTK_COLOR_SELECTION( GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->colorsel),
+ &gdkcol_bg);
+#else
+ colors[0] = R /(gdouble)0xffff;
+ colors[1] = G /(gdouble)0xffff;
+ colors[2] = B /(gdouble)0xffff;
+ gtk_color_selection_set_color(GTK_COLOR_SELECTION( GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->colorsel),
+ colors);
+#endif
+ }
+
+ gtk_color_selection_set_opacity(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->colorsel),
+ TRUE);
+
+ gtk_color_selection_set_update_policy(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->colorsel),
+ GTK_UPDATE_CONTINUOUS);
+
+ gtk_window_position(GTK_WINDOW(cbs_ptr->fntcol_dialog), GTK_WIN_POS_MOUSE);
+ gtk_signal_connect(GTK_OBJECT(cbs_ptr->fntcol_dialog), "destroy",
+ (GtkSignalFunc) destroy_window,
+ (gpointer) cbs_ptr->fntcol_dialog);
+
+ gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->colorsel),
+ "color_changed",
+ (GtkSignalFunc) color_selection_changed_cb,
+ (gpointer) cbs_ptr->fntcol_dialog);
+
+ gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->ok_button),
+ "clicked",
+ (GtkSignalFunc) color_selection_ok_cb,
+ (gpointer) cbs_ptr);
+
+ gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->cancel_button),
+ "clicked",
+ (GtkSignalFunc) color_selection_cancel_cb,
+ (gpointer) cbs_ptr);
+
+ gtk_widget_pop_colormap();
+ gtk_widget_pop_visual();
+ gtk_widget_show(cbs_ptr->fntcol_dialog);
+}
+
+/* ================================================================= */
+/* */
+/* Font selection dialog */
+/* */
+/* ================================================================= */
+
+/*
+ * font_select_cancel_cb
+ * ---------------------
+ * Font dialog cancel button callback
+ */
+static void
+font_select_cancel_cb(GtkWidget *w,
+ gpointer udata)
+{
+ struct_option_fntcol_callback *cbs_ptr = (struct_option_fntcol_callback *)udata;
+ gtk_widget_hide(cbs_ptr->fntcol_dialog);
+ gtk_widget_destroy(cbs_ptr->fntcol_dialog);
+ (void) g_free(udata);
+}
+
+/*
+ * font_select_ok_cb
+ * -----------------
+ * Font dialog ok button callback
+ */
+static void
+font_select_ok_cb(GtkWidget *w,
+ gpointer udata)
+{
+ struct_option_fntcol_callback *cbs_ptr = (struct_option_fntcol_callback *)udata;
+ gtk_widget_hide(cbs_ptr->fntcol_dialog);
+ gtk_entry_set_text(GTK_ENTRY(cbs_ptr->entry),
+ gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)));
+ gtk_widget_destroy(cbs_ptr->fntcol_dialog);
+ (void) g_free(udata);
+}
+
+/*
+ * create_font_selection_dialog
+ * ----------------------------
+ * Create a font selection dialog for font parameters
+ */
+static void
+create_font_selection_dialog(GtkWidget *w,
+ gpointer udata)
+{
+ struct_option_fntcol *optentry =(struct_option_fntcol *)udata;
+ struct_option_fntcol_callback *cbs_ptr;
+ gchar *fontname;
+
+ cbs_ptr =(struct_option_fntcol_callback *)secured_malloc( sizeof(struct_option_fntcol_callback) );
+ cbs_ptr->fntcol_dialog =(GtkWidget *)NULL;
+ cbs_ptr->entry = optentry->entry;
+ cbs_ptr->drawing_area =(GtkWidget *)NULL;
+
+ cbs_ptr->fntcol_dialog = gtk_font_selection_dialog_new("Xglock Font Selection Dialog");
+ fontname = (gchar *)gtk_entry_get_text(GTK_ENTRY(optentry->entry));
+ if ( fontname && strlen(fontname) )
+ gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(cbs_ptr->fntcol_dialog), fontname);
+ gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->ok_button), "clicked",
+ GTK_SIGNAL_FUNC(font_select_ok_cb),
+ (gpointer) cbs_ptr);
+ gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(cbs_ptr->fntcol_dialog)->cancel_button), "clicked",
+ GTK_SIGNAL_FUNC(font_select_cancel_cb),
+ (gpointer) cbs_ptr);
+ gtk_widget_show(cbs_ptr->fntcol_dialog);
+}
+
+/* ================================================================= */
+/* */
+/* File selection dialog */
+/* */
+/* ================================================================= */
+
+/*
+ * file_selection_cancel_cb
+ * ------------------------
+ * File selector Cancel callback
+ */
+static void
+file_selection_cancel_cb(GtkWidget *w,
+ gpointer udata)
+{
+ struct_option_fntcol_callback *cbs_ptr= (struct_option_fntcol_callback *)udata;
+ gtk_widget_hide( cbs_ptr->fntcol_dialog );
+ gtk_widget_destroy( cbs_ptr->fntcol_dialog );
+ (void) g_free(udata);
+}
+
+/*
+ * file_selection_ok_cb
+ * --------------------
+ * File selector OK callback
+ */
+static void
+file_selection_ok_cb(GtkWidget *w,
+ gpointer udata)
+{
+ struct stat stbuf;
+ struct_option_fntcol_callback *cbs_ptr= (struct_option_fntcol_callback *)udata;
+ gchar *filename;
+
+ /* Be sure file exist. We could be more paranoia */
+ filename = (gchar *)gtk_file_selection_get_filename(GTK_FILE_SELECTION(cbs_ptr->fntcol_dialog));
+ if ( stat(filename, &stbuf) != -1 )
+ {
+ gtk_widget_hide(cbs_ptr->fntcol_dialog);
+ gtk_entry_set_text(GTK_ENTRY(cbs_ptr->entry), filename);
+ gtk_widget_destroy(cbs_ptr->fntcol_dialog);
+ (void) g_free(udata);
+ }
+}
+
+/*
+ * create_file_selection_dialog
+ * ----------------------------
+ * Create a file selection dialog for file path parameters (
+ */
+static void
+create_file_selection_dialog(GtkWidget *w,
+ struct_option_fntcol *optentry )
+{
+ struct_option_fntcol_callback *cbs_ptr;
+
+ cbs_ptr =(struct_option_fntcol_callback *)secured_malloc( sizeof(struct_option_fntcol_callback) );
+ cbs_ptr->fntcol_dialog = gtk_file_selection_new("file selection dialog");
+ cbs_ptr->entry = optentry->entry;
+ cbs_ptr->drawing_area =(GtkWidget *)NULL;
+ gtk_window_position(GTK_WINDOW(cbs_ptr->fntcol_dialog), GTK_WIN_POS_MOUSE);
+ gtk_signal_connect(GTK_OBJECT(cbs_ptr->fntcol_dialog), "destroy",
+ (GtkSignalFunc) destroy_window,
+ (gpointer) cbs_ptr->fntcol_dialog);
+ gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(cbs_ptr->fntcol_dialog)->ok_button),
+ "clicked", (GtkSignalFunc) file_selection_ok_cb,
+ (gpointer) cbs_ptr);
+ gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(cbs_ptr->fntcol_dialog)->cancel_button),
+ "clicked", (GtkSignalFunc) file_selection_cancel_cb,
+ (gpointer) cbs_ptr);
+ gtk_widget_show(cbs_ptr->fntcol_dialog);
+}
+
+/* ================================================================= */
+/* */
+/* Help dialogs routines */
+/* */
+/* ================================================================= */
+
+static void
+contextual_help_dialog(GtkWidget *w,
+ gpointer udata )
+{
+ (void) fprintf(stderr, "contextual_help_dialog !\n");
+}
+
+static void
+window_help_dialog(GtkWidget *w,
+ gpointer udata )
+{
+ (void) fprintf(stderr, "window_help_dialog !\n");
+}
+
+static void
+global_help_dialog(GtkWidget *w,
+ gpointer udata )
+{
+ (void) fprintf(stderr, "global_help_dialog !\n");
+}
+
+static void about_dialog_close_callback(GtkWidget *widget, gpointer data)
+{
+ gtk_widget_destroy(GTK_WIDGET (data));
+}
+
+static void
+about_dialog(GtkWidget *w,
+ gpointer udata )
+{
+ GtkWidget *xdlg;
+ GtkWidget *xlabel;
+ GtkWidget *xbutton;
+ GtkWidget *xlogo_box;
+ GtkWidget *xpreview;
+ GtkWidget *xframe,*xframe2;
+ GtkWidget *xvbox;
+ GtkWidget *xhbox;
+ char *text;
+ guchar *temp,*temp2;
+ guchar *datapointer;
+ gint y,x;
+ xdlg = gtk_dialog_new();
+ gtk_window_set_title(GTK_WINDOW(xdlg), "About");
+ gtk_window_position(GTK_WINDOW(xdlg), GTK_WIN_POS_CENTER);
+ gtk_signal_connect(GTK_OBJECT(xdlg), "destroy",
+ (GtkSignalFunc)about_dialog_close_callback,
+ xdlg);
+
+ xbutton = gtk_button_new_with_label("Ok");
+ GTK_WIDGET_SET_FLAGS(xbutton, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(xbutton), "clicked",
+ (GtkSignalFunc)about_dialog_close_callback,
+ xdlg);
+ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(xdlg)->action_area),
+ xbutton, TRUE, TRUE, 0);
+ gtk_widget_grab_default(xbutton);
+ gtk_widget_show(xbutton);
+ gtk_tooltips_set_tip(tooltips,xbutton,"Click here to close the information box.",(gchar *)NULL);
+
+ xframe = gtk_frame_new(NULL);
+ gtk_frame_set_shadow_type(GTK_FRAME(xframe), GTK_SHADOW_ETCHED_IN);
+ gtk_container_border_width(GTK_CONTAINER(xframe), 10);
+ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(xdlg)->vbox), xframe, TRUE, TRUE, 0);
+ xvbox = gtk_vbox_new(FALSE, 5);
+ gtk_container_border_width(GTK_CONTAINER(xvbox), 10);
+ gtk_container_add(GTK_CONTAINER(xframe), xvbox);
+
+ /* The logo frame & drawing area */
+ xhbox = gtk_hbox_new (FALSE, 5);
+ gtk_box_pack_start (GTK_BOX (xvbox), xhbox, FALSE, TRUE, 0);
+
+ xlogo_box = gtk_vbox_new (FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (xhbox), xlogo_box, FALSE, FALSE, 0);
+
+ xframe2 = gtk_frame_new (NULL);
+ gtk_frame_set_shadow_type (GTK_FRAME (xframe2), GTK_SHADOW_IN);
+ gtk_box_pack_start (GTK_BOX (xlogo_box), xframe2, FALSE, FALSE, 0);
+
+ xpreview = gtk_preview_new (GTK_PREVIEW_COLOR);
+ gtk_preview_size (GTK_PREVIEW (xpreview), logo_width, logo_height);
+ temp = g_new (guchar,logo_width * 3);
+ datapointer=(guchar *)header_data;
+ for (y = 0; y < (gint) logo_height; y++)
+ {
+ temp2=temp;
+ for (x = 0; x< (gint) logo_width; x++)
+ {
+ HEADER_PIXEL(datapointer,temp2);
+ temp2+=3;
+ }
+ gtk_preview_draw_row (GTK_PREVIEW (xpreview), temp,
+ 0, y, logo_width);
+ }
+ g_free(temp);
+ gtk_container_add (GTK_CONTAINER (xframe2), xpreview);
+ gtk_widget_show (xpreview);
+ gtk_widget_show (xframe2);
+ gtk_widget_show (xlogo_box);
+ gtk_widget_show (xhbox);
+
+ xhbox = gtk_hbox_new(FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(xvbox), xhbox, TRUE, TRUE, 0);
+ text = "\nFirst written by Charles Vidal <cvidal@ivsweb.com>.\n"
+#if GTK_CHECK_VERSION(2,0,0)
+ "Latest GTK+ 2.x by Éric Lassauge <lassauge@users.sourceforge.net>.\n\n"
+#else
+ "Updates by Eric Lassauge <lassauge@users.sourceforge.net>.\n\n"
+#endif
+ "GTK+ launcher for xlockmore: the maintained version of xlock.\n"
+ "http://www.tux.org/~bagleyd/xlockmore.html\n"
+ "Version 3.0\n";
+
+ xlabel = gtk_label_new(text);
+ gtk_box_pack_start(GTK_BOX(xhbox), xlabel, TRUE, FALSE, 0);
+ gtk_widget_show(xlabel);
+
+ gtk_widget_show(xhbox);
+
+ gtk_widget_show(xvbox);
+ gtk_widget_show(xframe);
+ gtk_widget_show(xdlg);
+}
+
+
+/* ================================================================= */
+/* */
+/* Menu bar creation routines */
+/* */
+/* ================================================================= */
+
+/*
+ * create_file_menu
+ * ----------------
+ * Create the file menu attached to file menubar item
+ */
+static GtkWidget *
+create_file_menu(GtkWidget *window)
+{
+ GtkWidget *menu;
+ GtkWidget *menu_item;
+ GtkAccelGroup *group;
+
+ menu = gtk_menu_new();
+ group = gtk_accel_group_new();
+ gtk_menu_set_accel_group (GTK_MENU (menu), group);
+
+ menu_item = gtk_menu_item_new_with_label("Kill xlock");
+ gtk_container_add( GTK_CONTAINER (menu), menu_item);
+ gtk_widget_add_accelerator(menu_item,
+ "activate",
+ group,
+ 'K',
+ (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
+ gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
+ (GtkSignalFunc) kill_xlock_cb,
+ (gpointer) window);
+ gtk_widget_show(menu_item);
+
+ menu_item = gtk_menu_item_new_with_label("Quit");
+ gtk_container_add( GTK_CONTAINER (menu), menu_item);
+ gtk_widget_add_accelerator(menu_item,
+ "activate",
+ group,
+ 'Q',
+ (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
+ gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
+ (GtkSignalFunc) exit_xglock,
+ (gpointer) window);
+ gtk_widget_show(menu_item);
+
+ return menu;
+}
+
+/*
+ * create_help_menu
+ * ----------------
+ * Create the help menu attached to help menubar item
+ */
+static GtkWidget *
+create_help_menu(GtkWidget *window)
+{
+ GtkWidget *menu;
+ GtkWidget *menu_item;
+ GtkAccelGroup *group;
+
+ menu = gtk_menu_new();
+ group = gtk_accel_group_new();
+ gtk_menu_set_accel_group (GTK_MENU (menu), group);
+
+ menu_item = gtk_menu_item_new_with_label("Context help");
+ gtk_container_add( GTK_CONTAINER (menu), menu_item);
+ gtk_widget_add_accelerator(menu_item,
+ "activate",
+ group,
+ 'C',
+ (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
+ gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
+ (GtkSignalFunc) contextual_help_dialog,
+ (gpointer) window);
+ gtk_widget_show(menu_item);
+
+ menu_item = gtk_menu_item_new_with_label("Window help");
+ gtk_container_add( GTK_CONTAINER (menu), menu_item);
+ gtk_widget_add_accelerator(menu_item,
+ "activate",
+ group,
+ 'W',
+ (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
+ gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
+ (GtkSignalFunc) window_help_dialog,
+ (gpointer) window);
+ gtk_widget_show(menu_item);
+
+ menu_item = gtk_menu_item_new_with_label("Global help");
+ gtk_container_add( GTK_CONTAINER (menu), menu_item);
+ gtk_widget_add_accelerator(menu_item,
+ "activate",
+ group,
+ 'G',
+ (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
+ gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
+ (GtkSignalFunc) global_help_dialog,
+ (gpointer) window);
+ gtk_widget_show(menu_item);
+
+ menu_item = gtk_menu_item_new_with_label("About XgLock");
+ gtk_container_add( GTK_CONTAINER (menu), menu_item);
+ gtk_widget_add_accelerator(menu_item,
+ "activate",
+ group,
+ 'A',
+ (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
+ gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
+ (GtkSignalFunc) about_dialog,
+ (gpointer) window);
+ gtk_widget_show(menu_item);
+
+ return menu;
+}
+
+/* ================================================================= */
+/* */
+/* Special parameters' dialog creation */
+/* */
+/* ================================================================= */
+
+/*
+ * create_fntColorOptions_entries
+ * ------------------------------
+ * Create all entries for font and color options.
+ */
+static void
+create_fntColorOptions_entries(GtkScrolledWindow *window)
+{
+ gint i;
+ GtkWidget *box0;
+ GtkWidget *box1;
+ GtkWidget *table;
+ GtkWidget *label;
+ GtkWidget *entry;
+ GtkWidget *button =(GtkWidget *)NULL;
+ GdkColor gdkcol_bg;
+ GdkColor gdkcol_fg;
+
+
+ box0 = gtk_hbox_new(FALSE, 0);
+ gtk_scrolled_window_add_with_viewport(window, box0);
+ gtk_widget_show(box0);
+
+ table = gtk_table_new(nb_fntColorOpt,6,0);
+ gtk_table_set_row_spacings(GTK_TABLE(table),XGLOCK_TABLE_ROW_SPACING);
+ gtk_table_set_col_spacings(GTK_TABLE(table),XGLOCK_TABLE_COL_SPACING);
+ gtk_container_border_width(GTK_CONTAINER(table),XGLOCK_TABLE_BORDER_WIDTH);
+ gtk_box_pack_start(GTK_BOX(box0),table,TRUE,TRUE,XGLOCK_SPACING);
+ gtk_widget_show(table);
+
+ for (i = 0; i < (gint) nb_fntColorOpt; i++) {
+
+ label = gtk_label_new(fntcolorOpt[i].label);
+ gtk_table_attach(GTK_TABLE(table),label,
+ 0,1,i,i+1,
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ XGLOCK_TABLE_SPACING,
+ XGLOCK_TABLE_SPACING);
+ gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
+ gtk_widget_show(label);
+
+ fntcolorOpt[i].entry = entry = gtk_entry_new();
+ gtk_entry_set_editable(GTK_ENTRY(entry), False);
+ gtk_widget_set_usize(entry, 0, 21);
+ gtk_tooltips_set_tip(tooltips, entry, fntcolorOpt[i].desc,(gchar *)NULL);
+ gtk_table_attach(GTK_TABLE(table),entry,
+ 1,5,i,i+1,
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ XGLOCK_TABLE_SPACING,
+ XGLOCK_TABLE_SPACING);
+ gtk_widget_show(entry);
+
+ switch ( fntcolorOpt[i].type ) {
+
+ case TFNTCOL_COLOR:
+ box1 = gtk_hbox_new(FALSE, 0);
+ gtk_container_border_width(GTK_CONTAINER(box1),XGLOCK_TABLE_BORDER_WIDTH);
+ gtk_table_attach(GTK_TABLE(table),box1,
+ 5,6,i,i+1,
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ XGLOCK_TABLE_SPACING,
+ XGLOCK_TABLE_SPACING);
+ gtk_widget_show(box1);
+
+ gdkcol_bg.red = 0x0000;
+ gdkcol_bg.green = 0x0000;
+ gdkcol_bg.blue = 0x0000;
+ gdk_color_alloc(gdkcolormap, &gdkcol_bg);
+ gdkcol_bg.red = 0xffff;
+ gdkcol_bg.green = 0xffff;
+ gdkcol_bg.blue = 0xffff;
+ gdk_color_alloc(gdkcolormap, &gdkcol_fg);
+ button = gtk_button_new_with_label( "Select color ..." );
+ gtk_signal_connect(GTK_OBJECT(button), "clicked",
+ (GtkSignalFunc) create_color_selection_dialog,
+ (gpointer)&fntcolorOpt[i]);
+ GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS);
+ gtk_tooltips_set_tip(tooltips, button, fntcolorOpt[i].desc,(gchar *)NULL);
+ gtk_box_pack_start(GTK_BOX(box1), button, FALSE, TRUE, 0);
+ gtk_widget_show(button);
+
+ fntcolorOpt[i].drawing_area = gtk_drawing_area_new();
+ gtk_tooltips_set_tip(tooltips, fntcolorOpt[i].drawing_area, fntcolorOpt[i].desc,(gchar *)NULL);
+ gtk_widget_set_usize(fntcolorOpt[i].drawing_area, 10, 21);
+ gtk_container_add(GTK_CONTAINER(box1), fntcolorOpt[i].drawing_area);
+ gtk_widget_show(fntcolorOpt[i].drawing_area);
+
+ break;
+
+ case TFNTCOL_FONT:
+ button = gtk_button_new_with_label( "Select font ..." );
+ gtk_signal_connect(GTK_OBJECT(button), "clicked",
+ (GtkSignalFunc) create_font_selection_dialog,
+ (gpointer)&fntcolorOpt[i]);
+ GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS);
+ gtk_tooltips_set_tip(tooltips, button, fntcolorOpt[i].desc,(gchar *)NULL);
+ gtk_table_attach(GTK_TABLE(table),button,
+ 5,6,i,i+1,
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ XGLOCK_TABLE_SPACING,
+ XGLOCK_TABLE_SPACING);
+ gtk_widget_show(button);
+ break;
+
+ case TFNTCOL_FILE:
+ button = gtk_button_new_with_label( "Select file ..." );
+ gtk_signal_connect(GTK_OBJECT(button), "clicked",
+ (GtkSignalFunc) create_file_selection_dialog,
+ (gpointer)&fntcolorOpt[i]);
+ GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS);
+ gtk_tooltips_set_tip(tooltips, button, fntcolorOpt[i].desc,(gchar *)NULL);
+ gtk_table_attach(GTK_TABLE(table),button,
+ 5,6,i,i+1,
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
+ XGLOCK_TABLE_SPACING,
+ XGLOCK_TABLE_SPACING);
+ gtk_widget_show(button);
+ break;
+
+ default:
+ (void) fprintf(stderr,
+ "Program Inconsistency: Unknown parameter type #%d !\n",
+ fntcolorOpt[i].type );
+ }
+
+ if ( fntcolorOpt[i].drawing_area && GTK_WIDGET(fntcolorOpt[i].drawing_area)->window )
+ gdk_window_set_background(GTK_WIDGET(fntcolorOpt[i].drawing_area)->window,
+ &gdkcol_bg);
+ }
+}
+
+/* ================================================================= */
+/* */
+/* Create general optrions entries */
+/* */
+/* ================================================================= */
+
+/*
+ * create_genOptions_entries
+ * -------------------------
+ * Create all entries for general options (text fields).
+ */
+static void
+create_genOptions_entries(GtkScrolledWindow *window)
+{
+ gint i;
+/* gint j; */
+ GtkWidget *box0;
+ GtkWidget *box1;
+ GtkWidget *box2;
+ GtkWidget *entry;
+ GtkWidget *label;
+
+
+ box0 = gtk_hbox_new(FALSE, 0);
+ gtk_scrolled_window_add_with_viewport(window, box0);
+ gtk_widget_show(box0);
+
+ box1 = gtk_vbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(box0), box1);
+ gtk_widget_show(box1);
+
+ box2 = gtk_vbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(box0), box2);
+ gtk_widget_show(box2);
+
+ for (i = 0; i < (gint) nb_genOpt; i++) {
+ label = gtk_label_new(generalOpt[i].label);
+ gtk_widget_set_usize(label, 60, 21);
+ gtk_box_pack_start(GTK_BOX(box1), label, FALSE, TRUE, 0);
+ gtk_widget_show(label);
+ }
+ for (i = 0; i < (gint) nb_genOpt; i++) {
+ entry = gtk_entry_new();
+ gtk_widget_set_usize(entry, 350, 21);
+ gtk_tooltips_set_tip(tooltips, entry, generalOpt[i].desc,(gchar *)NULL);
+ gtk_box_pack_start(GTK_BOX(box2), entry, FALSE, TRUE, 0);
+ gtk_widget_show(entry);
+ generalOpt[i].text_widget = entry;
+ }
+}
+
+/* ================================================================= */
+/* */
+/* Create boolean options check buttons */
+/* */
+/* ================================================================= */
+
+/*
+ * create_boolOptions_buttons
+ * --------------------------
+ * Creates all toggles buttons for boolean options
+ */
+static void
+create_boolOptions_buttons(GtkScrolledWindow *parent)
+{
+ gint i;
+ GtkWidget *box0;
+ GtkWidget *box1;
+ GtkWidget *box2;
+ GtkWidget *button;
+
+
+ box0 = gtk_hbox_new(FALSE, 0);
+ gtk_scrolled_window_add_with_viewport(parent, box0);
+ gtk_widget_show(box0);
+
+ box1 = gtk_vbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(box0), box1);
+ gtk_widget_show(box1);
+
+ box2 = gtk_vbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(box0), box2);
+ gtk_widget_show(box2);
+
+ for (i = 0; i < (gint) nb_boolOpt; i++) {
+ button = gtk_check_button_new_with_label(BoolOpt[i].label);
+ gtk_tooltips_set_tip(tooltips, button, BoolOpt[i].desc,(gchar *)NULL);
+ gtk_box_pack_start(GTK_BOX(i%2 ? box1 : box2), button, TRUE, TRUE, 0);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked",
+ (GtkSignalFunc) bool_option_clicked_cb,
+ (gpointer)i);
+ gtk_widget_show(button);
+ }
+}
+
+/* ================================================================= */
+/* */
+/* Main function */
+/* */
+/* ================================================================= */
+
+int
+main(gint argc, gchar *argv[])
+{
+ GtkWidget *xglockroot;
+ GdkWindow *gdkwin;
+ Window *xwin;
+
+ GtkWidget *box0;
+ GtkWidget *box1;
+ GtkWidget *box2;
+ GtkWidget *box3;
+ GtkWidget *scrolled_win;
+ GtkWidget *list;
+ GtkWidget *list_item;
+ GtkWidget *button;
+ GtkWidget *separator;
+ GtkWidget *menubar;
+ GtkWidget *menuitem;
+ GtkWidget *menu;
+ GtkWidget *previewButton;
+ GtkWidget *notebook;
+ GtkWidget *frame;
+ GtkWidget *label;
+ gint i;
+ gchar temp[100];
+
+ /* Init for some data */
+ nb_mode = sizeof (LockProcs) / sizeof (LockProcs[0]);
+ nb_boolOpt = sizeof (BoolOpt) / sizeof (BoolOpt[0]);
+ nb_genOpt = sizeof (generalOpt) / sizeof (generalOpt[0]);
+ nb_fntColorOpt = sizeof (fntcolorOpt) / sizeof (fntcolorOpt[0]);
+
+#ifdef USE_MB
+ gtk_set_locale();
+#endif
+ gtk_init(&argc, &argv);
+ gtk_rc_parse(XGLOCKRC_FILE);
+ gtk_rc_parse("xglockrc");
+
+/*
+ gdkvisual = gdk_visual_get_best();
+ gdkcolormap = gdk_colormap_new(gdkvisual, False);
+*/
+ /* E.Lassauge : now it works in 8bits Pseudo-Color */
+ gdkcolormap = gdk_colormap_get_system();
+
+ xglockroot = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_widget_set_name(xglockroot, "xglock");
+ gtk_window_set_title(GTK_WINDOW(xglockroot), "GTK+ XLock Launcher");
+ gtk_window_set_wmclass (GTK_WINDOW (xglockroot), "XgLock", "XLock");
+
+ tooltips = gtk_tooltips_new();
+
+ box1 = gtk_vbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(xglockroot), box1);
+ gtk_widget_show(box1);
+
+ box0 = gtk_vbox_new(FALSE, 10);
+ gtk_container_border_width(GTK_CONTAINER(box0), 10);
+ gtk_box_pack_start(GTK_BOX(box1), box0, TRUE, TRUE, 0);
+ gtk_widget_show(box0);
+
+ box2 = gtk_hbox_new(FALSE, 10);
+ gtk_container_border_width(GTK_CONTAINER(box2), 10);
+ gtk_box_pack_start(GTK_BOX(box1), box2, TRUE, TRUE, 0);
+ gtk_widget_show(box2);
+
+ /* menu bar */
+ menubar = gtk_menu_bar_new();
+ gtk_box_pack_start(GTK_BOX(box0), menubar, FALSE, TRUE, 0);
+ gtk_widget_show(menubar);
+
+ /* File menu and File menu bar item */
+ menu = create_file_menu(xglockroot);
+ menuitem = gtk_menu_item_new_with_label("File");
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu);
+ gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem);
+ gtk_widget_show(menuitem);
+
+ /* File menu and File menu bar item */
+ menu = create_help_menu(xglockroot);
+ menuitem = gtk_menu_item_new_with_label("Help");
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu);
+ gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem);
+ gtk_widget_show(menuitem);
+
+ /* Third box containing preview button */
+ box3 = gtk_hbox_new(FALSE, 10);
+ gtk_widget_set_usize(box3, WINDOW_WIDTH+20, WINDOW_HEIGHT );
+ gtk_container_border_width(GTK_CONTAINER(box3), 1);
+ gtk_box_pack_start(GTK_BOX(box0), box3, TRUE, TRUE, 0);
+ gtk_widget_show(box3);
+
+ /* Preview window */
+#if GTK_CHECK_VERSION(2,0,0)
+ {
+ GdkColor color;
+ GtkTextBuffer *buffer;
+
+ /* a text view because I need here an X window (Button has no more
+ * a window in Gtk2 ! */
+ previewButton = gtk_text_view_new();
+ gtk_text_view_set_editable(GTK_TEXT_VIEW(previewButton), FALSE);
+ gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(previewButton), FALSE);
+ gtk_text_view_set_justification(GTK_TEXT_VIEW(previewButton), GTK_JUSTIFY_CENTER);
+ gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(previewButton),30);
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW (previewButton));
+ gtk_text_buffer_set_text (buffer, "Preview window", -1);
+ gdk_color_parse ("red", &color);
+ gtk_widget_modify_text( previewButton, GTK_STATE_NORMAL, &color);
+ }
+#else
+ /* button because I need here an X window */
+ previewButton = gtk_button_new_with_label( "Preview window" );
+#endif
+ gtk_widget_set_name(previewButton,"preview_button");
+ gtk_widget_set_usize(previewButton, WINDOW_WIDTH, WINDOW_HEIGHT );
+ gtk_box_pack_start(GTK_BOX(box3), previewButton, TRUE, FALSE, 10);
+ gtk_tooltips_set_tip(tooltips, previewButton, "This is the preview window",(gchar *)NULL);
+ gtk_widget_realize(previewButton);
+ gtk_widget_show(previewButton);
+
+ /* Getting X window id through GDK */
+ gdkwin = GTK_WIDGET(previewButton)->window;
+ xwin =(Window *)GDK_WINDOW_XWINDOW( gdkwin );
+ (void) sprintf(numberwidget, "%ld",(unsigned long)xwin );
+
+ /* notebook */
+ notebook = gtk_notebook_new();
+ gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP);
+ gtk_box_pack_start(GTK_BOX(box2), notebook, TRUE, TRUE, 0);
+ gtk_widget_show(notebook);
+
+ /* list of modes */
+ frame = gtk_frame_new("Choice of the mode");
+ gtk_container_border_width(GTK_CONTAINER(frame), 10);
+ gtk_widget_set_usize(frame, FRAME_WIDTH, FRAME_HEIGHT);
+
+ /* list */
+ scrolled_win = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_container_add(GTK_CONTAINER(frame), scrolled_win);
+ gtk_widget_show(scrolled_win);
+
+ list = gtk_list_new();
+ gtk_list_set_selection_mode(GTK_LIST(list), GTK_SELECTION_SINGLE);
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_win), list);
+ gtk_container_set_focus_vadjustment (GTK_CONTAINER (list),
+ gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_win)));
+ GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (scrolled_win)->vscrollbar, GTK_CAN_FOCUS);
+ gtk_tooltips_set_tip(tooltips, list, "Select the mode you want to try",(gchar *)NULL);
+
+ for (i = 0; i < (gint) nb_mode; i++) {
+ sprintf(temp, "%s :%s", LockProcs[i].cmdline_arg, LockProcs[i].desc);
+ list_item = gtk_list_item_new_with_label(temp);
+ gtk_container_add(GTK_CONTAINER(list), list_item);
+ gtk_signal_connect (GTK_OBJECT (list_item), "select",
+ (GtkSignalFunc) mode_list_item_select_cb,
+ (gpointer) ((long) i));
+ gtk_signal_connect (GTK_OBJECT (list_item), "deselect",
+ (GtkSignalFunc) mode_list_item_unselect_cb,
+ (gpointer) NULL);
+ gtk_widget_show(list_item);
+ }
+ gtk_widget_show( list );
+
+ label = gtk_label_new("Choose the mode");
+ gtk_widget_show(frame);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label);
+
+ /* Options */
+
+ frame = gtk_frame_new("Boolean Options");
+ gtk_container_border_width(GTK_CONTAINER(frame), 10);
+ gtk_widget_set_usize(frame, FRAME_WIDTH, FRAME_HEIGHT);
+ gtk_widget_show(frame);
+
+ scrolled_win = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_container_add(GTK_CONTAINER(frame), scrolled_win);
+ gtk_widget_show(scrolled_win);
+
+ create_boolOptions_buttons(GTK_SCROLLED_WINDOW(scrolled_win));
+ label = gtk_label_new("Options");
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label);
+ /* General Options */
+
+ frame = gtk_frame_new("General Options");
+ gtk_container_border_width(GTK_CONTAINER(frame), 10);
+ gtk_widget_set_usize(frame, FRAME_WIDTH, FRAME_HEIGHT);
+ gtk_widget_show(frame);
+
+ scrolled_win = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_container_add(GTK_CONTAINER(frame), scrolled_win);
+ gtk_widget_show(scrolled_win);
+
+ create_genOptions_entries(GTK_SCROLLED_WINDOW(scrolled_win));
+ label = gtk_label_new("General Options");
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label);
+ /* Color Options */
+
+ frame = gtk_frame_new("Color Options");
+ gtk_container_border_width(GTK_CONTAINER(frame), 10);
+ gtk_widget_set_usize(frame, FRAME_WIDTH, FRAME_HEIGHT );
+ gtk_widget_show(frame);
+
+ scrolled_win = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_container_add(GTK_CONTAINER(frame), scrolled_win);
+ gtk_widget_show(scrolled_win);
+
+ create_fntColorOptions_entries(GTK_SCROLLED_WINDOW(scrolled_win));
+ label = gtk_label_new("Font & Color Options");
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label);
+
+ /* end of notebook */
+ separator = gtk_hseparator_new();
+ gtk_box_pack_start(GTK_BOX(box1), separator, FALSE, TRUE, 0);
+ gtk_widget_show(separator);
+
+ /* Last Hbox for buttons */
+ box2 = gtk_hbox_new(FALSE, 10);
+ gtk_container_border_width(GTK_CONTAINER(box2), 10);
+ gtk_box_pack_start(GTK_BOX(box1), box2, FALSE, TRUE, 0);
+ gtk_widget_show(box2);
+
+ /* buttons */
+ button = gtk_button_new_with_label("Launch");
+ gtk_widget_set_usize(button, 60, 30);
+ GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS);
+ gtk_tooltips_set_tip(tooltips, button, "Launch xlock in selected mode",(gchar *)NULL);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked",
+ (GtkSignalFunc) launch_xlock,
+ (gpointer) NULL);
+ gtk_box_pack_start(GTK_BOX(box2), button, FALSE, TRUE, 4);
+ gtk_widget_show(button);
+
+ /* launch in root button */
+ button = gtk_button_new_with_label("Launch in root");
+ gtk_widget_set_usize(button, 95, 30);
+ GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS);
+ gtk_tooltips_set_tip(tooltips, button, "Launch xlock in root window",(gchar *)NULL);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked",
+ (GtkSignalFunc) launch_xlock,
+ (gpointer) "-inroot" );
+ gtk_box_pack_start(GTK_BOX(box2), button, FALSE, TRUE, 4);
+ gtk_widget_show(button);
+
+ /* launch -- in window -- button */
+ button = gtk_button_new_with_label("Launch in window");
+ gtk_widget_set_usize(button, 115, 30);
+ GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS);
+ gtk_tooltips_set_tip(tooltips, button, "Launch xlock in a window",(gchar *)NULL);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked",
+ (GtkSignalFunc) launch_xlock,
+ (gpointer) "-inwindow" );
+ gtk_box_pack_start(GTK_BOX(box2), button, FALSE, TRUE, 4);
+ gtk_widget_show(button);
+
+ /* exit button */
+ button = gtk_button_new_with_label("Exit");
+ gtk_widget_set_name(button,"special_button");
+ gtk_tooltips_set_tip(tooltips, button, "Exit xglock",(gchar *)NULL);
+ gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
+ (GtkSignalFunc) exit_xglock,
+ (gpointer)xglockroot );
+ gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 4);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ gtk_widget_show(xglockroot);
+
+ gtk_main();
+
+ return 0;
+}
diff --git a/app/xlockmore/xglock/xglockrc b/app/xlockmore/xglock/xglockrc
new file mode 100644
index 000000000..3f59870a3
--- /dev/null
+++ b/app/xlockmore/xglock/xglockrc
@@ -0,0 +1,41 @@
+ style "tooltip"
+ {
+ font = "-adobe-helvetica-medium-r-normal--*-80-*-*-*-*-*-*"
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 1.0, 1.0, 1.0 }
+ }
+
+ style "button"
+ {
+ font = "-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-*-*"
+ fg[PRELIGHT] = { 1.0, 1.0, 1.0 }
+ bg[PRELIGHT] = { 0.67, 0.85, 0.90 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ bg[ACTIVE] = { 0.67, 0.85, 0.90 }
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ bg[NORMAL] = { 0.67, 0.85, 0.90 }
+ }
+
+ style "preview" = "button"
+ {
+ fg[PRELIGHT] = { 0.0, 0.0, 0.0 }
+ bg[PRELIGHT] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 1.0, 1.0, 1.0 }
+ }
+
+ style "special" = "button"
+ {
+ bg[NORMAL] = { 0.98, 0.50, 0.50 }
+ bg[ACTIVE] = { 1.00, 0.75, 0.79 }
+ bg[PRELIGHT] = { 1.00, 0.00, 0.00 }
+ }
+
+ widget "xglock.*GtkButton*" style "button"
+
+ widget "gtk-tooltips" style "tooltip"
+
+ widget "*preview_button*" style "preview"
+ widget "*special_button*" style "special"