Moving eabout to ede-about

This commit is contained in:
Sanel Zukan
2008-09-22 12:45:32 +00:00
parent e399841a6d
commit c72ffb6a38
5 changed files with 0 additions and 0 deletions

16
ede-about/Jamfile Normal file
View File

@@ -0,0 +1,16 @@
#
# $Id$
#
# Part of Equinox Desktop Environment (EDE).
# Copyright (c) 2008 EDE Authors.
#
# This program is licensed under terms of the
# GNU General Public License version 2 or newer.
# See COPYING for details.
SubDir TOP eabout ;
SOURCE = eabout.cpp ;
EdeProgram eabout : $(SOURCE) ;
TranslationStrings locale : $(SOURCE) ;

168
ede-about/eabout.cpp Normal file
View File

@@ -0,0 +1,168 @@
/*
* $Id$
*
* Eabout, display version and authors
* Part of Equinox Desktop Environment (EDE).
* Copyright (c) 2008 EDE Authors.
*
* This program is licensed under terms of the
* GNU General Public License version 2 or newer.
* See COPYING for details.
*/
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Text_Display.H>
#include <FL/Fl_Text_Buffer.H>
#include <FL/Fl_Pixmap.H>
#include <edelib/Nls.h>
#include "icons/ede.xpm"
#include <string.h> // memset
static Fl_Pixmap image_ede(ede_xpm);
Fl_Window* win;
Fl_Text_Buffer* stylebuff;
Fl_Text_Display::Style_Table_Entry style_table[] = {
{ FL_BLACK, FL_HELVETICA, 12, }, // A - plain
{ FL_BLACK, FL_HELVETICA_BOLD, 12} // B - bold text
};
const char* content = "\n\
Heads:\n\n\
Sanel Zukan (karijes@equinox-project.org)\n\
Vedran Ljubovic (vljubovic@equinox-project.org)\n\
\n\
Contributors:\n\n\
(to be added)\n\
\n\
Past developers:\n\n\
Martin Pekar\n\
Mikko Lahtenaaki\n\
Dejan Lekic\n\
Alexey Parshin\n\
\n\
Translators:\n\n\
(to be added)\n\
\n\
Patches in 1.x series by:\n\n\
Michael Sheldon\n\
Anthony Wesley\n\
and others! Thank you guys! :)\n\
\n\
Web:\n\n\
http://equinox-project.org\n\n\
Hosting provided by Sohlius,Inc. (thanks!)\n\
\n\
Bug reports:\n\n\
http://trac.equinox-project.org/report/1\n\
\n\
License: \n\n\
This program is based in part on the work of\n\
FLTK project (www.fltk.org).\n\
\n\
This program is free software, you can redistribute\n\
it and/or modify it under the terms of GNU General\n\
Public License as published by the Free Software\n\
Foundation, either version 2 of the License, or\n\
(at your option) any later version.\n\n\
This program is distributed in the hope that it will\n\
be useful, but WITHOUT ANY WARRANTY;\n\
without even the implied\n\
warranty of MERCHANTABILITY or FITNESS\n\
FOR A PARTICULAR PURPOSE.\n\n\
See the GNU General Public License for more details.\n\
You should have received a copy of the GNU General\n\
Public Licence along with this program; if not, write\n\
to the Free Software Foundation, Inc., 675 Mass Ave,\n\
Cambridge, MA 02139, USA";
const char* bold_keywords[] = {
"Heads:",
"Contributors:",
"Past developers:",
"Patches in 1.x series by:",
"Translators:",
"Web:",
"Bug reports:",
"License:"
};
#define BOLD_KEYWORDS_LEN 8
void close_cb(Fl_Widget*, void*) {
win->hide();
}
char* prepare_style(char* txt, int len) {
// paint all with 'A' style at startup
char* style = new char[len + 1];
memset(style, 'A', len);
style[len + 1] = '\0';
// find bold keywords and paint them
char* p = 0;
for(int i = 0; i < BOLD_KEYWORDS_LEN; i++) {
p = strstr(txt, bold_keywords[i]);
if(!p)
continue;
unsigned int len = strlen(bold_keywords[i]);
memset(&style[p - txt], 'B', len);
}
return style;
}
int main(int argc, char **argv) {
win = new Fl_Window(440, 335, _("About EDE"));
win->begin();
Fl_Group* title_group = new Fl_Group(0, 0, 440, 65);
title_group->box(FL_ENGRAVED_BOX);
title_group->color(FL_BACKGROUND2_COLOR);
title_group->begin();
Fl_Box* image_box = new Fl_Box(5, 5, 60, 55);
image_box->image(image_ede);
Fl_Box* ede_label_box = new Fl_Box(70, 10, 365, 25, "Equinox Deskop Environment 2.0");
ede_label_box->labelfont(1);
ede_label_box->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
Fl_Box* ede_copy_box = new Fl_Box(70, 35, 365, 25, "Copyright (c) by EDE Authors 2000-2008");
ede_copy_box->labelsize(11);
ede_copy_box->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_TOP);
title_group->end();
Fl_Text_Display* txt_display = new Fl_Text_Display(10, 78, 420, 212);
txt_display->textsize(12);
// remove bottom scrollbar, since text is already nicely formatted
txt_display->scrollbar_align(FL_ALIGN_RIGHT);
Fl_Text_Buffer* buff = new Fl_Text_Buffer();
buff->append(content);
// load style buff
stylebuff = new Fl_Text_Buffer(buff->length());
char* style = prepare_style(buff->text(), buff->length());
stylebuff->text(style);
delete [] style;
txt_display->buffer(buff);
txt_display->highlight_data(stylebuff, style_table,
sizeof(style_table) / sizeof(style_table[0]), 'A', 0, 0);
Fl_Button* close_button = new Fl_Button(340, 300, 90, 25, _("&Close"));
close_button->callback(close_cb);
win->end();
win->show(argc, argv);
return Fl::run();
}

