/*
Copyright (c) 2008-2010 TrueCrypt Developers Association. All rights reserved.
Governed by the TrueCrypt License 3.0 the full text of which is contained in
the file License.txt included in TrueCrypt binary and source code distribution
packages.
*/
#include "System.h"
#include "Main/GraphicUserInterface.h"
#include "VolumeFormatOptionsWizardPage.h"
namespace VeraCrypt
{
VolumeFormatOptionsWizardPage::VolumeFormatOptionsWizardPage (wxPanel* parent, uint64 volumeSize, uint32 sectorSize, bool enableQuickFormatButton, bool disableNoneFilesystem, bool disable32bitFilesystems)
: VolumeFormatOptionsWizardPageBase (parent)
{
InfoStaticText->SetLabel (_(
"In order to enable your operating system to mount your new volume, it has to be formatted with a filesystem. Please select a filesystem type.\n\nIf your volume is going to be hosted on a device or partition, you can use 'Quick format' to skip encryption of free space of the volume."));
if (!disableNoneFilesystem)
FilesystemTypeChoice->Append (LangString["NONE"], (void *) VolumeCreationOptions::FilesystemType::None);
if (!disable32bitFilesystems && volumeSize <= TC_MAX_FAT_SECTOR_COUNT * sectorSize)
FilesystemTypeChoice->Append (L"FAT", (void *) VolumeCreationOptions::FilesystemType::FAT);
#ifdef TC_WINDOWS
FilesystemTypeChoice->Append (L"NTFS", (void *) VolumeCreationOptions::FilesystemType::NTFS);
#elif defined (TC_LINUX)
FilesystemTypeChoice->Append (L"Linux Ext2", (void *) VolumeCreationOptions::FilesystemType::Ext2);
FilesystemTypeChoice->Append (L"Linux Ext3", (void *) VolumeCreationOptions::FilesystemType::Ext3);
FilesystemTypeChoice->Append (L"Linux Ext4", (void *) VolumeCreationOptions::FilesystemType::Ext4);
FilesystemTypeChoice->Append (L"NTFS", (void *) VolumeCreationOptions::FilesystemType::NTFS);
#elif defined (TC_MACOSX)
FilesystemTypeChoice->Append (L"Mac OS Extended", (void *) VolumeCreationOptions::FilesystemType::MacOsExt);
#elif defined (TC_FREEBSD) || defined (TC_SOLARIS)
FilesystemTypeChoice->Append (L"UFS", (void *) VolumeCreationOptions::FilesystemType::UFS);
#endif
if (!disable32bitFilesystems && volumeSize <= TC_MAX_FAT_SECTOR_COUNT * sectorSize)
SetFilesystemType (VolumeCreationOptions::FilesystemType::FAT);
else
SetFilesystemType (VolumeCreationOptions::FilesystemType::GetPlatformNative());
QuickFormatCheckBox->Enable (enableQuickFormatButton);
}
VolumeCreationOptions::FilesystemType::Enum VolumeFormatOptionsWizardPage::GetFilesystemType () const
{
return (VolumeCreationOptions::FilesystemType::Enum) reinterpret_cast <unsigned long long> (Gui->GetSelectedData <void> (FilesystemTypeChoice));
}
void VolumeFormatOptionsWizardPage::OnFilesystemTypeSelected (wxCommandEvent& event)
{
}
void VolumeFormatOptionsWizardPage::OnQuickFormatCheckBoxClick (wxCommandEvent& event)
{
if (event.IsChecked())
{
QuickFormatCheckBox->SetValue (Gui->AskYesNo (LangString["WARN_QUICK_FORMAT"], false, true));
}
}
void VolumeFormatOptionsWizardPage::SetFilesystemType (VolumeCreationOptions::FilesystemType::Enum type)
{
switch (type)
{
case VolumeCreationOptions::FilesystemType::None: FilesystemTypeChoice->SetStringSelection (LangString["NONE"]); break;
case VolumeCreationOptions/* XPM */
static const char *VeraCryptIcon48x48[] = {
/* width height ncolors chars_per_pixel */
"48 48 548 2",
" c None",
". c #949692",
"+ c #9B9D98",
"@ c #9C9E99",
"# c #9C9E9A",
"$ c #9D9E9A",
"% c #9D9F9A",
"& c #959692",
"* c #9EA09B",
"= c #C4C6C2",
"- c #CECFCB",
"; c #CFD0CC",
"> c #CFD0CB",
", c #CED0CC",
"' c #D0D0CD",
") c #D1D1CE",
"! c #D2D2CE",
"~ c #D2D2CF",
"{ c #D2D3CF",
"] c #D1D2CE",
"^ c #D0D1CE",
"/ c #D0D1CD",
"( c #CFD0CD",
"_ c #C5C6C3",
": c #9FA19C",
"< c #8C8E89",
"[ c #BABBB7",
"} c #D8D9D5",
"| c #D2D4CF",
"1 c #D4D4CF",
"2 c #CFCFCA",
"3 c #C6C7C2",
"4 c #C8C9C5",
"5 c #CBCCC8",
"6 c #CECFCA",
"7 c #D3D4CF",
"8 c #D5D6D1",
"9 c #D6D7D2",
"0 c #D7D7D2",
"a c #D6D6D1",
"b c #D5D5D1",
"c c #D4D5D0",
"d c #D4D4D0",
"e c #D4D5D1",
"f c #D3D4D0",
"g c #CDCECB",
"h c #DBDCD9",
"i c #BEBFBB",
"j c #8E908B",
"k c #979894",
"l c #CCCDCA",
"m c #CFD1CC",
"n c #B4B7B2",
"o c #C4C5C2",
"p c #D2D2CD",
"q c #C0C1BC",
"r c #BBBDB8",
"s c #C7C9C4",
"t c #C8CAC5",
"u c #C9CBC6",
"v c #CACCC7",
"w c #CBCCC7",
"x c #CBCDC7",
"y c #CACCC6",
"z c #CCCDC8",
"A c #B0B1AE",
"B c #A9ACA9",
"C c #CDCFCB",
"D c #9A9C97",
"E c #A5A7A2",
"F c #D6D7D3",
"G c #CDCFCA",
"H c #C4C6C0",
"I c #CACBC6",
"J c #CDCDC8",
"K c #B4B5B1",
"L c #BFC1BC",
"M c #CCCEC9",
"N c #CCCEC8",
"O c #CBCDC8",
"P c #CACDC8",
"Q c #C9CCC7",
"R c #C1C3BE",
"S c #BCBEB9",
"T c #DCDDD9",
"U c #AAACA8",
"V c #8B8D88",
"W c #B7B9B5",
"X c #D8D9D6",
"Y c #CDCEC9",
"Z c #CDCFC9",
"` c #CFD1CB",
" . c #C3C4BE",
".. c #ABACA7",
"+. c #CED0CB",
"@. c #CED0CA",
"#. c #D5D7D2",
"$. c #DFE0DC",
"%. c #BDBFBB",
"&. c #949691",
"*. c #C8C9C6",
"=. c #D5D6D3",
"-. c #C2C4BE",
";. c #A9AAA5",
">. c #ABACA8",
",. c #D0D2CD",
"'. c #D0D2CC",
"). c #D0D1CC",
"!. c #CED1CB",
"~. c #D5D6D2",
"{. c #D7D8D4",
"]. c #D7D9D4",
"^. c #DEDFDB",
"/. c #979994",
"(. c #A1A39E",
"_. c #D4D5D2",
":. c #D1D3CE",
"<. c #BABCB7",
"[. c #A6A8A3",
"}. c #ABADA9",
"|. c #C5C7C2",
"1. c #D1D3CD",
"2. c #DDDEDA",
"3. c #DCDDDA",
"4. c #A5A6A3",
"5. c #B2B3AF",
"6. c #DBDCD8",
"7. c #BDBEBA",
"8. c #B1B2AE",
"9. c #C1C3BF",
"0. c #D4D6D1",
"a. c #DADCD8",
"b. c #DADCD7",
"c. c #D0D2CE",
"d. c #D3D5D1",
"e. c #E3E5E2",
"f. c #B7B8B5",
"g. c #90928D",
"h. c #C9CAC6",
"i. c #C0C1BE",
"j. c #CDCECA",
"k. c #D6D8D4",
"l. c #DDDEDB",
"m. c #E8E9E7",
"n. c #ECEDEB",
"o. c #E8E9E6",
"p. c #CBCCC9",
"q. c #D4D6D2",
"r. c #E5E6E3",
"s. c #CACAC8",
"t. c #92948F",
"u. c #9C9D99",
"v. c #D4D5D3",
"w. c #D8DAD6",
"x. c #D3D4D1",
"y. c #D9DBD7",
"z. c #DADBD7",
"A. c #D9DAD6",
"B. c #D8DAD5",
"C. c #E7E7E5",
"D. c #D7D8D5",
"E. c #E8E8E7",
"F. c #DEDFDC",
"G. c #D8D9D7",
"H. c #E1E1DF",
"I. c #DDDFDB",
"J. c #DBDDD9",
"K. c #E1E2DF",
"L. c #D9DAD8",
"M. c #D2D3D0",
"N. c #DEDEDC",
"O. c #ACADA9",
"P. c #BFC0BD",
"Q. c #DFE0DD",
"R. c #EDEDEC",
"S. c #E4E5E2",
"T. c #DEDEDB",
"U. c #DCDCD9",
"V. c #AEB0AB",
"W. c #C4C6C1",
"X. c #BEBFBC",
"Y. c #959793",
"Z. c #D3D3D1",
"`. c #ECECEB",
" + c #EEEEEC",
".+ c #E1E1DE",
"++ c #E0E1DD",
"@+ c #E0E1DE",
"#+ c #E0E0DD",
"$+ c #B4B5B0",
"%+ c #91938D",
"&+ c #8F918C",
"*+ c #9B9C99",
"=+ c #9FA09C",
"-+ c #A9ABA5",
";+ c #D1D2CF",
">+ c #959792",
",+ c #A5A6A2",
"'+ c #F2F2F1",
")+ c #EBECEA",
"!+ c #E3E3E0",
"~+ c #E2E2DF",
"{+ c #E1E2DE",
"]+ c #A2A49E",
"^+ c #BFC2BB",
"/+ c #CACEC6",
"(+ c #CBD0C8",
"_+ c #C0C3BC",
":+ c #A4A8A2",
"<+ c #BBBDB7",
"[+ c #A4A6A2",
"}+ c #B9BAB7",
"|+ c #E3E3E1",
"1+ c #F3F3F2",
"2+ c #EFF0EE",
"3+ c #E7E8E5",
"4+ c #E4E4E1",
"5+ c #E3E4E1",
"6+ c #E3E4E0",
"7+ c #E2E3E0",
"8+ c #969893",
"9+ c #B7BBB4",
"0+ c #CBCFC7",
"a+ c #AEB2AB",
"b+ c #9A9C98",
"c+ c #969892",
"d+ c #ABAEA7",
"e+ c #C7CAC3",
"f+ c #BEC1BA",
"g+ c #90918D",
"h+ c #E5E5E3",
"i+ c #B8B9B6",
"j+ c #91938E",
"k+ c #CDCECC",
"l+ c #DDDDDB",
"m+ c #CBCDC9",
"n+ c #D7D9D5",
"o+ c #F1F1F0",
"p+ c #F4F4F3",
"q+ c #EAEAE8",
"r+ c #E6E6E4",
"s+ c #E5E5E2",
"t+ c #BCBDB8",
"u+ c #A0A29D",
"v+ c #CFD3CB",
"w+ c #A6A7A1",
"x+ c #B3B3B0",
"y+ c #AFB1AD",
"z+ c #90928B",
"A+ c #CDD0C8",
"B+ c #A4A8A1",
"C+ c #ACAEA8",
"D+ c #DFE1DE",
"E+ c #CBCCCA",
"F+ c #91928E",
"G+ c #A0A19D",
"H+ c #DEDFDD",
"I+ c #EEEFED",
"J+ c #F2F3F1",
"K+ c #F0F0EF",
"L+ c #E9E9E7",
"M+ c #E8E8E6",
"N+ c #E8E8E5",
"O+ c #E9EAE7",
"P+ c #A8A9A4",
"Q+ c #BCC0B7",
"R+ c #AEB1A9",
"S+ c #A3A5A0",
"T+ c #D3D5D0",
"U+ c #ACAFAA",
"V+ c #A6A9A2",
"W+ c #BEC2BC",
"X+ c #9A9C96",
"Y+ c #D9DAD7",
"Z+ c #9E9F9B",
"`+ c #B2B3B0",
" @ c #D1D2CD",
".@ c #F1F2F0",
"+@ c #F3F4F2",
"@@ c #F3F3F1",
"#@ c #F4F4F2",
"$@ c #989994",
"%@ c #C8CBC3",
"&@ c #A0A29B",
"*@ c #BFC0BC",
"=@ c #989B95",
"-@ c #CBCEC6",
";@ c #C0C2BC",
">@ c #AEB0AD",
",@ c #C6C7C4",
"'@ c #D9DBD8",
")@ c #D6D7D4",
"!@ c #CFD1CD",
"~@ c #CECFCC",
"{@ c #E7E8E6",
"]@ c #ECEDEA",
"^@ c #EAEBE9",
"/@ c #E3E4DF",
"(@ c #8F908D",
"_@ c #CFD3CA",
":@ c #92938F",
"<@ c #CCCCC5",
"[@ c #D2D2CB",
"}@ c #CFD0C8",
"|@ c #CCCEC6",
"1@ c #D1D2CA",
"2@ c #C7C8C0",
"3@ c #D1D4CD",
"4@ c #BCBEB6",
"5@ c #C2C3C0",
"6@ c #8C8E8A",
"7@ c #D9D9D7",
"8@ c #B9BBB9",
"9@ c #C5C8C5",
"0@ c #C3C5C0",
"a@ c #BDBFBA",
"b@ c #DFE0DE",
"c@ c #E0E1DF",
"d@ c #E1E2E0",
"e@ c #E4E4E2",
"f@ c #E4E5E3",
"g@ c #E4E4E3",
"h@ c #E3E4E2",
"i@ c #B0A368",
"j@ c #816805",
"k@ c #8B8D83",
"l@ c #898B85",
"m@ c #7D6407",
"n@ c #7C6403",
"o@ c #7E6503",
"p@ c #7D6403",
"q@ c #7B6302",
"r@ c #888A85",
"s@ c #8C8F87",
"t@ c #806603",
"u@ c #A69A5F",
"v@ c #989A96",
"w@ c #999A96",
"x@ c #E2E3DF",
"y@ c #D2D4D0",
"z@ c #D1D3CF",
"A@ c #C4C5C1",
"B@ c #C8CAC6",
"C@ c #CCCDC9",
"D@ c #CCCECA",
"E@ c #D2D2D0",
"F@ c #7F6703",
"G@ c #FBF2A2",
"H@ c #8E9089",
"I@ c #CBCEC7",
"J@ c #888A84",
"K@ c #D6D098",
"L@ c #E0DA9F",
"M@ c #EBE5A7",
"N@ c #EEE7A9",
"O@ c #E4DEA3",
"P@ c #D9D39B",
"Q@ c #CED3C9",
"R@ c #90918B",
"S@ c #F5EB95",
"T@ c #DCDCDA",
"U@ c #999B97",
"V@ c #6A6E6B",
"W@ c #ABACA9",
"X@ c #D8D8D6",
"Y@ c #DFDFDC",
"Z@ c #DFDFDD",
"`@ c #E0E0DE",
" # c #DCDDDB",
".# c #7D6400",
"+# c #FFF9C9",
"@# c #B3B199",
"## c #898B86",
"$# c #959687",
"%# c #E5DEAB",
"&# c #F6F0B8",
"*# c #FAF4BB",
"=# c #FAF4BC",
"-# c #F8F2BB",
";# c #F4EEB9",
"># c #A3A291",
",# c #8B8D86",
"'# c #9B9B8C",
")# c #F3EEC3",
"!# c #ACADAA",
"~# c #6B6F6C",
"{# c #383D3E",
"]# c #5A5E5D",
"^# c #7C7E7B",
"/# c #8A8D89",
"(# c #8C8F8B",
"_# c #8D8F8C",
":# c #8E908D",
"<# c #8F918E",
"[# c #8E918D",
"}# c #939591",
"|# c #FDFAD5",
"1# c #FEFCE8",
"2# c #F7F5E6",
"3# c #FEFBE9",
"4# c #FEFCE7",
"5# c #FEFBE6",
"6# c #FDFBE6",
"7# c #FDFAE5",
"8# c #FCFAE5",
"9# c #FCFAE4",
"0# c #FBF9E4",
"a# c #F1F0DB",
"b# c #FBF8E2",
"c# c #F8F2BF",
"d# c #646764",
"e# c #3B4141",
"f# c #2D3335",
"g# c #34393A",
"h# c #3C4141",
"i# c #414646",
"j# c #434847",
"k# c #444848",
"l# c #454949",
"m# c #454A49",
"n# c #464A4A",
"o# c #464B4A",
"p# c #494D4C",
"q# c #4C504F",
"r# c #4F5352",
"s# c #505453",
"t# c #4D5150",
"u# c #4B4F4E",
"v# c #4B4F4D",
"w# c #505452",
"x# c #676A68",
"y# c #717472",
"z# c #F9F1A7",
"A# c #F7E960",
"B# c #FEF38B",
"C# c #F9EE7D",
"D# c #F0E25A",
"E# c #E8D949",
"F# c #E0D03E",
"G# c #D8C832",
"H# c #D0BF27",
"I# c #C8B71B",
"J# c #C0AE10",
"K# c #B8A604",
"L# c #C1AE00",
"M# c #E3D34C",
"N# c #484C4A",
"O# c #323839",
"P# c #2E3335",
"Q# c #33383A",
"R# c #353A3B",
"S# c #363B3B",
"T# c #373C3C",
"U# c #373C3D",
"V# c #383E3E",
"W# c #404445",
"X# c #434848",
"Y# c #3F4343",
"Z# c #3D4141",
"`# c #3D4241",
" $ c #3E4242",
".$ c #484C4C",
"+$ c #636665",
"@$ c #5B5D5C",
"#$ c #F9F1A8",
"$$ c #F8E962",
"%$ c #FEF38C",
"&$ c #F9EE7F",
"*$ c #F1E25B",
"=$ c #474B49",
"-$ c #34393B",
";$ c #353B3C",
">$ c #363B3C",
",$ c #393E3E",
"'$ c #393E3F",
")$ c #3C4040",
"!$ c #404444",
"~$ c #454A4A",
"{$ c #424646",
"]$ c #3F4443",
"^$ c #404544",
"/$ c #464A49",
"($ c #5F6261",
"_$ c #6B6D6C",
":$ c #F9F0A7",
"<$ c #464A48",
"[$ c #303637",
"}$ c #2A3032",
"|$ c #32383A",
"1$ c #363B3D",
"2$ c #373D3E",
"3$ c #3A3F3F",
"4$ c #3A3F40",
"5$ c #3B4040",
"6$ c #3F4444",
"7$ c #474B4B",
"8$ c #434747",
"9$ c #414545",
"0$ c #424645",
"a$ c #434746",
"b$ c #4D5050",
"c$ c #565858",
"d$ c #F9F0A4",
"e$ c #2A2F31",
"f$ c #2E3436",
"g$ c #313638",
"h$ c #3E4243",
"i$ c #3D4242",
"j$ c #3A3E3E",
"k$ c #3B3F3F",
"l$ c #3E4342",
"m$ c #414544",
"n$ c #F8F0A0",
"o$ c #292F31",
"p$ c #2C3234",
"q$ c #2D3234",
"r$ c #2E3334",
"s$ c #2E3234",
"t$ c #2D3334",
"u$ c #2F3335",
"v$ c #2D3333",
"w$ c #F8EF9D",
"x$ c #F8E961",
"y$ c #F8EE98",
"z$ c #F7E85B",
"A$ c #FDF388",
"B$ c #F9ED78",
"C$ c #F0E259",
"D$ c #C1AF02",
"E$ c #7D6500",
"F$ c #EDDF69",
"G$ c #FAF2A0",
"H$ c #FEF7B2",
"I$ c #FBF3A8",
"J$ c #F6ED9A",
"K$ c #F1E78D",
"L$ c #EBE081",
"M$ c #E4D972",
"N$ c #DED267",
"O$ c #D8CC5F",
"P$ c #D3C657",
"Q$ c #CDC14F",
"R$ c #D3C64C",
"S$ c #D7C531",
"T$ c #655200",
"U$ c #7E6501",
"V$ c #7E6400",
"W$ c #695400",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" . + @ @ @ @ # # $ $ $ $ % % $ $ $ $ # @ @ @ @ @ @ @ + & ",
" * = - ; > ; - - , ' ) ! ~ { { { ~ ] ] ^ / / ' ; ; ; ( ; _ : ",
" < [ } - | 1 2 3 4 5 6 / 7 8 9 0 9 a 8 b c c c d e 8 f g ; h i j ",
" k l m n o p q r s t u u v w x x x v y y y y u y > 7 z A B C { D ",
" E F G H I J K L M M N N N O P O O w v v v v Q y 6 e ] R S ; T U ",
" V W X Y Z ` ...3 +.@.6 G G G G G G Z Y M M M M M +.8 9 F #.F $.%.< ",
" &.*.=.N z -.;.>.G ,.,.,./ '.).).m m m m ; !.> +.+.m | ~.{.].{.^.( /. ",
" (._.:.I <.[.}.|.| f f | | | :.:.:.:.1.] :.:.:.] ] ,.,.] { F } 2.3.4. ",
" 5.6.G 7.8.9.:.#.~.0.0.0.e e #.X a.b.} ~.f f f | | | | | c.; d.h e.f. ",
" g.o 6.h.i.j.].].{.{.{.k.k.{.l.m.n.n.n.n.o.3.#.~.#.~.~.0.~.0.] p.q.r.s.t. ",
" u.v.w.^ x.y.z.z.y.A.A.A.B.6.m.C.h D.k.h E.n.a.{.].{.{.{.{.{.F j.4 F.G.% ",
" }.F.{.H.I.J.h h 6.6.6.6.6.3.K.L.M.^ ] f N.C.3.A.A.A.A.A.w.w.A./ [ , F.O. ",
" < P.Q.~.R.S.^.^.^.I.T.l.l.2.2.2.h G.D.X h F.I.J.h U.J.6.6.6.6.T j.V.W.T X.< ",
" Y.Z.z.c.`. +.+++@+++++#+#+Q.Q.Q.F.^.l.l.l.^.^.^.^.^.6.$+% %+&+*+=+-+s w.;+>+ ",
" ,+@+{ ,.@+'+)+!+~+~+K.K.K.K.{+{+{+{+.+@+@+@+++++++, &.]+^+/+(+_+:+j <+F Q.[+ ",
" }+|+j.d.A.r.1+2+3+S.4+4+4+5+4+5+5+|+6+6+!+!+7+7+Q.8+9+0+a+b+c+d+e+f+g+m h+i+ ",
" j+k+l+m+n+z.6.S.o+p+2+q+C.r+r.r.r.r.h+s+s+S.S.S.S.t+u+v+& w+x+y+[.z+A+B+C+D+E+F+ ",
" G+H+=.*.q.h 3.h ^.r.I+1+J+K+R.)+q+L+L+M+N+o.o.O+q+P+Q+R+S+l j.T+F U+V+W+X+, Y+Z+ ",
" `+m.Y+g h.^ 3.A.T+ @:.{.Q.M+I+.@1++@+@1+@@#@#@1+'+$@%@&@*@e f ,.m R =@-@%+;@l.>@ ",
" j ,@o.'@)@!@R ~@3.e { :.:.7 F 6.Q.S.{@q+)+]@)+^@o./@(@_@:@<@[@}@|@1@2@< 3@< 4@y.5@6@ ",
" D 7@I.+.8@9@0@a@L.H+H+b@@+c@K.d@7+|+e@e@f@g@h@5+i@j@k@_@l@m@n@o@o@p@q@r@3@s@t@u@_.v@ ",
" w@l+x@y@C z@m A@B@C@D@g ~@( ^ ) ~ M.E@~ ) ( g m+F@G@H@I@J@K@L@M@N@O@P@r@Q@R@S@F@T@U@ ",
" V@W@X@7+5+5+7+b@F.F.Y@Y@Z@Z@Z@b@#+`@#+Q.Z@F.l. #.#+#@###$#%#&#*#=#-#;#>#,#'#)#.#!#~# ",
" {#]#^#/#(#(#(#_#_#_#_#:#:#<#<#<#[#:#:#:#:#[#}#v@.#|#1#2#3#4#5#6#7#8#9#0#a#b#c#.#d#e# ",
" f#g#h#i#j#k#k#l#m#n#o#p#q#r#s#r#t#u#v#u#v#w#x#y#.#z#A#B#C#D#E#F#G#H#I#J#K#L#M#.#N#O# ",
" P#Q#Q#Q#g#R#R#S#T#U#V#h#W#X#X#i#Y#Z#`# $ $.$+$@$.##$$$%$&$*$E#F#G#H#I#J#K#L#M#.#=$O# ",
" P#-$;$;$>$U#U#{#,$'$)$!$X#~$k#{$!$Y#]$!$^$/$($_$.#:$$$%$&$*$E#F#G#H#I#J#K#L#M#.#<$[$ ",
" }$|$1$U#2$'$3$4$5$h#6$k#7$7$l#8$9$9$0${$a$l#b$c$.#d$$$%$&$*$E#F#G#H#I#J#K#L#M#.#5$e$ ",
" e$P#f$g$Q#g#R#R#T#'$h#h$i$)$j$,$j$3$k$)$l$m$a$.#n$$$%$&$*$E#F#G#H#I#J#K#L#M#.#e$ ",
" o$p$p$p$p$q$q$r$r$r$s$t$t$r$r$P#P#u$r$v$.#w$x$%$&$*$E#F#G#H#I#J#K#L#M#.# ",
" .#y$z$A$B$C$E#F#G#H#I#J#K#D$M#.# ",
" E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$E$ ",
" T$E$.#U$.#.#.#.#.#.#.#.#.#.#V$W$ ",
" ",
" ",
" ",
" ",
" "};