34
ede-about/eabout.fl Normal file
View File

@@ -0,0 +1,34 @@
# data file for the Fltk User Interface Designer (fluid)
version 1.0108
header_name {.h}
code_name {.cxx}
Function {} {open
} {
Fl_Window {} {
label {About EDE} open selected
xywh {292 190 440 335} type Double visible
} {
Fl_Group {} {open
xywh {0 0 440 65} box FLAT_BOX color 7 labelsize 14
} {
Fl_Box {} {
image {icons/ede.xpm} xywh {5 5 60 55} labelsize 14
}
Fl_Box {} {
label {Equinox Desktop Environment}
xywh {70 10 365 25} labelfont 1 align 20
}
Fl_Box {} {
label {Copyright (c) by EDE Authors 2000-2008}
xywh {70 35 365 25} labelsize 11 align 21
}
}
Fl_Text_Display {} {
xywh {10 78 420 212} labelsize 14 textsize 14
}
Fl_Button {} {
label {&Close}
xywh {340 300 90 25}
}
}
}

8
ede-about/gen-about.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
echo 'const char about_content[] ='
sed -e '/^Authors/d' \
-e '/=\{3,\}/d' \
-e 's/-\{3,\}//' \
-e 's/\(.*\)/ " \1\\n"/'
echo ';'

402
ede-about/icons/ede.xpm Normal file
View File

@@ -0,0 +1,402 @@
/* XPM */
static char * ede_xpm[] = {
"48 48 351 2",
" c None",
". c #979696",
"+ c #686665",
"@ c #878686",
"# c #4F4D4B",
"$ c #433F3E",
"% c #413F3C",
"& c #433F3D",
"* c #878685",
"= c #706E6D",
"- c #2E2B28",
"; c #211C19",
"> c #2B2724",
", c #6C6968",
"' c #696766",
") c #282522",
"! c #201B18",
"~ c #1F1A17",
"{ c #1E1916",
"] c #282421",
"^ c #292421",
"/ c #393532",
"( c #3F3A38",
"_ c #403B39",
": c #403C39",
"< c #3F3B38",
"[ c #3E3936",
"} c #312C2A",
"| c #231E1B",
"1 c #241F1C",
"2 c #474240",
"3 c #8B8987",
"4 c #A4A3A1",
"5 c #A7A5A4",
"6 c #A7A6A4",
"7 c #A6A5A3",
"8 c #9F9D9B",
"9 c #6A6764",
"0 c #2F2B28",
"a c #26211F",
"b c #5B5756",
"c c #C6C5C4",
"d c #EDEDEC",
"e c #F0F0F0",
"f c #F1F1F1",
"g c #E4E3E3",
"h c #908E8C",
"i c #373230",
"j c #26221F",
"k c #5F5B59",
"l c #D0CFCF",
"m c #F9F9F9",
"n c #FEFEFE",
"o c #FDFDFD",
"p c #979594",
"q c #383431",
"r c #5F5C5A",
"s c #D1D0D0",
"t c #FBFAFA",
"u c #FFFFFF",
"v c #FCFBFB",
"w c #F8F7F7",
"x c #EDECEC",
"y c #EBEBEB",
"z c #EBEBEA",
"A c #F2F2F2",
"B c #F8F8F8",
"C c #989694",
"D c #FBFBFB",
"E c #F1F1F0",
"F c #DEDEDD",
"G c #C5C4C3",
"H c #ABA9A7",
"I c #999695",
"J c #928F8E",
"K c #918F8D",
"L c #ACAAA9",
"M c #C8C7C6",
"N c #E0DFDF",
"O c #F3F3F3",
"P c #F5F5F5",
"Q c #D9D7D7",
"R c #AAA8A7",
"S c #7B7876",
"T c #575351",
"U c #423D3B",
"V c #36322F",
"W c #322E2B",
"X c #36312F",
"Y c #5A5754",
"Z c #7F7C7A",
"` c #B1AFAE",
" . c #DDDCDC",
".. c #F5F5F4",
"+. c #FDFDFC",
"@. c #989695",
"#. c #C9C8C8",
"$. c #888584",
"%. c #4F4B48",
"&. c #25201E",
"*. c #221D1A",
"=. c #332E2C",
"-. c #524E4C",
";. c #898685",
">. c #C3C1C1",
",. c #FCFCFC",
"'. c #F2F1F1",
"). c #999795",
"!. c #EEEEEE",
"~. c #C1C0BF",
"{. c #757371",
"]. c #3E3A38",
"^. c #25211E",
"/. c #3B3734",
"(. c #6C6967",
"_. c #B4B2B1",
":. c #EBEAEA",
"<. c #F2F2F1",
"[. c #C0BFBE",
"}. c #6F6C6A",
"|. c #342F2C",
"1. c #1F1916",
"2. c #322D2A",
"3. c #666361",
"4. c #BBB9B8",
"5. c #393432",
"6. c #CECDCC",
"7. c #767371",
"8. c #332E2B",
"9. c #7B7776",
"0. c #DEDDDC",
"a. c #FEFEFD",
"b. c #FBFBFA",
"c. c #E6E6E6",
"d. c #8D8A89",
"e. c #35312E",
"f. c #E7E7E6",
"g. c #221E1B",
"h. c #706D6B",
"i. c #D6D6D5",
"j. c #F3F2F2",
"k. c #DBDAD9",
"l. c #AAA9A8",
"m. c #5E5A58",
"n. c #2A2623",
"o. c #C7C6C5",
"p. c #2A2523",
"q. c #2B2623",
"r. c #44403D",
"s. c #AEADAC",
"t. c #F6F6F6",
"u. c #E2E1E1",
"v. c #BAB9B8",
"w. c #858281",
"x. c #514D4B",
"y. c #2E2927",
"z. c #F0EFEF",
"A. c #A09E9D",
"B. c #433F3C",
"C. c #26211E",
"D. c #3A3533",
"E. c #63605E",
"F. c #9A9896",
"G. c #CCCBCA",
"H. c #F9F9F8",
"I. c #EAEAEA",
"J. c #93908F",
"K. c #5D5957",
"L. c #373330",
"M. c #25201D",
"N. c #1F1A18",
"O. c #7A7876",
"P. c #332F2C",
"Q. c #565250",
"R. c #8E8C8A",
"S. c #E9E9E8",
"T. c #EFEFEF",
"U. c #D2D0D0",
"V. c #656260",
"W. c #27221F",
"X. c #D3D2D1",
"Y. c #625E5D",
"Z. c #282320",
"`. c #1F1A16",
" + c #302B29",
".+ c #504C4A",
"++ c #83807E",
"@+ c #B9B8B7",
"#+ c #E3E3E3",
"$+ c #F7F6F6",
"%+ c #D8D7D7",
"&+ c #A9A7A7",
"*+ c #726E6D",
"=+ c #292422",
"-+ c #FAFAFA",
";+ c #5A5654",
">+ c #2C2724",
",+ c #45413E",
"'+ c #777372",
")+ c #ADABAB",
"!+ c #D9D8D8",
"~+ c #F4F4F4",
"{+ c #B7B6B5",
"]+ c #7E7B7A",
"^+ c #4E4A48",
"/+ c #CDCCCB",
"(+ c #585452",
"_+ c #24201D",
":+ c #3D3936",
"<+ c #9C9A99",
"[+ c #EEEEED",
"}+ c #FAF9F9",
"|+ c #E7E7E7",
"1+ c #C4C2C2",
"2+ c #8F8D8B",
"3+ c #342F2D",
"4+ c #2A2522",
"5+ c #413D3B",
"6+ c #64615F",
"7+ c #595553",
"8+ c #2D2825",
"9+ c #CFCFCE",
"0+ c #5C5957",
"a+ c #E9E8E8",
"b+ c #D1D0CF",
"c+ c #9D9A99",
"d+ c #65615F",
"e+ c #605D5A",
"f+ c #969493",
"g+ c #C0BEBD",
"h+ c #898785",
"i+ c #6B6866",
"j+ c #878583",
"k+ c #C1BFBF",
"l+ c #E6E6E5",
"m+ c #F7F7F7",
"n+ c #D6D5D5",
"o+ c #A6A4A3",
"p+ c #3E3A37",
"q+ c #4D4946",
"r+ c #8F8C8B",
"s+ c #979593",
"t+ c #E7E6E6",
"u+ c #4A4644",
"v+ c #7A7775",
"w+ c #B0AEAD",
"x+ c #DCDCDC",
"y+ c #F4F3F3",
"z+ c #B2B0AF",
"A+ c #7B7877",
"B+ c #4B4745",
"C+ c #2D2826",
"D+ c #312C29",
"E+ c #827F7D",
"F+ c #D7D6D6",
"G+ c #ABA9A8",
"H+ c #4C4845",
"I+ c #A4A2A0",
"J+ c #EFEFEE",
"K+ c #E5E5E4",
"L+ c #888684",
"M+ c #55514F",
"N+ c #332F2D",
"O+ c #ECEBEB",
"P+ c #D0CFCE",
"Q+ c #7C7978",
"R+ c #92908E",
"S+ c #CAC9C8",
"T+ c #FAFAF9",
"U+ c #ECECEC",
"V+ c #625F5C",
"W+ c #383331",
"X+ c #3C3735",
"Y+ c #A19F9D",
"Z+ c #CACAC9",
"`+ c #C7C6C6",
" @ c #E6E5E5",
".@ c #D5D4D4",
"+@ c #A3A1A0",
"@@ c #272320",
"#@ c #494543",
"$@ c #B5B3B2",
"%@ c #DCDBDA",
"&@ c #AFAEAD",
"*@ c #46423F",
"=@ c #CFCECD",
"-@ c #E3E2E2",
";@ c #868381",
">@ c #534F4D",
",@ c #312D2A",
"'@ c #E5E4E4",
")@ c #DCDBDB",
"!@ c #5E5B59",
"~@ c #272220",
"{@ c #B7B5B4",
"]@ c #CBCAC9",
"^@ c #767271",
"/@ c #3E3937",
"(@ c #8E8B8A",
"_@ c #B3B0B0",
":@ c #2D2926",
"<@ c #35302E",
"[@ c #75716F",
"}@ c #F7F7F6",
"|@ c #E8E7E7",
"1@ c #5D5A57",
"2@ c #1E1A17",
"3@ c #BDBCBB",
"4@ c #EFEEEE",
"5@ c #ADACAB",
"6@ c #3C3835",
"7@ c #2C2725",
"8@ c #817F7D",
"9@ c #C4C3C2",
"0@ c #8C8A88",
"a@ c #3B3634",
"b@ c #433E3C",
"c@ c #696564",
"d@ c #A09D9C",
"e@ c #D7D6D5",
"f@ c #E4E4E4",
"g@ c #9B9898",
"h@ c #797675",
"i@ c #55524F",
"j@ c #635F5D",
"k@ c #807D7B",
"l@ c #CECECD",
"m@ c #F6F6F5",
"n@ c #DBDADA",
"o@ c #C3C2C1",
"p@ c #C2C1C0",
"q@ c #C4C3C3",
"r@ c #CDCCCC",
"s@ c #DFDFDE",
"t@ c #989594",
"u@ c #5E5A59",
"v@ c #CECDCD",
"w@ c #969492",
"x@ c #B5B4B3",
"y@ c #D8D8D7",
"z@ c #DBDBDA",
"A@ c #34302D",
"B@ c #615E5B",
"C@ c #726F6D",
"D@ c #716F6C",
"E@ c #6D6A67",
"F@ c #4B4845",
"G@ c #292521",
"H@ c #272421",
"I@ c #6E6C6B",
"J@ c #302C29",
". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ",
"@ # $ % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % & # * ",
"= - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > , ",
"' ) ! ~ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ~ ~ ] + ",
"+ ] ~ ~ ~ ~ ! ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ! ~ ~ ~ ] + ",
"+ ] ~ ~ ! ^ / ( _ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : < [ } | ~ ~ ] + ",
"+ ] ~ ~ 1 2 3 4 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 8 9 0 ! ~ ] + ",
"+ ] ~ ~ a b c d e f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f e g h i ! ~ ] + ",
"+ ] ~ ~ j k l m n n n n n n n n n n n o o o o o o o o n n n n n n n n n n n n n o e p q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u u u u n n v w f x y z x A B v o n u u u u u u u u u u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u u u n D E F G H I J K C L M N O D n u u u u u u u u u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u u o P Q R S T U V W W X & Y Z ` ...+.n u u u u u u u n f @.q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u o f #.$.%.} &.; ! ! ! ! *.a =.-.;.>.z ,.n u u u u u u n '.)./ ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u o !.~.{.].^.! { { { { { { { { ! &./.(._.:.,.u u u u u u n f )./ ! ~ ] + ",
"+ ] ~ ~ j r s t u u u n <.[.}.|.*.{ { { { { { 1.{ { { { { ; 2.3.4.O n u u u u u n e @.5.! ~ ] + ",
"+ ] ~ ~ j r s t u u n B 6.7.8.! { { { { ~ ~ ~ ~ ~ 1.{ { { { ! =.9.0.D u u u n a.b.c.d.e.! ~ ] + ",
"+ ] ~ ~ j r s t u u o f.).& *.{ { { ~ ~ ~ ~ ~ ~ ~ { { { { ~ g.=.h.i.b.u u n ,.j.k.l.m.n.~ ~ ] + ",
"+ ] ~ ~ j r s t u n m o.3.p.~ { { ~ ~ ~ ~ ~ ~ { { { { { ; q.r.h.s.:.,.n ,.t.u.v.w.x.y.; ~ ~ ] + ",
"+ ] ~ ~ j r s t u n z.A.B.; { { ~ ~ ~ ~ ~ { { { { { ! C.D.E.F.G.x D o H.I.M J.K.L.M.N.~ ~ ~ ] + ",
"+ ] ~ ~ j r s t u ,.N O.0 ~ { { ~ ~ ~ 1.{ { { { ~ 1 P.Q.R.c S.B o t T.U.A.V./.W.! { { { ~ ~ ] + ",
"+ ] ~ ~ j r s t u D X.Y.Z.`.{ ~ ~ ~ { { { { ~ *. +.+++@+#+$+,.D j.%+&+*+& =+! { { ~ ~ ~ ~ ~ ] + ",
"+ ] ~ ~ j r s t u -+6.;+M.~ { ~ { { { { ~ ; >+,+'+)+!+'.D D ~+N {+]+^+0 | ~ { ~ *.q.>+*.~ ~ ] + ",
"+ ] ~ ~ j r s t u -+/+(+_+{ { { { { { ! Z.:+3.<+s [+}+,.B |+1+2+;+3+1 ~ { { ; 4+5+6+7+8+! ~ ] + ",
"+ ] ~ ~ j r s t u -+9+0+C.{ { { { ~ 1 P.;+h G a+m ,.-+z.b+c+d+/.j ! { { { _+q e+f+g+h+V ! ~ ] + ",
"+ ] ~ ~ j r s t u D %+i+4+{ { ~ | } x.j+k+l+m+o D f n+o+i+p+Z.! { { { ~ M.q+r+c S.y s+q ! ~ ] + ",
"+ ] ~ ~ j r s t u o t+$.e.! ; 8+u+v+w+x+y+D D ~+ .z+A+B+C+*.~ { { { { ! D+E+F+..,.e C q ! ~ ] + ",
"+ ] ~ ~ j r s t u n O G+H+8+< (.I+X.J+-+,.$+K+k+L+M+N+1 ~ { { { { { { ! V s+O+o n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u -+P+Q+V.R+S+:.m ,.T+U+G.F.V+W+C.! { { { { { ~ 1.{ ; X+Y+T.n n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u o T.Z+`+ @B ,.D f .@+@i+< @@! { { { { { ~ ~ ~ { { | #@$@~+n n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u ,.m+m+,.D O %@&@7.*@>+; { { { { { ~ ~ ~ ~ 1.{ { Z.V+=@-+u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u n n o m+-@4.;@>@,@| ~ { { { { ~ ~ ~ ~ ~ ~ { { ! L.L+'@o u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u n m )@<+!@W+M.~ { { { { `.~ ~ ~ ~ ~ ~ { { { ~@(+{@..n u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u n P ]@^@i *.{ { { { { ~ ~ ~ ~ ~ ~ { { { { ; /@(@N ,.u u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u ,.O+_@r :@! { { { { ~ ~ ~ ~ `.{ { { { ; <@[@S+}@n u u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u n D |@H 1@0 ; 2@{ { { { { { { { { ~ _+q *+3@4@o u u u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u u n D K+5@i+6@@@; ~ ~ ~ ~ ~ ~ ~ *.7@#@8@9@[+,.u u u u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u u u n D y G 0@7+a@7@M.| *.| C.y.b@c@d@e@~+o u u u u u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u u u u n o m+f@k+g@h@k >@-.i@j@k@5 l@U+-+n u u u u u u n f C q ! ~ ] + ",
"+ ] ~ ~ j r s t u u u u u u u u u n n ,.m@z n@]@o@p@q@r@s@T.B o n u u u u u u u n f C q ! ~ ] + ",
"+ ] ~ ~ j r b+-+u u u u u u u u u u u n n o D m B B B m D o n n u u u u u u u u n f t@q ! ~ ] + ",
"+ ] ~ ~ a u@v@m+D ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.D !.w@W+! ~ ] + ",
"+ ] ~ ~ ^.M+x@y@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@z@l w.A@! ~ ] + ",
"+ ] ~ ~ *.V B@h.C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@D@E@F@Z.~ ~ ] + ",
"+ ] ~ ~ ~ | G@>+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+>+q.C.! ~ ~ ] + ",
"+ ] ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ] + ",
"+ H@~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ H@+ ",
"I@J@H@] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] H@J@I@",
". I@' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ' I@. "};