diff --git a/Program.cs b/Program.cs
index d418d39..4831cc5 100644
--- a/Program.cs
+++ b/Program.cs
@@ -6,15 +6,15 @@ namespace RTFPad
{
static class Program
{
- ///
- /// The main entry point for the application.
- ///
[STAThread]
- static void Main()
+ static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
- Application.Run(new rtfPadForm());
+ string startDoc = "";
+ if (args.Length > 0) { startDoc = args[0]; }
+ if (startDoc == "") { Application.Run(new rtfPadForm()); }
+ else { Application.Run(new rtfPadForm(startDoc)); }
}
}
}
\ No newline at end of file
diff --git a/RTFPad.csproj b/RTFPad.csproj
index ee3fc7c..d3a440b 100644
--- a/RTFPad.csproj
+++ b/RTFPad.csproj
@@ -10,14 +10,30 @@
Properties
RTFPad
RTFPad
- v2.0
+ v4.0
512
+
+ false
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ true
x86
true
full
- false
+ true
bin\Debug\
DEBUG;TRACE
prompt
@@ -33,7 +49,10 @@
4
- icon.ico
+ RTFPad.ico
+
+
+ RTFPad.Program
@@ -74,7 +93,16 @@
rtfPadForm.cs
-
+
+ aboutForm.cs
+
+
+ findForm.cs
+
+
+ ResXFileCodeGenerator
+ icons1.Designer.cs
+
ResXFileCodeGenerator
Resources.Designer.cs
@@ -83,10 +111,15 @@
True
Resources.resx
+ True
+
+ replaceForm.cs
+
rtfPadForm.cs
+
SettingsSingleFileGenerator
Settings.Designer.cs
@@ -99,6 +132,14 @@
+
+
+
+
+ False
+ .NET Framework 3.5 SP1
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/app.config b/app.config
new file mode 100644
index 0000000..fcd0c93
--- /dev/null
+++ b/app.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/bin/Debug/RTFPad.exe b/bin/Debug/RTFPad.exe
index a1f42ea..7e36a04 100644
Binary files a/bin/Debug/RTFPad.exe and b/bin/Debug/RTFPad.exe differ
diff --git a/bin/Debug/RTFPad.pdb b/bin/Debug/RTFPad.pdb
index f34f742..4ce43f3 100644
Binary files a/bin/Debug/RTFPad.pdb and b/bin/Debug/RTFPad.pdb differ
diff --git a/findForm.Designer.cs b/findForm.Designer.cs
index 0aa4937..ef1aa8b 100644
--- a/findForm.Designer.cs
+++ b/findForm.Designer.cs
@@ -36,34 +36,36 @@ private void InitializeComponent()
this.radioButtonUp = new System.Windows.Forms.RadioButton();
this.buttonFind = new System.Windows.Forms.Button();
this.buttonCancel = new System.Windows.Forms.Button();
+ this.checkBoxWholeWord = new System.Windows.Forms.CheckBox();
this.findDirectionGroupBox.SuspendLayout();
this.SuspendLayout();
//
// findLabel
//
this.findLabel.AutoSize = true;
- this.findLabel.Location = new System.Drawing.Point(13, 24);
+ this.findLabel.Location = new System.Drawing.Point(20, 37);
+ this.findLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.findLabel.Name = "findLabel";
- this.findLabel.Size = new System.Drawing.Size(56, 13);
+ this.findLabel.Size = new System.Drawing.Size(82, 20);
this.findLabel.TabIndex = 0;
this.findLabel.Text = "Fi&nd what:";
//
// textBoxFind
//
- this.textBoxFind.Location = new System.Drawing.Point(75, 21);
+ this.textBoxFind.Location = new System.Drawing.Point(112, 32);
+ this.textBoxFind.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.textBoxFind.Name = "textBoxFind";
- this.textBoxFind.Size = new System.Drawing.Size(200, 20);
+ this.textBoxFind.Size = new System.Drawing.Size(298, 26);
this.textBoxFind.TabIndex = 1;
this.textBoxFind.TextChanged += new System.EventHandler(this.findTextBox_TextChanged);
//
// checkBoxMatchCase
//
this.checkBoxMatchCase.AutoSize = true;
- this.checkBoxMatchCase.Checked = true;
- this.checkBoxMatchCase.CheckState = System.Windows.Forms.CheckState.Checked;
- this.checkBoxMatchCase.Location = new System.Drawing.Point(16, 89);
+ this.checkBoxMatchCase.Location = new System.Drawing.Point(24, 132);
+ this.checkBoxMatchCase.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.checkBoxMatchCase.Name = "checkBoxMatchCase";
- this.checkBoxMatchCase.Size = new System.Drawing.Size(82, 17);
+ this.checkBoxMatchCase.Size = new System.Drawing.Size(117, 24);
this.checkBoxMatchCase.TabIndex = 2;
this.checkBoxMatchCase.Text = "Match &case";
this.checkBoxMatchCase.UseVisualStyleBackColor = true;
@@ -72,9 +74,11 @@ private void InitializeComponent()
//
this.findDirectionGroupBox.Controls.Add(this.radioButtonDown);
this.findDirectionGroupBox.Controls.Add(this.radioButtonUp);
- this.findDirectionGroupBox.Location = new System.Drawing.Point(155, 56);
+ this.findDirectionGroupBox.Location = new System.Drawing.Point(212, 84);
+ this.findDirectionGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.findDirectionGroupBox.Name = "findDirectionGroupBox";
- this.findDirectionGroupBox.Size = new System.Drawing.Size(120, 50);
+ this.findDirectionGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.findDirectionGroupBox.Size = new System.Drawing.Size(180, 77);
this.findDirectionGroupBox.TabIndex = 3;
this.findDirectionGroupBox.TabStop = false;
this.findDirectionGroupBox.Text = "Direction";
@@ -83,9 +87,10 @@ private void InitializeComponent()
//
this.radioButtonDown.AutoSize = true;
this.radioButtonDown.Checked = true;
- this.radioButtonDown.Location = new System.Drawing.Point(61, 27);
+ this.radioButtonDown.Location = new System.Drawing.Point(92, 42);
+ this.radioButtonDown.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.radioButtonDown.Name = "radioButtonDown";
- this.radioButtonDown.Size = new System.Drawing.Size(53, 17);
+ this.radioButtonDown.Size = new System.Drawing.Size(75, 24);
this.radioButtonDown.TabIndex = 1;
this.radioButtonDown.TabStop = true;
this.radioButtonDown.Text = "&Down";
@@ -94,9 +99,10 @@ private void InitializeComponent()
// radioButtonUp
//
this.radioButtonUp.AutoSize = true;
- this.radioButtonUp.Location = new System.Drawing.Point(6, 27);
+ this.radioButtonUp.Location = new System.Drawing.Point(9, 42);
+ this.radioButtonUp.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.radioButtonUp.Name = "radioButtonUp";
- this.radioButtonUp.Size = new System.Drawing.Size(39, 17);
+ this.radioButtonUp.Size = new System.Drawing.Size(55, 24);
this.radioButtonUp.TabIndex = 0;
this.radioButtonUp.Text = "&Up";
this.radioButtonUp.UseVisualStyleBackColor = true;
@@ -104,9 +110,10 @@ private void InitializeComponent()
// buttonFind
//
this.buttonFind.Enabled = false;
- this.buttonFind.Location = new System.Drawing.Point(298, 24);
+ this.buttonFind.Location = new System.Drawing.Point(447, 32);
+ this.buttonFind.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.buttonFind.Name = "buttonFind";
- this.buttonFind.Size = new System.Drawing.Size(75, 23);
+ this.buttonFind.Size = new System.Drawing.Size(112, 35);
this.buttonFind.TabIndex = 4;
this.buttonFind.Text = "&Find";
this.buttonFind.UseVisualStyleBackColor = true;
@@ -115,22 +122,35 @@ private void InitializeComponent()
// buttonCancel
//
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.buttonCancel.Location = new System.Drawing.Point(298, 53);
+ this.buttonCancel.Location = new System.Drawing.Point(447, 82);
+ this.buttonCancel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.buttonCancel.Name = "buttonCancel";
- this.buttonCancel.Size = new System.Drawing.Size(75, 23);
+ this.buttonCancel.Size = new System.Drawing.Size(112, 35);
this.buttonCancel.TabIndex = 5;
this.buttonCancel.Text = "Cancel";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
//
+ // checkBoxWholeWord
+ //
+ this.checkBoxWholeWord.AutoSize = true;
+ this.checkBoxWholeWord.Location = new System.Drawing.Point(24, 93);
+ this.checkBoxWholeWord.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.checkBoxWholeWord.Name = "checkBoxWholeWord";
+ this.checkBoxWholeWord.Size = new System.Drawing.Size(118, 24);
+ this.checkBoxWholeWord.TabIndex = 6;
+ this.checkBoxWholeWord.Text = "Whole word";
+ this.checkBoxWholeWord.UseVisualStyleBackColor = true;
+ //
// findForm
//
this.AcceptButton = this.buttonFind;
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoValidate = System.Windows.Forms.AutoValidate.EnableAllowFocusChange;
this.CancelButton = this.buttonCancel;
- this.ClientSize = new System.Drawing.Size(394, 118);
+ this.ClientSize = new System.Drawing.Size(591, 182);
+ this.Controls.Add(this.checkBoxWholeWord);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.buttonFind);
this.Controls.Add(this.findDirectionGroupBox);
@@ -138,6 +158,7 @@ private void InitializeComponent()
this.Controls.Add(this.textBoxFind);
this.Controls.Add(this.findLabel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "findForm";
@@ -161,5 +182,6 @@ private void InitializeComponent()
private System.Windows.Forms.RadioButton radioButtonDown;
private System.Windows.Forms.Button buttonFind;
private System.Windows.Forms.Button buttonCancel;
+ private System.Windows.Forms.CheckBox checkBoxWholeWord;
}
}
\ No newline at end of file
diff --git a/findForm.cs b/findForm.cs
index da91223..5832966 100644
--- a/findForm.cs
+++ b/findForm.cs
@@ -1,9 +1,4 @@
using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Text;
using System.Windows.Forms;
@@ -30,9 +25,10 @@ private void buttonCancel_Click(object sender, EventArgs e)
private void buttonFind_Click(object sender, EventArgs e)
{
if (((rtfPadForm)this.Owner).tabControl.TabCount <= 0) return;
- if (((rtfPadForm)this.Owner).findText(this.textBoxFind.Text,
- this.radioButtonDown.Checked,
- this.checkBoxMatchCase.Checked) == false)
+ if (((rtfPadForm)this.Owner).findTextWhole(this.textBoxFind.Text,
+ this.radioButtonDown.Checked,
+ this.checkBoxMatchCase.Checked,
+ this.checkBoxWholeWord.Checked) == false)
{
MessageBox.Show("Can't find \'" + this.textBoxFind.Text + "\'", "Find",
MessageBoxButtons.OK,
diff --git a/findForm.resx b/findForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/findForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/pencil.png b/pencil.png
new file mode 100644
index 0000000..4e937d3
Binary files /dev/null and b/pencil.png differ
diff --git a/replaceForm.Designer.cs b/replaceForm.Designer.cs
index de10a76..052c35d 100644
--- a/replaceForm.Designer.cs
+++ b/replaceForm.Designer.cs
@@ -37,47 +37,53 @@ private void InitializeComponent()
this.buttonReplace = new System.Windows.Forms.Button();
this.buttonReplaceAll = new System.Windows.Forms.Button();
this.buttonCancel = new System.Windows.Forms.Button();
+ this.checkBoxWholeWord = new System.Windows.Forms.CheckBox();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(12, 19);
+ this.label1.Location = new System.Drawing.Point(18, 29);
+ this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(56, 13);
+ this.label1.Size = new System.Drawing.Size(82, 20);
this.label1.TabIndex = 0;
this.label1.Text = "Find what:";
//
// label2
//
this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(12, 44);
+ this.label2.Location = new System.Drawing.Point(18, 68);
+ this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(72, 13);
+ this.label2.Size = new System.Drawing.Size(104, 20);
this.label2.TabIndex = 1;
this.label2.Text = "Replace with:";
//
// textBoxFind
//
- this.textBoxFind.Location = new System.Drawing.Point(90, 13);
+ this.textBoxFind.Location = new System.Drawing.Point(135, 20);
+ this.textBoxFind.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.textBoxFind.Name = "textBoxFind";
- this.textBoxFind.Size = new System.Drawing.Size(198, 20);
+ this.textBoxFind.Size = new System.Drawing.Size(295, 26);
this.textBoxFind.TabIndex = 2;
this.textBoxFind.TextChanged += new System.EventHandler(this.textBoxFind_TextChanged);
//
// textBoxReplace
//
- this.textBoxReplace.Location = new System.Drawing.Point(90, 41);
+ this.textBoxReplace.Location = new System.Drawing.Point(135, 63);
+ this.textBoxReplace.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.textBoxReplace.Name = "textBoxReplace";
- this.textBoxReplace.Size = new System.Drawing.Size(198, 20);
+ this.textBoxReplace.Size = new System.Drawing.Size(295, 26);
this.textBoxReplace.TabIndex = 3;
//
// checkBoxMatchCase
//
this.checkBoxMatchCase.AutoSize = true;
- this.checkBoxMatchCase.Location = new System.Drawing.Point(15, 125);
+ this.checkBoxMatchCase.Location = new System.Drawing.Point(22, 159);
+ this.checkBoxMatchCase.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.checkBoxMatchCase.Name = "checkBoxMatchCase";
- this.checkBoxMatchCase.Size = new System.Drawing.Size(82, 17);
+ this.checkBoxMatchCase.Size = new System.Drawing.Size(117, 24);
this.checkBoxMatchCase.TabIndex = 4;
this.checkBoxMatchCase.Text = "Match case";
this.checkBoxMatchCase.UseVisualStyleBackColor = true;
@@ -85,9 +91,10 @@ private void InitializeComponent()
// buttonFindNext
//
this.buttonFindNext.Enabled = false;
- this.buttonFindNext.Location = new System.Drawing.Point(307, 9);
+ this.buttonFindNext.Location = new System.Drawing.Point(460, 14);
+ this.buttonFindNext.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.buttonFindNext.Name = "buttonFindNext";
- this.buttonFindNext.Size = new System.Drawing.Size(75, 23);
+ this.buttonFindNext.Size = new System.Drawing.Size(112, 35);
this.buttonFindNext.TabIndex = 5;
this.buttonFindNext.Text = "Find next";
this.buttonFindNext.UseVisualStyleBackColor = true;
@@ -96,9 +103,10 @@ private void InitializeComponent()
// buttonReplace
//
this.buttonReplace.Enabled = false;
- this.buttonReplace.Location = new System.Drawing.Point(307, 38);
+ this.buttonReplace.Location = new System.Drawing.Point(460, 58);
+ this.buttonReplace.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.buttonReplace.Name = "buttonReplace";
- this.buttonReplace.Size = new System.Drawing.Size(75, 23);
+ this.buttonReplace.Size = new System.Drawing.Size(112, 35);
this.buttonReplace.TabIndex = 6;
this.buttonReplace.Text = "Replace";
this.buttonReplace.UseVisualStyleBackColor = true;
@@ -107,9 +115,10 @@ private void InitializeComponent()
// buttonReplaceAll
//
this.buttonReplaceAll.Enabled = false;
- this.buttonReplaceAll.Location = new System.Drawing.Point(307, 67);
+ this.buttonReplaceAll.Location = new System.Drawing.Point(460, 103);
+ this.buttonReplaceAll.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.buttonReplaceAll.Name = "buttonReplaceAll";
- this.buttonReplaceAll.Size = new System.Drawing.Size(75, 23);
+ this.buttonReplaceAll.Size = new System.Drawing.Size(112, 35);
this.buttonReplaceAll.TabIndex = 7;
this.buttonReplaceAll.Text = "Replace All";
this.buttonReplaceAll.UseVisualStyleBackColor = true;
@@ -118,20 +127,33 @@ private void InitializeComponent()
// buttonCancel
//
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.buttonCancel.Location = new System.Drawing.Point(307, 96);
+ this.buttonCancel.Location = new System.Drawing.Point(460, 148);
+ this.buttonCancel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.buttonCancel.Name = "buttonCancel";
- this.buttonCancel.Size = new System.Drawing.Size(75, 23);
+ this.buttonCancel.Size = new System.Drawing.Size(112, 35);
this.buttonCancel.TabIndex = 8;
this.buttonCancel.Text = "Cancel";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
//
+ // checkBoxWholeWord
+ //
+ this.checkBoxWholeWord.AutoSize = true;
+ this.checkBoxWholeWord.Location = new System.Drawing.Point(22, 122);
+ this.checkBoxWholeWord.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.checkBoxWholeWord.Name = "checkBoxWholeWord";
+ this.checkBoxWholeWord.Size = new System.Drawing.Size(118, 24);
+ this.checkBoxWholeWord.TabIndex = 9;
+ this.checkBoxWholeWord.Text = "Whole word";
+ this.checkBoxWholeWord.UseVisualStyleBackColor = true;
+ //
// replaceForm
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.buttonCancel;
- this.ClientSize = new System.Drawing.Size(394, 170);
+ this.ClientSize = new System.Drawing.Size(591, 205);
+ this.Controls.Add(this.checkBoxWholeWord);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.buttonReplaceAll);
this.Controls.Add(this.buttonReplace);
@@ -142,6 +164,7 @@ private void InitializeComponent()
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Name = "replaceForm";
this.ShowIcon = false;
this.Text = "Replace";
@@ -161,5 +184,6 @@ private void InitializeComponent()
private System.Windows.Forms.Button buttonReplace;
private System.Windows.Forms.Button buttonReplaceAll;
private System.Windows.Forms.Button buttonCancel;
+ private System.Windows.Forms.CheckBox checkBoxWholeWord;
}
}
\ No newline at end of file
diff --git a/replaceForm.cs b/replaceForm.cs
index 06f9640..0641caa 100644
--- a/replaceForm.cs
+++ b/replaceForm.cs
@@ -1,9 +1,4 @@
using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Text;
using System.Windows.Forms;
namespace RTFPad
@@ -39,9 +34,10 @@ private void textBoxFind_TextChanged(object sender, EventArgs e)
private void buttonFindNext_Click(object sender, EventArgs e)
{
if (((rtfPadForm)this.Owner).tabControl.TabCount <= 0) return;
- if (((rtfPadForm)this.Owner).findText(this.textBoxFind.Text,
- true,
- this.checkBoxMatchCase.Checked) == false)
+ if (((rtfPadForm)this.Owner).findTextWhole(this.textBoxFind.Text,
+ true,
+ this.checkBoxMatchCase.Checked,
+ this.checkBoxWholeWord.Checked) == false)
{
MessageBox.Show("Can't find \'" + this.textBoxFind.Text + "'\'", "Find",
MessageBoxButtons.OK,
@@ -55,7 +51,8 @@ private void buttonReplace_Click(object sender, EventArgs e)
if (((rtfPadForm)this.Owner).tabControl.TabCount <= 0) return;
if (((rtfPadForm)this.Owner).replaceText(this.textBoxFind.Text,
this.textBoxReplace.Text,
- this.checkBoxMatchCase.Checked) == false)
+ this.checkBoxMatchCase.Checked,
+ this.checkBoxWholeWord.Checked) == false)
{
MessageBox.Show("Can't find \'" + this.textBoxFind.Text + "'\'", "Find",
MessageBoxButtons.OK,
@@ -67,7 +64,8 @@ private void buttonReplace_Click(object sender, EventArgs e)
private void buttonReplaceAll_Click(object sender, EventArgs e)
{
if (((rtfPadForm)this.Owner).tabControl.TabCount <= 0) return;
- ((rtfPadForm)this.Owner).replaceAllInText(this.textBoxFind.Text, this.textBoxReplace.Text, this.checkBoxMatchCase.Checked);
+ ((rtfPadForm)this.Owner).replaceAllInText(this.textBoxFind.Text, this.textBoxReplace.Text,
+ this.checkBoxMatchCase.Checked, this.checkBoxWholeWord.Checked);
}
}
diff --git a/replaceForm.resx b/replaceForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/replaceForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/rtfPadForm.Designer.cs b/rtfPadForm.Designer.cs
index 5e109c7..208bafb 100644
--- a/rtfPadForm.Designer.cs
+++ b/rtfPadForm.Designer.cs
@@ -35,6 +35,8 @@ private void InitializeComponent()
this.menuFileNewTab = new System.Windows.Forms.ToolStripMenuItem();
this.menuFileCloseCurrentTab = new System.Windows.Forms.ToolStripMenuItem();
this.menuFileOpen = new System.Windows.Forms.ToolStripMenuItem();
+ this.menuRecent = new System.Windows.Forms.ToolStripMenuItem();
+ this.menuRecentLoad = new System.Windows.Forms.ToolStripMenuItem();
this.menuFileSave = new System.Windows.Forms.ToolStripMenuItem();
this.menuFileSaveAs = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
@@ -64,33 +66,15 @@ private void InitializeComponent()
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.aboutRTFPadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStrip = new System.Windows.Forms.ToolStrip();
- this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
- this.toolStripCBoxFont = new System.Windows.Forms.ToolStripComboBox();
- this.toolStripCBoxFontSize = new System.Windows.Forms.ToolStripComboBox();
- this.dialogOpen = new System.Windows.Forms.OpenFileDialog();
- this.dialogSave = new System.Windows.Forms.SaveFileDialog();
- this.tabControl = new System.Windows.Forms.TabControl();
- this.statusStrip = new System.Windows.Forms.StatusStrip();
- this.statusStripInfoLabel = new System.Windows.Forms.ToolStripStatusLabel();
- this.tabMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.contextMenuNew = new System.Windows.Forms.ToolStripMenuItem();
- this.contextMenuClose = new System.Windows.Forms.ToolStripMenuItem();
- this.dialogPrintPreview = new System.Windows.Forms.PrintPreviewDialog();
- this.dialogPrint = new System.Windows.Forms.PrintDialog();
- this.dialogPageSetup = new System.Windows.Forms.PageSetupDialog();
- this.dialogFont = new System.Windows.Forms.FontDialog();
- this.dialogColor = new System.Windows.Forms.ColorDialog();
this.toolStripNew = new System.Windows.Forms.ToolStripButton();
this.toolStripOpen = new System.Windows.Forms.ToolStripButton();
this.toolStripSave = new System.Windows.Forms.ToolStripButton();
this.toolStripPrint = new System.Windows.Forms.ToolStripButton();
this.toolStripPrintPreview = new System.Windows.Forms.ToolStripButton();
- this.toolStripFind = new System.Windows.Forms.ToolStripButton();
- this.toolStripCut = new System.Windows.Forms.ToolStripButton();
- this.toolStripCopy = new System.Windows.Forms.ToolStripButton();
- this.toolStripPaste = new System.Windows.Forms.ToolStripButton();
this.toolStripUndo = new System.Windows.Forms.ToolStripButton();
this.toolStripRedo = new System.Windows.Forms.ToolStripButton();
+ this.toolStripCBoxFont = new System.Windows.Forms.ToolStripComboBox();
+ this.toolStripCBoxFontSize = new System.Windows.Forms.ToolStripComboBox();
this.toolStripBold = new System.Windows.Forms.ToolStripButton();
this.toolStripItalic = new System.Windows.Forms.ToolStripButton();
this.toolStripUnderline = new System.Windows.Forms.ToolStripButton();
@@ -100,6 +84,22 @@ private void InitializeComponent()
this.toolStripAlignCenter = new System.Windows.Forms.ToolStripButton();
this.toolStripAlignRight = new System.Windows.Forms.ToolStripButton();
this.toolStripBullet = new System.Windows.Forms.ToolStripButton();
+ this.dialogOpen = new System.Windows.Forms.OpenFileDialog();
+ this.dialogSave = new System.Windows.Forms.SaveFileDialog();
+ this.tabControl = new System.Windows.Forms.TabControl();
+ this.statusStrip = new System.Windows.Forms.StatusStrip();
+ this.statusStripInfoLabel = new System.Windows.Forms.ToolStripStatusLabel();
+ this.tabMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.contextMenuNew = new System.Windows.Forms.ToolStripMenuItem();
+ this.contextMenuClose = new System.Windows.Forms.ToolStripMenuItem();
+ this.dialogPrintPreview = new System.Windows.Forms.PrintPreviewDialog();
+ this.dialogPrint = new System.Windows.Forms.PrintDialog();
+ this.dialogPageSetup = new System.Windows.Forms.PageSetupDialog();
+ this.dialogFont = new System.Windows.Forms.FontDialog();
+ this.dialogColor = new System.Windows.Forms.ColorDialog();
+ this.btnToBottom = new System.Windows.Forms.Button();
+ this.btnEditDocument = new System.Windows.Forms.Button();
+ this.timerAutoloadFile = new System.Windows.Forms.Timer(this.components);
this.menuStrip1.SuspendLayout();
this.toolStrip.SuspendLayout();
this.statusStrip.SuspendLayout();
@@ -108,6 +108,8 @@ private void InitializeComponent()
//
// menuStrip1
//
+ this.menuStrip1.GripMargin = new System.Windows.Forms.Padding(2, 2, 0, 2);
+ this.menuStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuFile,
this.menuEdit,
@@ -116,7 +118,7 @@ private void InitializeComponent()
this.helpToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
- this.menuStrip1.Size = new System.Drawing.Size(792, 24);
+ this.menuStrip1.Size = new System.Drawing.Size(978, 33);
this.menuStrip1.TabIndex = 1;
this.menuStrip1.Text = "menuStrip1";
//
@@ -126,6 +128,7 @@ private void InitializeComponent()
this.menuFileNewTab,
this.menuFileCloseCurrentTab,
this.menuFileOpen,
+ this.menuRecent,
this.menuFileSave,
this.menuFileSaveAs,
this.toolStripSeparator1,
@@ -135,7 +138,7 @@ private void InitializeComponent()
this.toolStripSeparator2,
this.menuFileExit});
this.menuFile.Name = "menuFile";
- this.menuFile.Size = new System.Drawing.Size(37, 20);
+ this.menuFile.Size = new System.Drawing.Size(54, 29);
this.menuFile.Text = "&File";
this.menuFile.Click += new System.EventHandler(this.menuFile_Click);
//
@@ -143,7 +146,7 @@ private void InitializeComponent()
//
this.menuFileNewTab.Name = "menuFileNewTab";
this.menuFileNewTab.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
- this.menuFileNewTab.Size = new System.Drawing.Size(214, 22);
+ this.menuFileNewTab.Size = new System.Drawing.Size(320, 34);
this.menuFileNewTab.Text = "&New Tab...";
this.menuFileNewTab.Click += new System.EventHandler(this.menuFileNew_Click);
//
@@ -152,7 +155,7 @@ private void InitializeComponent()
this.menuFileCloseCurrentTab.Enabled = false;
this.menuFileCloseCurrentTab.Name = "menuFileCloseCurrentTab";
this.menuFileCloseCurrentTab.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.W)));
- this.menuFileCloseCurrentTab.Size = new System.Drawing.Size(214, 22);
+ this.menuFileCloseCurrentTab.Size = new System.Drawing.Size(320, 34);
this.menuFileCloseCurrentTab.Text = "&Close Current Tab";
this.menuFileCloseCurrentTab.Click += new System.EventHandler(this.menuFileCloseCurrentTab_Click);
//
@@ -160,60 +163,75 @@ private void InitializeComponent()
//
this.menuFileOpen.Name = "menuFileOpen";
this.menuFileOpen.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
- this.menuFileOpen.Size = new System.Drawing.Size(214, 22);
+ this.menuFileOpen.Size = new System.Drawing.Size(320, 34);
this.menuFileOpen.Text = "&Open...";
this.menuFileOpen.Click += new System.EventHandler(this.menuFileOpen_Click);
//
+ // menuRecent
+ //
+ this.menuRecent.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.menuRecentLoad});
+ this.menuRecent.Name = "menuRecent";
+ this.menuRecent.Size = new System.Drawing.Size(320, 34);
+ this.menuRecent.Text = "Recent...";
+ //
+ // menuRecentLoad
+ //
+ this.menuRecentLoad.Name = "menuRecentLoad";
+ this.menuRecentLoad.Size = new System.Drawing.Size(270, 34);
+ this.menuRecentLoad.Text = "(filename)";
+ this.menuRecentLoad.Click += new System.EventHandler(this.menuRecentLoad_Click);
+ //
// menuFileSave
//
this.menuFileSave.Name = "menuFileSave";
this.menuFileSave.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
- this.menuFileSave.Size = new System.Drawing.Size(214, 22);
+ this.menuFileSave.Size = new System.Drawing.Size(320, 34);
this.menuFileSave.Text = "&Save";
this.menuFileSave.Click += new System.EventHandler(this.menuFileSave_Click);
//
// menuFileSaveAs
//
this.menuFileSaveAs.Name = "menuFileSaveAs";
- this.menuFileSaveAs.Size = new System.Drawing.Size(214, 22);
+ this.menuFileSaveAs.Size = new System.Drawing.Size(320, 34);
this.menuFileSaveAs.Text = "Save &As...";
this.menuFileSaveAs.Click += new System.EventHandler(this.menuFileSaveAs_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
- this.toolStripSeparator1.Size = new System.Drawing.Size(211, 6);
+ this.toolStripSeparator1.Size = new System.Drawing.Size(317, 6);
//
// menuFilePrint
//
this.menuFilePrint.Name = "menuFilePrint";
- this.menuFilePrint.Size = new System.Drawing.Size(214, 22);
+ this.menuFilePrint.Size = new System.Drawing.Size(320, 34);
this.menuFilePrint.Text = "&Print...";
this.menuFilePrint.Click += new System.EventHandler(this.menuFilePrint_Click);
//
// menuFilePrintPreview
//
this.menuFilePrintPreview.Name = "menuFilePrintPreview";
- this.menuFilePrintPreview.Size = new System.Drawing.Size(214, 22);
+ this.menuFilePrintPreview.Size = new System.Drawing.Size(320, 34);
this.menuFilePrintPreview.Text = "Print Pre&view...";
this.menuFilePrintPreview.Click += new System.EventHandler(this.menuFilePrintPreview_Click);
//
// menuFilePageSetup
//
this.menuFilePageSetup.Name = "menuFilePageSetup";
- this.menuFilePageSetup.Size = new System.Drawing.Size(214, 22);
+ this.menuFilePageSetup.Size = new System.Drawing.Size(320, 34);
this.menuFilePageSetup.Text = "Page Set&up...";
this.menuFilePageSetup.Click += new System.EventHandler(this.menuFilePageSetup_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
- this.toolStripSeparator2.Size = new System.Drawing.Size(211, 6);
+ this.toolStripSeparator2.Size = new System.Drawing.Size(317, 6);
//
// menuFileExit
//
this.menuFileExit.Name = "menuFileExit";
- this.menuFileExit.Size = new System.Drawing.Size(214, 22);
+ this.menuFileExit.Size = new System.Drawing.Size(320, 34);
this.menuFileExit.Text = "E&xit";
this.menuFileExit.Click += new System.EventHandler(this.menuFileExit_Click);
//
@@ -233,14 +251,14 @@ private void InitializeComponent()
this.menuEditFindNext,
this.menuEditReplace});
this.menuEdit.Name = "menuEdit";
- this.menuEdit.Size = new System.Drawing.Size(39, 20);
+ this.menuEdit.Size = new System.Drawing.Size(58, 29);
this.menuEdit.Text = "&Edit";
//
// menuEditUndo
//
this.menuEditUndo.Name = "menuEditUndo";
this.menuEditUndo.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z)));
- this.menuEditUndo.Size = new System.Drawing.Size(164, 22);
+ this.menuEditUndo.Size = new System.Drawing.Size(248, 34);
this.menuEditUndo.Text = "&Undo";
this.menuEditUndo.Click += new System.EventHandler(this.menuEditUndo_Click);
//
@@ -248,20 +266,20 @@ private void InitializeComponent()
//
this.menuEditRedo.Name = "menuEditRedo";
this.menuEditRedo.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y)));
- this.menuEditRedo.Size = new System.Drawing.Size(164, 22);
+ this.menuEditRedo.Size = new System.Drawing.Size(248, 34);
this.menuEditRedo.Text = "&Redo";
this.menuEditRedo.Click += new System.EventHandler(this.menuEditRedo_Click);
//
// toolStripSeparator6
//
this.toolStripSeparator6.Name = "toolStripSeparator6";
- this.toolStripSeparator6.Size = new System.Drawing.Size(161, 6);
+ this.toolStripSeparator6.Size = new System.Drawing.Size(245, 6);
//
// menuEditCut
//
this.menuEditCut.Name = "menuEditCut";
this.menuEditCut.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
- this.menuEditCut.Size = new System.Drawing.Size(164, 22);
+ this.menuEditCut.Size = new System.Drawing.Size(248, 34);
this.menuEditCut.Text = "Cu&t";
this.menuEditCut.Click += new System.EventHandler(this.menuEditCut_Click);
//
@@ -269,7 +287,7 @@ private void InitializeComponent()
//
this.menuEditCopy.Name = "menuEditCopy";
this.menuEditCopy.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
- this.menuEditCopy.Size = new System.Drawing.Size(164, 22);
+ this.menuEditCopy.Size = new System.Drawing.Size(248, 34);
this.menuEditCopy.Text = "&Copy";
this.menuEditCopy.Click += new System.EventHandler(this.menuEditCopy_Click);
//
@@ -277,7 +295,7 @@ private void InitializeComponent()
//
this.menuEditPaste.Name = "menuEditPaste";
this.menuEditPaste.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
- this.menuEditPaste.Size = new System.Drawing.Size(164, 22);
+ this.menuEditPaste.Size = new System.Drawing.Size(248, 34);
this.menuEditPaste.Text = "&Paste";
this.menuEditPaste.Click += new System.EventHandler(this.menuEditPaste_Click);
//
@@ -285,7 +303,7 @@ private void InitializeComponent()
//
this.menuEditClear.Name = "menuEditClear";
this.menuEditClear.ShortcutKeys = System.Windows.Forms.Keys.Delete;
- this.menuEditClear.Size = new System.Drawing.Size(164, 22);
+ this.menuEditClear.Size = new System.Drawing.Size(248, 34);
this.menuEditClear.Text = "Cle&ar";
this.menuEditClear.Click += new System.EventHandler(this.menuEditClear_Click);
//
@@ -293,20 +311,20 @@ private void InitializeComponent()
//
this.menuEditSelectAll.Name = "menuEditSelectAll";
this.menuEditSelectAll.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A)));
- this.menuEditSelectAll.Size = new System.Drawing.Size(164, 22);
+ this.menuEditSelectAll.Size = new System.Drawing.Size(248, 34);
this.menuEditSelectAll.Text = "Select A&ll";
this.menuEditSelectAll.Click += new System.EventHandler(this.menuEditSelectAll_Click);
//
// toolStripSeparator7
//
this.toolStripSeparator7.Name = "toolStripSeparator7";
- this.toolStripSeparator7.Size = new System.Drawing.Size(161, 6);
+ this.toolStripSeparator7.Size = new System.Drawing.Size(245, 6);
//
// menuEditFind
//
this.menuEditFind.Name = "menuEditFind";
this.menuEditFind.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
- this.menuEditFind.Size = new System.Drawing.Size(164, 22);
+ this.menuEditFind.Size = new System.Drawing.Size(248, 34);
this.menuEditFind.Text = "&Find";
this.menuEditFind.Click += new System.EventHandler(this.menuEditFind_Click);
//
@@ -314,7 +332,7 @@ private void InitializeComponent()
//
this.menuEditFindNext.Name = "menuEditFindNext";
this.menuEditFindNext.ShortcutKeys = System.Windows.Forms.Keys.F3;
- this.menuEditFindNext.Size = new System.Drawing.Size(164, 22);
+ this.menuEditFindNext.Size = new System.Drawing.Size(248, 34);
this.menuEditFindNext.Text = "Find &Next";
this.menuEditFindNext.Click += new System.EventHandler(this.menuEditFindNext_Click);
//
@@ -322,7 +340,7 @@ private void InitializeComponent()
//
this.menuEditReplace.Name = "menuEditReplace";
this.menuEditReplace.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.H)));
- this.menuEditReplace.Size = new System.Drawing.Size(164, 22);
+ this.menuEditReplace.Size = new System.Drawing.Size(248, 34);
this.menuEditReplace.Text = "&Replace";
this.menuEditReplace.Click += new System.EventHandler(this.menuEditReplace_Click);
//
@@ -331,13 +349,13 @@ private void InitializeComponent()
this.menuView.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuViewWordWrap});
this.menuView.Name = "menuView";
- this.menuView.Size = new System.Drawing.Size(44, 20);
+ this.menuView.Size = new System.Drawing.Size(65, 29);
this.menuView.Text = "&View";
//
// menuViewWordWrap
//
this.menuViewWordWrap.Name = "menuViewWordWrap";
- this.menuViewWordWrap.Size = new System.Drawing.Size(134, 22);
+ this.menuViewWordWrap.Size = new System.Drawing.Size(206, 34);
this.menuViewWordWrap.Text = "&Word Wrap";
this.menuViewWordWrap.Click += new System.EventHandler(this.menuViewWordWrap_Click);
//
@@ -347,20 +365,20 @@ private void InitializeComponent()
this.menuFormatFont,
this.menuFormatColor});
this.menuFormat.Name = "menuFormat";
- this.menuFormat.Size = new System.Drawing.Size(57, 20);
+ this.menuFormat.Size = new System.Drawing.Size(85, 29);
this.menuFormat.Text = "F&ormat";
//
// menuFormatFont
//
this.menuFormatFont.Name = "menuFormatFont";
- this.menuFormatFont.Size = new System.Drawing.Size(103, 22);
+ this.menuFormatFont.Size = new System.Drawing.Size(157, 34);
this.menuFormatFont.Text = "&Font";
this.menuFormatFont.Click += new System.EventHandler(this.menuFormatFont_Click);
//
// menuFormatColor
//
this.menuFormatColor.Name = "menuFormatColor";
- this.menuFormatColor.Size = new System.Drawing.Size(103, 22);
+ this.menuFormatColor.Size = new System.Drawing.Size(157, 34);
this.menuFormatColor.Text = "&Color";
this.menuFormatColor.Click += new System.EventHandler(this.menuFormatColor_Click);
//
@@ -369,32 +387,28 @@ private void InitializeComponent()
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.aboutRTFPadToolStripMenuItem});
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
- this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
+ this.helpToolStripMenuItem.Size = new System.Drawing.Size(65, 29);
this.helpToolStripMenuItem.Text = "&Help";
//
// aboutRTFPadToolStripMenuItem
//
this.aboutRTFPadToolStripMenuItem.Name = "aboutRTFPadToolStripMenuItem";
- this.aboutRTFPadToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
+ this.aboutRTFPadToolStripMenuItem.Size = new System.Drawing.Size(226, 34);
this.aboutRTFPadToolStripMenuItem.Text = "&About RTFPad";
this.aboutRTFPadToolStripMenuItem.Click += new System.EventHandler(this.aboutRTFPadToolStripMenuItem_Click);
//
// toolStrip
//
this.toolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
+ this.toolStrip.ImageScalingSize = new System.Drawing.Size(24, 24);
this.toolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripNew,
this.toolStripOpen,
this.toolStripSave,
this.toolStripPrint,
this.toolStripPrintPreview,
- this.toolStripFind,
- this.toolStripCut,
- this.toolStripCopy,
- this.toolStripPaste,
this.toolStripUndo,
this.toolStripRedo,
- this.toolStripSeparator5,
this.toolStripCBoxFont,
this.toolStripCBoxFontSize,
this.toolStripBold,
@@ -406,151 +420,22 @@ private void InitializeComponent()
this.toolStripAlignCenter,
this.toolStripAlignRight,
this.toolStripBullet});
- this.toolStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
- this.toolStrip.Location = new System.Drawing.Point(0, 24);
+ this.toolStrip.Location = new System.Drawing.Point(0, 33);
this.toolStrip.Name = "toolStrip";
- this.toolStrip.Size = new System.Drawing.Size(792, 46);
+ this.toolStrip.Padding = new System.Windows.Forms.Padding(0);
+ this.toolStrip.Size = new System.Drawing.Size(978, 33);
+ this.toolStrip.Stretch = true;
this.toolStrip.TabIndex = 2;
this.toolStrip.Text = "toolStrip";
//
- // toolStripSeparator5
- //
- this.toolStripSeparator5.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
- this.toolStripSeparator5.Margin = new System.Windows.Forms.Padding(0, 0, 500, 0);
- this.toolStripSeparator5.Name = "toolStripSeparator5";
- this.toolStripSeparator5.Size = new System.Drawing.Size(6, 23);
- //
- // toolStripCBoxFont
- //
- this.toolStripCBoxFont.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.toolStripCBoxFont.DropDownWidth = 200;
- this.toolStripCBoxFont.MaxDropDownItems = 30;
- this.toolStripCBoxFont.Name = "toolStripCBoxFont";
- this.toolStripCBoxFont.Size = new System.Drawing.Size(180, 23);
- this.toolStripCBoxFont.SelectedIndexChanged += new System.EventHandler(this.toolStripCBoxFont_SelectedIndexChanged);
- //
- // toolStripCBoxFontSize
- //
- this.toolStripCBoxFontSize.AutoSize = false;
- this.toolStripCBoxFontSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.toolStripCBoxFontSize.Items.AddRange(new object[] {
- "8",
- "9",
- "10",
- "11",
- "12",
- "14",
- "16",
- "18",
- "20",
- "22",
- "24",
- "26",
- "28",
- "36",
- "48",
- "72"});
- this.toolStripCBoxFontSize.MaxDropDownItems = 16;
- this.toolStripCBoxFontSize.Name = "toolStripCBoxFontSize";
- this.toolStripCBoxFontSize.Size = new System.Drawing.Size(50, 23);
- this.toolStripCBoxFontSize.SelectedIndexChanged += new System.EventHandler(this.toolStripCBoxFontSize_SelectedIndexChanged);
- //
- // dialogOpen
- //
- this.dialogOpen.DefaultExt = "rtf";
- this.dialogOpen.Filter = "Rich Text Format (*.rtf)|*.rtf|Plain text File (*.txt)|*.txt|All Files|";
- //
- // dialogSave
- //
- this.dialogSave.DefaultExt = "rtf";
- this.dialogSave.Filter = "Rich Text Format (*.rtf)|*.rtf|Plain text File (*.txt)|*.txt|All Files|";
- //
- // tabControl
- //
- this.tabControl.AllowDrop = true;
- this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
- this.tabControl.ItemSize = new System.Drawing.Size(0, 18);
- this.tabControl.Location = new System.Drawing.Point(0, 70);
- this.tabControl.Name = "tabControl";
- this.tabControl.SelectedIndex = 0;
- this.tabControl.Size = new System.Drawing.Size(792, 476);
- this.tabControl.TabIndex = 0;
- this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl_SelectedIndexChanged);
- this.tabControl.MouseUp += new System.Windows.Forms.MouseEventHandler(this.tabControl_MouseUp);
- //
- // statusStrip
- //
- this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.statusStripInfoLabel});
- this.statusStrip.Location = new System.Drawing.Point(0, 546);
- this.statusStrip.Name = "statusStrip";
- this.statusStrip.Size = new System.Drawing.Size(792, 22);
- this.statusStrip.TabIndex = 3;
- //
- // statusStripInfoLabel
- //
- this.statusStripInfoLabel.Name = "statusStripInfoLabel";
- this.statusStripInfoLabel.Size = new System.Drawing.Size(0, 17);
- //
- // tabMenu
- //
- this.tabMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.contextMenuNew,
- this.contextMenuClose});
- this.tabMenu.Name = "tabMenu";
- this.tabMenu.Size = new System.Drawing.Size(127, 48);
- //
- // contextMenuNew
- //
- this.contextMenuNew.Name = "contextMenuNew";
- this.contextMenuNew.Size = new System.Drawing.Size(126, 22);
- this.contextMenuNew.Text = "&New Tab";
- this.contextMenuNew.Click += new System.EventHandler(this.contextMenuNew_Click);
- //
- // contextMenuClose
- //
- this.contextMenuClose.Name = "contextMenuClose";
- this.contextMenuClose.Size = new System.Drawing.Size(126, 22);
- this.contextMenuClose.Text = "&Close Tab";
- this.contextMenuClose.Click += new System.EventHandler(this.contextMenuClose_Click);
- //
- // dialogPrintPreview
- //
- this.dialogPrintPreview.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.dialogPrintPreview.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.dialogPrintPreview.ClientSize = new System.Drawing.Size(400, 300);
- this.dialogPrintPreview.Enabled = true;
- this.dialogPrintPreview.Icon = ((System.Drawing.Icon)(resources.GetObject("dialogPrintPreview.Icon")));
- this.dialogPrintPreview.Name = "dialogPrintPreview";
- this.dialogPrintPreview.ShowIcon = false;
- this.dialogPrintPreview.Visible = false;
- //
- // dialogPrint
- //
- this.dialogPrint.UseEXDialog = true;
- //
- // dialogPageSetup
- //
- this.dialogPageSetup.EnableMetric = true;
- this.dialogPageSetup.MinMargins = new System.Drawing.Printing.Margins(10, 10, 10, 10);
- //
- // dialogFont
- //
- this.dialogFont.FontMustExist = true;
- this.dialogFont.ShowColor = true;
- //
- // dialogColor
- //
- this.dialogColor.AnyColor = true;
- this.dialogColor.FullOpen = true;
- //
// toolStripNew
//
this.toolStripNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripNew.Image = global::RTFPad.icons.NewDocument;
this.toolStripNew.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripNew.Name = "toolStripNew";
- this.toolStripNew.Size = new System.Drawing.Size(23, 20);
+ this.toolStripNew.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripNew.Size = new System.Drawing.Size(34, 28);
this.toolStripNew.Text = "New Tab";
this.toolStripNew.Click += new System.EventHandler(this.toolStripNew_Click);
this.toolStripNew.MouseEnter += new System.EventHandler(this.toolStripNew_MouseEnter);
@@ -562,7 +447,8 @@ private void InitializeComponent()
this.toolStripOpen.Image = global::RTFPad.icons.OpenFolder;
this.toolStripOpen.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripOpen.Name = "toolStripOpen";
- this.toolStripOpen.Size = new System.Drawing.Size(23, 20);
+ this.toolStripOpen.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripOpen.Size = new System.Drawing.Size(34, 28);
this.toolStripOpen.Text = "Open File";
this.toolStripOpen.Click += new System.EventHandler(this.toolStripOpen_Click);
this.toolStripOpen.MouseEnter += new System.EventHandler(this.toolStripOpen_MouseEnter);
@@ -574,7 +460,8 @@ private void InitializeComponent()
this.toolStripSave.Image = global::RTFPad.icons.Save;
this.toolStripSave.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripSave.Name = "toolStripSave";
- this.toolStripSave.Size = new System.Drawing.Size(23, 20);
+ this.toolStripSave.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripSave.Size = new System.Drawing.Size(34, 28);
this.toolStripSave.Text = "Save Current Tab";
this.toolStripSave.Click += new System.EventHandler(this.toolStripSave_Click);
this.toolStripSave.MouseEnter += new System.EventHandler(this.toolStripSave_MouseEnter);
@@ -586,7 +473,8 @@ private void InitializeComponent()
this.toolStripPrint.Image = global::RTFPad.icons.Print;
this.toolStripPrint.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripPrint.Name = "toolStripPrint";
- this.toolStripPrint.Size = new System.Drawing.Size(23, 20);
+ this.toolStripPrint.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripPrint.Size = new System.Drawing.Size(34, 28);
this.toolStripPrint.Text = "Print Current Tab";
this.toolStripPrint.Click += new System.EventHandler(this.toolStripPrint_Click);
this.toolStripPrint.MouseEnter += new System.EventHandler(this.toolStripPrint_MouseEnter);
@@ -598,67 +486,21 @@ private void InitializeComponent()
this.toolStripPrintPreview.Image = global::RTFPad.icons.PrintPreview;
this.toolStripPrintPreview.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripPrintPreview.Name = "toolStripPrintPreview";
- this.toolStripPrintPreview.Size = new System.Drawing.Size(23, 20);
+ this.toolStripPrintPreview.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripPrintPreview.Size = new System.Drawing.Size(34, 28);
this.toolStripPrintPreview.Text = "Print Preview";
this.toolStripPrintPreview.Click += new System.EventHandler(this.toolStripPrintPreview_Click);
this.toolStripPrintPreview.MouseEnter += new System.EventHandler(this.toolStripPrintPreview_MouseEnter);
this.toolStripPrintPreview.MouseLeave += new System.EventHandler(this.toolStripPrintPreview_MouseLeave);
//
- // toolStripFind
- //
- this.toolStripFind.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
- this.toolStripFind.Image = global::RTFPad.icons.Find;
- this.toolStripFind.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.toolStripFind.Name = "toolStripFind";
- this.toolStripFind.Size = new System.Drawing.Size(23, 20);
- this.toolStripFind.Text = "Find";
- this.toolStripFind.Click += new System.EventHandler(this.toolStripFind_Click);
- this.toolStripFind.MouseEnter += new System.EventHandler(this.toolStripFind_MouseEnter);
- this.toolStripFind.MouseLeave += new System.EventHandler(this.toolStripFind_MouseLeave);
- //
- // toolStripCut
- //
- this.toolStripCut.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
- this.toolStripCut.Image = global::RTFPad.icons.Cut;
- this.toolStripCut.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.toolStripCut.Name = "toolStripCut";
- this.toolStripCut.Size = new System.Drawing.Size(23, 20);
- this.toolStripCut.Text = "Cut";
- this.toolStripCut.Click += new System.EventHandler(this.toolStripCut_Click);
- this.toolStripCut.MouseEnter += new System.EventHandler(this.toolStripCut_MouseEnter);
- this.toolStripCut.MouseLeave += new System.EventHandler(this.toolStripCut_MouseLeave);
- //
- // toolStripCopy
- //
- this.toolStripCopy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
- this.toolStripCopy.Image = global::RTFPad.icons.Copy;
- this.toolStripCopy.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.toolStripCopy.Name = "toolStripCopy";
- this.toolStripCopy.Size = new System.Drawing.Size(23, 20);
- this.toolStripCopy.Text = "Copy";
- this.toolStripCopy.Click += new System.EventHandler(this.toolStripCopy_Click);
- this.toolStripCopy.MouseEnter += new System.EventHandler(this.toolStripCopy_MouseEnter);
- this.toolStripCopy.MouseLeave += new System.EventHandler(this.toolStripCopy_MouseLeave);
- //
- // toolStripPaste
- //
- this.toolStripPaste.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
- this.toolStripPaste.Image = global::RTFPad.icons.Paste;
- this.toolStripPaste.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.toolStripPaste.Name = "toolStripPaste";
- this.toolStripPaste.Size = new System.Drawing.Size(23, 20);
- this.toolStripPaste.Text = "Paste";
- this.toolStripPaste.Click += new System.EventHandler(this.toolStripPaste_Click);
- this.toolStripPaste.MouseEnter += new System.EventHandler(this.toolStripPaste_MouseEnter);
- this.toolStripPaste.MouseLeave += new System.EventHandler(this.toolStripPaste_MouseLeave);
- //
// toolStripUndo
//
this.toolStripUndo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripUndo.Image = global::RTFPad.icons.Edit_Undo;
this.toolStripUndo.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripUndo.Name = "toolStripUndo";
- this.toolStripUndo.Size = new System.Drawing.Size(23, 20);
+ this.toolStripUndo.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripUndo.Size = new System.Drawing.Size(34, 28);
this.toolStripUndo.Text = "Undo";
this.toolStripUndo.Click += new System.EventHandler(this.toolStripUndo_Click);
this.toolStripUndo.MouseEnter += new System.EventHandler(this.toolStripUndo_MouseEnter);
@@ -670,19 +512,60 @@ private void InitializeComponent()
this.toolStripRedo.Image = global::RTFPad.icons.Edit_Redo;
this.toolStripRedo.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripRedo.Name = "toolStripRedo";
- this.toolStripRedo.Size = new System.Drawing.Size(23, 20);
+ this.toolStripRedo.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripRedo.Size = new System.Drawing.Size(34, 28);
this.toolStripRedo.Text = "Redo";
this.toolStripRedo.Click += new System.EventHandler(this.toolStripRedo_Click);
this.toolStripRedo.MouseEnter += new System.EventHandler(this.toolStripRedo_MouseEnter);
this.toolStripRedo.MouseLeave += new System.EventHandler(this.toolStripRedo_MouseLeave);
//
+ // toolStripCBoxFont
+ //
+ this.toolStripCBoxFont.AutoSize = false;
+ this.toolStripCBoxFont.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.toolStripCBoxFont.DropDownWidth = 200;
+ this.toolStripCBoxFont.Margin = new System.Windows.Forms.Padding(0);
+ this.toolStripCBoxFont.MaxDropDownItems = 30;
+ this.toolStripCBoxFont.Name = "toolStripCBoxFont";
+ this.toolStripCBoxFont.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripCBoxFont.Size = new System.Drawing.Size(200, 33);
+ this.toolStripCBoxFont.SelectedIndexChanged += new System.EventHandler(this.toolStripCBoxFont_SelectedIndexChanged);
+ //
+ // toolStripCBoxFontSize
+ //
+ this.toolStripCBoxFontSize.AutoSize = false;
+ this.toolStripCBoxFontSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.toolStripCBoxFontSize.Items.AddRange(new object[] {
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "14",
+ "16",
+ "18",
+ "20",
+ "22",
+ "24",
+ "26",
+ "28",
+ "36",
+ "48",
+ "72"});
+ this.toolStripCBoxFontSize.MaxDropDownItems = 16;
+ this.toolStripCBoxFontSize.Name = "toolStripCBoxFontSize";
+ this.toolStripCBoxFontSize.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripCBoxFontSize.Size = new System.Drawing.Size(73, 33);
+ this.toolStripCBoxFontSize.SelectedIndexChanged += new System.EventHandler(this.toolStripCBoxFontSize_SelectedIndexChanged);
+ //
// toolStripBold
//
this.toolStripBold.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripBold.Image = global::RTFPad.icons.Bold;
this.toolStripBold.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripBold.Name = "toolStripBold";
- this.toolStripBold.Size = new System.Drawing.Size(23, 20);
+ this.toolStripBold.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripBold.Size = new System.Drawing.Size(34, 28);
this.toolStripBold.Text = "Bold";
this.toolStripBold.Click += new System.EventHandler(this.toolStripBold_Click);
this.toolStripBold.MouseEnter += new System.EventHandler(this.toolStripBold_MouseEnter);
@@ -694,7 +577,8 @@ private void InitializeComponent()
this.toolStripItalic.Image = global::RTFPad.icons.Italic;
this.toolStripItalic.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripItalic.Name = "toolStripItalic";
- this.toolStripItalic.Size = new System.Drawing.Size(23, 20);
+ this.toolStripItalic.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripItalic.Size = new System.Drawing.Size(34, 28);
this.toolStripItalic.Text = "Italic";
this.toolStripItalic.Click += new System.EventHandler(this.toolStripItalic_Click);
this.toolStripItalic.MouseEnter += new System.EventHandler(this.toolStripItalic_MouseEnter);
@@ -706,8 +590,9 @@ private void InitializeComponent()
this.toolStripUnderline.Image = global::RTFPad.icons.Underline;
this.toolStripUnderline.ImageTransparentColor = System.Drawing.Color.White;
this.toolStripUnderline.Name = "toolStripUnderline";
- this.toolStripUnderline.Size = new System.Drawing.Size(23, 20);
- this.toolStripUnderline.Text = "toolStripButton3";
+ this.toolStripUnderline.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripUnderline.Size = new System.Drawing.Size(34, 28);
+ this.toolStripUnderline.Text = "Underline";
this.toolStripUnderline.Click += new System.EventHandler(this.toolStripUnderline_Click);
this.toolStripUnderline.MouseEnter += new System.EventHandler(this.toolStripUnderline_MouseEnter);
this.toolStripUnderline.MouseLeave += new System.EventHandler(this.toolStripUnderline_MouseLeave);
@@ -718,7 +603,8 @@ private void InitializeComponent()
this.toolStripStrikethrough.Image = global::RTFPad.icons.Strikeout;
this.toolStripStrikethrough.ImageTransparentColor = System.Drawing.Color.White;
this.toolStripStrikethrough.Name = "toolStripStrikethrough";
- this.toolStripStrikethrough.Size = new System.Drawing.Size(23, 20);
+ this.toolStripStrikethrough.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripStrikethrough.Size = new System.Drawing.Size(34, 28);
this.toolStripStrikethrough.Text = "Strikethrough";
this.toolStripStrikethrough.Click += new System.EventHandler(this.toolStripStrikethrough_Click);
this.toolStripStrikethrough.MouseEnter += new System.EventHandler(this.toolStripStrikethrough_MouseEnter);
@@ -730,9 +616,10 @@ private void InitializeComponent()
this.toolStripFontColor.Image = global::RTFPad.icons.Color;
this.toolStripFontColor.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripFontColor.Name = "toolStripFontColor";
- this.toolStripFontColor.Size = new System.Drawing.Size(29, 20);
+ this.toolStripFontColor.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripFontColor.Size = new System.Drawing.Size(42, 28);
this.toolStripFontColor.Text = "Color Picker";
- this.toolStripFontColor.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.toolStripFontColor_DropDownItemClicked);
+ this.toolStripFontColor.Click += new System.EventHandler(this.toolStripFontColor_Click);
this.toolStripFontColor.MouseEnter += new System.EventHandler(this.toolStripFontColor_MouseEnter);
this.toolStripFontColor.MouseLeave += new System.EventHandler(this.toolStripFontColor_MouseLeave);
//
@@ -742,7 +629,8 @@ private void InitializeComponent()
this.toolStripAlignLeft.Image = global::RTFPad.icons.Left;
this.toolStripAlignLeft.ImageTransparentColor = System.Drawing.Color.White;
this.toolStripAlignLeft.Name = "toolStripAlignLeft";
- this.toolStripAlignLeft.Size = new System.Drawing.Size(23, 20);
+ this.toolStripAlignLeft.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripAlignLeft.Size = new System.Drawing.Size(34, 28);
this.toolStripAlignLeft.Text = "Left Align";
this.toolStripAlignLeft.Click += new System.EventHandler(this.toolStripAlignLeft_Click);
this.toolStripAlignLeft.MouseEnter += new System.EventHandler(this.toolStripAlignLeft_MouseEnter);
@@ -754,7 +642,8 @@ private void InitializeComponent()
this.toolStripAlignCenter.Image = global::RTFPad.icons.Center;
this.toolStripAlignCenter.ImageTransparentColor = System.Drawing.Color.White;
this.toolStripAlignCenter.Name = "toolStripAlignCenter";
- this.toolStripAlignCenter.Size = new System.Drawing.Size(23, 20);
+ this.toolStripAlignCenter.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripAlignCenter.Size = new System.Drawing.Size(34, 28);
this.toolStripAlignCenter.Text = "Center";
this.toolStripAlignCenter.Click += new System.EventHandler(this.toolStripAlignCenter_Click);
this.toolStripAlignCenter.MouseEnter += new System.EventHandler(this.toolStripAlignCenter_MouseEnter);
@@ -766,7 +655,8 @@ private void InitializeComponent()
this.toolStripAlignRight.Image = global::RTFPad.icons.Right;
this.toolStripAlignRight.ImageTransparentColor = System.Drawing.Color.White;
this.toolStripAlignRight.Name = "toolStripAlignRight";
- this.toolStripAlignRight.Size = new System.Drawing.Size(23, 20);
+ this.toolStripAlignRight.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripAlignRight.Size = new System.Drawing.Size(34, 28);
this.toolStripAlignRight.Text = "Right Align";
this.toolStripAlignRight.Click += new System.EventHandler(this.toolStripAlignRight_Click);
this.toolStripAlignRight.MouseEnter += new System.EventHandler(this.toolStripAlignRight_MouseEnter);
@@ -777,28 +667,167 @@ private void InitializeComponent()
this.toolStripBullet.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripBullet.Image = global::RTFPad.icons.List_Bullets;
this.toolStripBullet.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripBullet.Margin = new System.Windows.Forms.Padding(0);
this.toolStripBullet.Name = "toolStripBullet";
- this.toolStripBullet.Size = new System.Drawing.Size(23, 20);
+ this.toolStripBullet.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
+ this.toolStripBullet.Size = new System.Drawing.Size(34, 33);
this.toolStripBullet.Text = "Bullets";
this.toolStripBullet.Click += new System.EventHandler(this.toolStripBullet_Click);
this.toolStripBullet.MouseEnter += new System.EventHandler(this.toolStripBullet_MouseEnter);
this.toolStripBullet.MouseLeave += new System.EventHandler(this.toolStripBullet_MouseLeave);
//
+ // dialogOpen
+ //
+ this.dialogOpen.DefaultExt = "rtf";
+ this.dialogOpen.Filter = "Rich Text Format (*.rtf)|*.rtf|Plain text File (*.txt)|*.txt|All Files|";
+ //
+ // dialogSave
+ //
+ this.dialogSave.DefaultExt = "rtf";
+ this.dialogSave.Filter = "Rich Text Format (*.rtf)|*.rtf|Plain text File (*.txt)|*.txt|All Files|";
+ //
+ // tabControl
+ //
+ this.tabControl.AllowDrop = true;
+ this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tabControl.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tabControl.ItemSize = new System.Drawing.Size(0, 18);
+ this.tabControl.Location = new System.Drawing.Point(0, 66);
+ this.tabControl.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.tabControl.Name = "tabControl";
+ this.tabControl.SelectedIndex = 0;
+ this.tabControl.Size = new System.Drawing.Size(978, 962);
+ this.tabControl.TabIndex = 0;
+ this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl_SelectedIndexChanged);
+ this.tabControl.MouseUp += new System.Windows.Forms.MouseEventHandler(this.tabControl_MouseUp);
+ //
+ // statusStrip
+ //
+ this.statusStrip.ImageScalingSize = new System.Drawing.Size(24, 24);
+ this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.statusStripInfoLabel});
+ this.statusStrip.Location = new System.Drawing.Point(0, 1028);
+ this.statusStrip.Name = "statusStrip";
+ this.statusStrip.Padding = new System.Windows.Forms.Padding(2, 0, 21, 0);
+ this.statusStrip.Size = new System.Drawing.Size(978, 22);
+ this.statusStrip.TabIndex = 3;
+ //
+ // statusStripInfoLabel
+ //
+ this.statusStripInfoLabel.Name = "statusStripInfoLabel";
+ this.statusStripInfoLabel.Size = new System.Drawing.Size(0, 15);
+ //
+ // tabMenu
+ //
+ this.tabMenu.ImageScalingSize = new System.Drawing.Size(24, 24);
+ this.tabMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.contextMenuNew,
+ this.contextMenuClose});
+ this.tabMenu.Name = "tabMenu";
+ this.tabMenu.Size = new System.Drawing.Size(160, 68);
+ //
+ // contextMenuNew
+ //
+ this.contextMenuNew.Name = "contextMenuNew";
+ this.contextMenuNew.Size = new System.Drawing.Size(159, 32);
+ this.contextMenuNew.Text = "&New Tab";
+ this.contextMenuNew.Click += new System.EventHandler(this.contextMenuNew_Click);
+ //
+ // contextMenuClose
+ //
+ this.contextMenuClose.Name = "contextMenuClose";
+ this.contextMenuClose.Size = new System.Drawing.Size(159, 32);
+ this.contextMenuClose.Text = "&Close Tab";
+ this.contextMenuClose.Click += new System.EventHandler(this.contextMenuClose_Click);
+ //
+ // dialogPrintPreview
+ //
+ this.dialogPrintPreview.AutoScrollMargin = new System.Drawing.Size(0, 0);
+ this.dialogPrintPreview.AutoScrollMinSize = new System.Drawing.Size(0, 0);
+ this.dialogPrintPreview.ClientSize = new System.Drawing.Size(400, 300);
+ this.dialogPrintPreview.Enabled = true;
+ this.dialogPrintPreview.Icon = ((System.Drawing.Icon)(resources.GetObject("dialogPrintPreview.Icon")));
+ this.dialogPrintPreview.Name = "dialogPrintPreview";
+ this.dialogPrintPreview.ShowIcon = false;
+ this.dialogPrintPreview.Visible = false;
+ //
+ // dialogPrint
+ //
+ this.dialogPrint.UseEXDialog = true;
+ //
+ // dialogPageSetup
+ //
+ this.dialogPageSetup.EnableMetric = true;
+ this.dialogPageSetup.MinMargins = new System.Drawing.Printing.Margins(10, 10, 10, 10);
+ //
+ // dialogFont
+ //
+ this.dialogFont.Color = System.Drawing.Color.FromArgb(((int)(((byte)(182)))), ((int)(((byte)(246)))), ((int)(((byte)(240)))));
+ this.dialogFont.FontMustExist = true;
+ this.dialogFont.ShowColor = true;
+ //
+ // dialogColor
+ //
+ this.dialogColor.AnyColor = true;
+ this.dialogColor.FullOpen = true;
+ //
+ // btnToBottom
+ //
+ this.btnToBottom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnToBottom.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
+ this.btnToBottom.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.btnToBottom.Image = ((System.Drawing.Image)(resources.GetObject("btnToBottom.Image")));
+ this.btnToBottom.Location = new System.Drawing.Point(905, 124);
+ this.btnToBottom.Margin = new System.Windows.Forms.Padding(0);
+ this.btnToBottom.Name = "btnToBottom";
+ this.btnToBottom.Size = new System.Drawing.Size(26, 24);
+ this.btnToBottom.TabIndex = 4;
+ this.btnToBottom.UseVisualStyleBackColor = true;
+ this.btnToBottom.Visible = false;
+ this.btnToBottom.Click += new System.EventHandler(this.btnToBottom_Click);
+ //
+ // btnEditDocument
+ //
+ this.btnEditDocument.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnEditDocument.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
+ this.btnEditDocument.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.btnEditDocument.Image = ((System.Drawing.Image)(resources.GetObject("btnEditDocument.Image")));
+ this.btnEditDocument.Location = new System.Drawing.Point(896, 124);
+ this.btnEditDocument.Margin = new System.Windows.Forms.Padding(0);
+ this.btnEditDocument.Name = "btnEditDocument";
+ this.btnEditDocument.Size = new System.Drawing.Size(36, 36);
+ this.btnEditDocument.TabIndex = 5;
+ this.btnEditDocument.UseVisualStyleBackColor = true;
+ this.btnEditDocument.Visible = false;
+ this.btnEditDocument.Click += new System.EventHandler(this.btnEditDocument_Click);
+ //
+ // timerAutoloadFile
+ //
+ this.timerAutoloadFile.Enabled = true;
+ this.timerAutoloadFile.Interval = 1000;
+ this.timerAutoloadFile.Tick += new System.EventHandler(this.timerAutoloadFile_Tick);
+ //
// rtfPadForm
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(792, 568);
+ this.ClientSize = new System.Drawing.Size(978, 1050);
+ this.Controls.Add(this.btnEditDocument);
+ this.Controls.Add(this.btnToBottom);
this.Controls.Add(this.tabControl);
this.Controls.Add(this.statusStrip);
this.Controls.Add(this.toolStrip);
this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Location = new System.Drawing.Point(300, 10);
this.MainMenuStrip = this.menuStrip1;
- this.MinimumSize = new System.Drawing.Size(800, 600);
+ this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.MinimumSize = new System.Drawing.Size(300, 100);
this.Name = "rtfPadForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.Text = "RTFPad";
- this.SizeChanged += new System.EventHandler(this.rtfPadForm_SizeChanged);
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.rtfPadForm_FormClosing);
+ this.Resize += new System.EventHandler(this.rtfPadForm_Resize);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.toolStrip.ResumeLayout(false);
@@ -841,12 +870,7 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripButton toolStripOpen;
private System.Windows.Forms.ToolStripButton toolStripPrint;
private System.Windows.Forms.ToolStripButton toolStripPrintPreview;
- private System.Windows.Forms.ToolStripButton toolStripFind;
- private System.Windows.Forms.ToolStripButton toolStripCut;
- private System.Windows.Forms.ToolStripButton toolStripCopy;
- private System.Windows.Forms.ToolStripButton toolStripPaste;
private System.Windows.Forms.ToolStripButton toolStripUndo;
- private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripComboBox toolStripCBoxFont;
private System.Windows.Forms.ToolStripComboBox toolStripCBoxFontSize;
private System.Windows.Forms.ToolStripDropDownButton toolStripFontColor;
@@ -882,6 +906,11 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem menuFormatColor;
private System.Windows.Forms.ColorDialog dialogColor;
private System.Windows.Forms.ToolStripButton toolStripBullet;
+ private System.Windows.Forms.Button btnToBottom;
+ private System.Windows.Forms.Button btnEditDocument;
+ private System.Windows.Forms.Timer timerAutoloadFile;
+ private System.Windows.Forms.ToolStripMenuItem menuRecent;
+ private System.Windows.Forms.ToolStripMenuItem menuRecentLoad;
}
}
diff --git a/rtfPadForm.cs b/rtfPadForm.cs
index bac72c9..5ee08c5 100644
--- a/rtfPadForm.cs
+++ b/rtfPadForm.cs
@@ -1,12 +1,10 @@
using System;
using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
using System.Drawing;
-using System.Text;
using System.Windows.Forms;
using System.IO;
using PrintPreviewRichTextBox;
+using System.Threading;
namespace RTFPad
{
@@ -20,44 +18,116 @@ public partial class rtfPadForm : Form
private Dictionary selectedColorInTab = new Dictionary();
private Dictionary textToFindInTab = new Dictionary();
private Dictionary matchCaseInTab = new Dictionary();
+ private Dictionary tabIsReadOnly = new Dictionary();
protected internal TabControl tabControl = new TabControl();
private FontFamily[] fontList;
private string[] colorList = System.Enum.GetNames(typeof(KnownColor));
+ private string punctList = ",. :;'\"?!\n\r";
+ private bool pastEOD;
+ private string recentlyEdited = "";
+ private string strExeFilePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
+ private string recentEditPath = @"recentEdits.txt";
+ private string autoLoadFile = @"autoload.txt";
+ private string MRUhistoryFile = @"mruHistory.txt";
#endregion
#region constructor
- public rtfPadForm()
+ public rtfPadForm(string startdoc)
{
InitializeComponent();
- this.fontList = FontFamily.Families;
- foreach (FontFamily font in fontList)
+ bool ok;
+ Mutex ownerMutex;
+ ownerMutex = new System.Threading.Mutex(true, "RTFPad", out ok);
+ if (!ok)
{
- this.toolStripCBoxFont.Items.Add(font.Name);
- }
- foreach (string color in colorList)
- {
- Color boja = Color.FromKnownColor((KnownColor)System.Enum.Parse(typeof(KnownColor), color));
- if (boja.IsSystemColor == false && boja.Name != Color.Transparent.Name)
- this.toolStripFontColor.DropDownItems.Add(color);
-
+ string chkFileName = strExeFilePath.Replace(".exe", "_") + autoLoadFile;
+ File.AppendAllText(chkFileName, startdoc + "\n\r");
+ this.Close();
+ Application.Exit();
+ return;
}
+ GC.KeepAlive(ownerMutex);
+ SetupTheForm();
+ LoadFileFromParm(startdoc);
+ }
+
+ private void LoadFileFromParm(string startdoc)
+ {
+ int LastSlash = startdoc.LastIndexOf('\\');
+ string FileToOpen = startdoc.Substring(LastSlash + 1);
+ try { OpenFileNamed(this, null, FileToOpen, startdoc); }
+ catch (Exception exception) { showStdErr(exception); }
+ }
+
+ public rtfPadForm()
+ {
+ InitializeComponent();
+ SetupTheForm();
+ }
+
+ private void SetupTheForm()
+ {
+ SetupTheFonts();
foreach (ToolStripDropDownItem entry in this.toolStripFontColor.DropDownItems)
{
entry.BackColor = Color.FromKnownColor((KnownColor)System.Enum.Parse(typeof(KnownColor), entry.Text));
Color c = entry.BackColor;
int Luminance = (int)(0.2126 * c.R + 0.7152 * c.G + 0.0722 * c.B);
if (Luminance > 50)
- {
- entry.ForeColor = Color.Black;
- }
+ { entry.ForeColor = Color.Black; }
else
- {
- entry.ForeColor = Color.White;
- }
-
+ { entry.ForeColor = Color.White; }
}
+ try { recentlyEdited = File.ReadAllText(strExeFilePath.Replace(".exe", "_") + recentEditPath); }
+ catch { }
this.newTab();
this.rtb_SelectionChanged(this, new EventArgs());
+ this.toolStripCBoxFont.Text = "Calibri";
+ this.toolStripCBoxFontSize.Text = "20";
+ this.Height = 750;
+ SetupMRUlist();
+ }
+
+ private void SetupMRUlist()
+ {
+ this.menuRecent.DropDownItems.Clear();
+ int NumOfMRU = 0;
+ string MRUhistoryFileName = strExeFilePath.Replace(".exe", "_") + MRUhistoryFile;
+ if (!File.Exists(MRUhistoryFileName)) { return; }
+ string[] MRUFileList = File.ReadAllLines(MRUhistoryFileName);
+ int listCount = MRUFileList.Length;
+ for (int i = listCount - 1; i >= 0; i--)
+ {
+ if (NumOfMRU > 5) { return; }
+ if (MRUFileList[i] == "") { continue; }
+ string[] MRUcomponents = MRUFileList[i].Split(new char[] { ';' });
+ bool hadMatch = false;
+ foreach(ToolStripItem aRecentFile in this.menuRecent.DropDownItems)
+ {
+ if (aRecentFile.Text == MRUcomponents[0])
+ { hadMatch = true; break; }
+ }
+
+ if (hadMatch) { continue; }
+ ToolStripMenuItem newMRUitem = new ToolStripMenuItem();
+ newMRUitem.Text = MRUcomponents[0];
+ newMRUitem.Tag = MRUcomponents[1];
+ newMRUitem.Click += new System.EventHandler(this.menuRecentLoad_Click);
+ this.menuRecent.DropDownItems.Add(newMRUitem);
+ NumOfMRU++;
+ }
+ }
+
+ private void SetupTheFonts()
+ {
+ this.fontList = FontFamily.Families;
+ object[] fontObjects = new object[fontList.Length];
+ int fontIdx = 0;
+ foreach (FontFamily font in fontList)
+ {
+ fontObjects[fontIdx++] = font.Name;
+ }
+ this.toolStripCBoxFont.Items.AddRange(fontObjects);
}
#endregion
@@ -66,29 +136,6 @@ public rtfPadForm()
/* File Exit */
private void menuFileExit_Click(object sender, EventArgs e)
{
- if (this.tabControl.TabCount <= 0) return;
-
- for (int i = this.tabControl.TabCount; i >= 0; --i)
- {
- this.tabControl.SelectedIndex = i;
- RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
-
- if (rtb.Text != (string)rtb.Tag)
- {
-
- DialogResult result = MessageBox.Show("Do you wish to save changes to " + this.tabControl.SelectedTab.Text + " ?",
- "RTFPad", MessageBoxButtons.YesNoCancel);
-
- if (result == DialogResult.Yes)
- {
- menuFileSave_Click(sender, e);
- }
- else if (result == DialogResult.Cancel)
- {
- return;
- }
- }
- }
this.Close();
}
@@ -103,70 +150,114 @@ private void menuFileOpen_Click(object sender, EventArgs e)
{
if (this.dialogOpen.ShowDialog() == DialogResult.OK)
{
- bool exists = false;
- for (int i = 0; i < this.tabControl.TabCount; i++)
+ string FileToOpen = this.dialogOpen.SafeFileName;
+ string wholeFileName = this.dialogOpen.FileName;
+ try { OpenFileNamed(sender, e, FileToOpen, wholeFileName); }
+ catch (Exception exception) { showStdErr(exception); }
+ }
+ }
+
+ private void OpenFileNamed(object sender, EventArgs e, string FileToOpen, string wholeFileName)
+ {
+ bool exists = false;
+ for (int i = 0; i < this.tabControl.TabCount; i++)
+ {
+ if (this.tabControl.TabPages[i].Text == FileToOpen)
{
- if (this.tabControl.TabPages[i].Text == this.dialogOpen.SafeFileName)
- {
- exists = true;
- this.tabControl.SelectedIndex = i;
- }
+ exists = true;
+ this.tabControl.SelectedIndex = i;
}
+ }
+
+ if (exists) { return; }
- if (exists == false)
+ if (this.tabControl.TabCount < MAX_TABS) this.newTab();
+ else
+ {
+ DialogResult mBoxResult = MessageBox.Show("Max tab count reached! Do you wish to open the file in the current tab?",
+ "RTFPad", MessageBoxButtons.YesNoCancel);
+ switch (mBoxResult)
{
- if (this.tabControl.TabCount < MAX_TABS) menuFileNew_Click(sender, e);
- else
- {
- DialogResult mBoxResult = MessageBox.Show("Max tab count reached! Do you wish to open the file in the current tab?",
- "RTFPad", MessageBoxButtons.YesNoCancel);
- switch (mBoxResult)
- {
- case DialogResult.Yes: this.closeTab();
- this.newTab();
- break;
- case DialogResult.No: MessageBox.Show("Close a tab", "RTFPad", MessageBoxButtons.OK);
- return;
- case DialogResult.Cancel: return;
- }
+ case DialogResult.Yes:
+ this.closeTab();
+ this.newTab();
+ break;
+ case DialogResult.No:
+ MessageBox.Show("Close a tab", "RTFPad", MessageBoxButtons.OK);
+ return;
+ case DialogResult.Cancel: return;
+ }
- }
- RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
-
- StreamReader value;
- openedFileInTab.TryGetValue(this.tabControl.SelectedTab.Text, out value);
- if (value != null)
- this.openedFileInTab[this.tabControl.SelectedTab.Text].Close();
-
- this.fileTypeInTab.Remove(this.tabControl.SelectedTab.Text);
- this.fileNameInTab.Remove(this.tabControl.SelectedTab.Text);
- this.openedFileInTab.Remove(this.tabControl.SelectedTab.Text);
- this.selectedColorInTab.Remove(this.tabControl.SelectedTab.Text);
- this.textToFindInTab.Remove(this.tabControl.SelectedTab.Text);
- this.matchCaseInTab.Remove(this.tabControl.SelectedTab.Text);
-
- this.tabControl.SelectedTab.Text = this.dialogOpen.SafeFileName;
- int fileType = 0;
- if (this.dialogOpen.FilterIndex == 1)
- {
- rtb.LoadFile(this.dialogOpen.FileName, RichTextBoxStreamType.RichText);
- fileType = 1;
- }
- else
- {
- rtb.LoadFile(this.dialogOpen.FileName, RichTextBoxStreamType.PlainText);
- fileType = 2;
- }
- rtb.Tag = rtb.Text;
- this.openedFileInTab[this.tabControl.SelectedTab.Text] = new StreamReader(this.dialogOpen.FileName);
- this.tabControl.SelectedTab.Text = this.dialogOpen.SafeFileName;
- this.fileNameInTab[this.tabControl.SelectedTab.Text] = this.dialogOpen.FileName;
- this.Text = "RTFPad - " + this.tabControl.SelectedTab.Text;
- this.fileTypeInTab[this.tabControl.SelectedTab.Text] = fileType;
- this.rtb_SelectionChanged(sender, e);
- this.tabControl_SelectedIndexChanged(sender, e);
+ }
+
+ RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
+
+ StreamReader value;
+ openedFileInTab.TryGetValue(this.tabControl.SelectedTab.Text, out value);
+ if (value != null)
+ this.openedFileInTab[this.tabControl.SelectedTab.Text].Close();
+
+ ClearTabInfo(this.tabControl.SelectedTab.Text);
+
+ this.tabControl.SelectedTab.Text = FileToOpen;
+ int fileType = 0;
+ string exten = wholeFileName.Substring(wholeFileName.LastIndexOf('.') + 1);
+ try
+ {
+ if (exten.ToLower() == "rtf")
+ {
+ rtb.LoadFile(wholeFileName, RichTextBoxStreamType.RichText);
+ fileType = 1;
}
+ else
+ {
+ rtb.LoadFile(wholeFileName, RichTextBoxStreamType.PlainText);
+ fileType = 2;
+ }
+ }
+ catch (Exception loadEx)
+ {
+ int badTab = this.tabControl.SelectedIndex;
+ this.tabControl.SelectedIndex--;
+ this.tabControl.TabPages.RemoveAt(badTab);
+ throw loadEx;
}
+ rtb.Tag = rtb.Text;
+ this.openedFileInTab[this.tabControl.SelectedTab.Text] = new StreamReader(wholeFileName);
+ this.tabControl.SelectedTab.Text = FileToOpen;
+ this.fileNameInTab[this.tabControl.SelectedTab.Text] = wholeFileName;
+ this.Text = "RTFPad - " + this.tabControl.SelectedTab.Text;
+ this.fileTypeInTab[this.tabControl.SelectedTab.Text] = fileType;
+ this.rtb_SelectionChanged(sender, e);
+ this.tabControl_SelectedIndexChanged(sender, e);
+ if (!recentlyEdited.Contains(wholeFileName))
+ {
+ btnEditDocument.Visible = true;
+ rtb.ReadOnly = true;
+ this.tabIsReadOnly[this.tabControl.SelectedTab.Text] = true;
+ this.tabControl.SelectedTab.BackColor = Color.Blue;
+ this.menuFileSave.Enabled = false;
+ this.menuFileSaveAs.Enabled = false;
+ this.toolStripSave.Enabled = false;
+ }
+ else
+ {
+ string backupFileName = wholeFileName.Substring(0, wholeFileName.LastIndexOf('.')) + ".bak";
+ File.Copy(wholeFileName, backupFileName, true);
+ this.tabIsReadOnly[this.tabControl.SelectedTab.Text] = false;
+ }
+ if (rtb.TextLength > 1000) { btnToBottom.Visible = true; }
+ }
+
+ private void ClearTabInfo(string tabName)
+ {
+ this.fileTypeInTab.Remove(tabName);
+ this.fileNameInTab.Remove(tabName);
+ this.openedFileInTab.Remove(tabName);
+ this.selectedColorInTab.Remove(tabName);
+ this.textToFindInTab.Remove(tabName);
+ this.matchCaseInTab.Remove(tabName);
+ this.tabIsReadOnly.Remove(tabName);
}
/* File Save As */
@@ -180,12 +271,7 @@ private void menuFileSaveAs_Click(object sender, EventArgs e)
if (value != null)
this.openedFileInTab[this.tabControl.SelectedTab.Text].Close();
- this.fileTypeInTab.Remove(this.tabControl.SelectedTab.Text);
- this.fileNameInTab.Remove(this.tabControl.SelectedTab.Text);
- this.openedFileInTab.Remove(this.tabControl.SelectedTab.Text);
- this.selectedColorInTab.Remove(this.tabControl.SelectedTab.Text);
- this.textToFindInTab.Remove(this.tabControl.SelectedTab.Text);
- this.matchCaseInTab.Remove(this.tabControl.SelectedTab.Text);
+ ClearTabInfo(this.tabControl.SelectedTab.Text);
this.tabControl.SelectedTab.Text = this.dialogSave.FileName.Substring(this.dialogSave.FileName.LastIndexOf('\\') + 1);
@@ -214,6 +300,7 @@ private void menuFileSaveAs_Click(object sender, EventArgs e)
private void menuFileSave_Click(object sender, EventArgs e)
{
RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
+ rtb.Tag = rtb.Text;
string currentTabKey = this.tabControl.SelectedTab.Text;
StreamReader value;
this.openedFileInTab.TryGetValue(currentTabKey, out value);
@@ -391,11 +478,13 @@ private void menuViewWordWrap_Click(object sender, EventArgs e)
{
rtb.WordWrap = false;
menuViewWordWrap.Checked = false;
+ rtb.ScrollBars = RichTextBoxScrollBars.ForcedBoth;
}
else
{
rtb.WordWrap = true;
menuViewWordWrap.Checked = true;
+ rtb.ScrollBars = RichTextBoxScrollBars.ForcedVertical;
}
}
#endregion
@@ -540,23 +629,16 @@ private void toolStripCBoxFontSize_SelectedIndexChanged(object sender, EventArgs
}
/* Tool Strip Color */
- private void toolStripFontColor_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
+ private void toolStripFontColor_Click(object sender, EventArgs e)
{
- if (this.tabControl.TabCount <= 0) return;
-
- RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
- rtb.SelectionColor = Color.FromKnownColor((KnownColor)System.Enum.Parse(typeof(KnownColor), e.ClickedItem.Text));
-
- if (!this.selectedColorInTab.ContainsKey(this.tabControl.SelectedTab.Text))
- this.selectedColorInTab.Add(this.tabControl.SelectedTab.Text, default(int));
+ ColorDialog MyDialog = new ColorDialog();
+ MyDialog.Color = Color.Black;
- int index;
- this.selectedColorInTab.TryGetValue(this.tabControl.SelectedTab.Text, out index);
-
- ((ToolStripMenuItem)this.toolStripFontColor.DropDownItems[index]).Checked = false;
- this.selectedColorInTab[this.tabControl.SelectedTab.Text] = this.toolStripFontColor.
- DropDownItems.IndexOf((ToolStripMenuItem)e.ClickedItem);
- ((ToolStripMenuItem)e.ClickedItem).Checked = true;
+ if (MyDialog.ShowDialog() == DialogResult.OK)
+ {
+ RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
+ rtb.SelectionColor = MyDialog.Color;
+ }
}
/* Tool Strip Undo */
@@ -789,12 +871,14 @@ private void newTab()
rtb.Dock = DockStyle.Fill;
rtb.Multiline = true;
rtb.WordWrap = true;
- rtb.ScrollBars = RichTextBoxScrollBars.Both;
+ //rtb.ScrollBars = RichTextBoxScrollBars.Both;
+ rtb.ScrollBars = RichTextBoxScrollBars.ForcedVertical;
rtb.EnableAutoDragDrop = true;
rtb.AcceptsTab = true;
rtb.AutoWordSelection = true;
rtb.DetectUrls = true;
rtb.HideSelection = false;
+ rtb.ShowSelectionMargin = true;
rtb.Tag = rtb.Text;
rtb.SelectionChanged += new EventHandler(rtb_SelectionChanged);
@@ -802,6 +886,7 @@ private void newTab()
rtb.KeyDown += new KeyEventHandler(rtb_KeyDown);
this.Text = "RTFPad - " + this.tabControl.SelectedTab.Text;
fileTypeInTab[this.tabControl.SelectedTab.Text] = 1;
+ tabIsReadOnly[this.tabControl.SelectedTab.Text] = false;
changeUIState_CloseCurrentTabButton();
tabControl_SelectedIndexChanged(this, new EventArgs());
this.ActiveControl = rtb;
@@ -817,26 +902,60 @@ private void newTab()
*/
private void closeTab()
{
- if (this.tabControl.TabCount <= 0)
+ int rtfTabCount = this.tabControl.TabCount;
+ int tabFormerLoc = this.tabControl.SelectedIndex;
+ if (rtfTabCount <= 0)
{
MessageBox.Show("There are no tabs", "Cannot Close Tab", MessageBoxButtons.OK);
return;
}
+
string tabKey = this.tabControl.SelectedTab.Text;
- this.fileNameInTab.Remove(tabKey);
- this.fileTypeInTab.Remove(tabKey);
- this.openedFileInTab.Remove(tabKey);
- this.selectedColorInTab.Remove(tabKey);
- this.textToFindInTab.Remove(tabKey);
- this.matchCaseInTab.Remove(tabKey);
- //this.tabControl.TabPages.RemoveByKey("tab " + this.tabControl.SelectedIndex.ToString());
+
+ // add to MRU list and history
+ if (this.tabControl.SelectedTab.Controls[0].Text != "")
+ {
+ ToolStripMenuItem newMRUitem = new ToolStripMenuItem();
+ newMRUitem.Text = tabKey;
+ newMRUitem.Tag = this.fileNameInTab[tabKey];
+ newMRUitem.Click += new System.EventHandler(this.menuRecentLoad_Click);
+ this.menuRecent.DropDownItems.Insert(0, newMRUitem);
+ string MRUhistoryFileName = strExeFilePath.Replace(".exe", "_") + MRUhistoryFile;
+ File.AppendAllText(MRUhistoryFileName, tabKey + ";" + this.fileNameInTab[tabKey] + "\n\r");
+ }
+
+ // remove tab info and tab
+ ClearTabInfo(tabKey);
this.tabControl.TabPages.RemoveAt(this.tabControl.SelectedIndex);
+
+ // reposition to last tab, or one to the right of former tab
+ int newTabIdx = tabFormerLoc;
+ if (tabFormerLoc > rtfTabCount - 2) { newTabIdx = rtfTabCount - 2; }
+ this.tabControl.SelectedIndex = newTabIdx;
}
/* Function which finds the first occurence of textToFind in the textbox
* Used by: Find, Find Next, Replace, Replace All
*/
+
protected internal bool findText(string textToFind, bool searchDirectionDown, bool matchCase)
+ {
+ return findTextWhole(textToFind, searchDirectionDown, matchCase, false);
+ }
+
+ protected internal bool findTextWhole(string textToFind, bool searchDirectionDown, bool matchCase, bool wholeWord)
+ { if (!wholeWord)
+ { return BasicFind(textToFind, searchDirectionDown, matchCase, wholeWord); }
+ pastEOD = false;
+ while (!pastEOD)
+ {
+ bool findResult = BasicFind(textToFind, searchDirectionDown, matchCase, wholeWord);
+ if (findResult) {return true;}
+ }
+ return false;
+ }
+
+ private bool BasicFind(string textToFind, bool searchDirectionDown, bool matchCase, bool wholeWord)
{
RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
StringComparison comparator = matchCase ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;
@@ -859,7 +978,29 @@ protected internal bool findText(string textToFind, bool searchDirectionDown, bo
{
startIndex = rtb.Text.LastIndexOf(textToFind, rtb.SelectionStart, comparator);
}
- if (startIndex == -1 || startIndex >= rtb.Text.Length) return false;
+ if (startIndex == -1 || startIndex >= rtb.Text.Length)
+ {
+ pastEOD = true;
+ return false;
+ }
+ if (wholeWord)
+ {
+ string checkpunct;
+ try { checkpunct = rtb.Text.Substring(startIndex - 1, 1); }
+ catch { checkpunct = " "; }
+ if (!punctList.Contains(checkpunct))
+ {
+ rtb.Select(startIndex, length);
+ return false;
+ }
+ try { checkpunct = rtb.Text.Substring(startIndex + length, 1); }
+ catch { checkpunct = " "; }
+ if (!punctList.Contains(checkpunct))
+ {
+ rtb.Select(startIndex, length);
+ return false;
+ }
+ }
rtb.Select(startIndex, length);
rtb.ScrollToCaret();
return true;
@@ -868,12 +1009,12 @@ protected internal bool findText(string textToFind, bool searchDirectionDown, bo
/* Function which replaces the first occurence of textToReplace with replaceWith
* Used by: Replace, Replace All
*/
- protected internal bool replaceText(string textToReplace, string replaceWith, bool matchCase)
+ protected internal bool replaceText(string textToReplace, string replaceWith, bool matchCase, bool matchword)
{
RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
if (rtb.SelectedText.Length == 0 || rtb.SelectedText.ToLower() != textToReplace.ToLower())
{
- return findText(textToReplace, true, matchCase);
+ return findTextWhole(textToReplace, true, matchCase, matchword);
}
else
{
@@ -885,14 +1026,14 @@ protected internal bool replaceText(string textToReplace, string replaceWith, bo
/* Replaces all matching text with another
* Used by: Replace All
*/
- protected internal void replaceAllInText(string textToReplace, string replaceWith, bool matchCase)
+ protected internal void replaceAllInText(string textToReplace, string replaceWith, bool matchCase, bool matchWord)
{
RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
rtb.SelectionStart = 0;
rtb.SelectionLength = 0;
- while (this.findText(textToReplace, true, matchCase))
+ while (this.findTextWhole(textToReplace, true, matchCase, matchWord))
{
- replaceText(textToReplace, replaceWith, matchCase);
+ replaceText(textToReplace, replaceWith, matchCase, matchWord);
}
}
@@ -927,7 +1068,7 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
/* Blocks Ctrl + i in tab to act as the tab key
- *
+ * In ReadOnly, a space sends a page down
*/
private void rtb_KeyDown(object sender, KeyEventArgs e)
{
@@ -937,6 +1078,29 @@ private void rtb_KeyDown(object sender, KeyEventArgs e)
{
e.SuppressKeyPress = true;
}
+ if (rtb.ReadOnly && e.KeyCode == Keys.Space)
+ {
+ SendKeys.Send("{PGDN}");
+ e.SuppressKeyPress = true;
+ }
+ }
+
+
+ private void showStdErr(Exception exception)
+ {
+ MessageBox.Show("Error: " + exception.ToString(), "RTFPad");
+ }
+
+ private void timerAutoloadFile_Tick(object sender, EventArgs e)
+ {
+ string chkFileName = strExeFilePath.Replace(".exe", "_") + autoLoadFile;
+ if (!File.Exists(chkFileName)) { return; }
+ string[] loadFileList = File.ReadAllLines(chkFileName);
+ File.Delete(chkFileName);
+ foreach (string loadFile in loadFileList)
+ {
+ if (loadFile.Length > 2) { LoadFileFromParm(loadFile); }
+ }
}
#endregion
@@ -948,7 +1112,7 @@ private void rtb_TextChanged(Object sender, EventArgs e)
if (rtb.TextLength == 0)
{
this.menuEditFind.Enabled = false;
- this.toolStripFind.Enabled = false;
+ //this.toolStripFind.Enabled = false;
this.menuEditFindNext.Enabled = false;
this.menuEditReplace.Enabled = false;
this.menuEditSelectAll.Enabled = false;
@@ -957,7 +1121,7 @@ private void rtb_TextChanged(Object sender, EventArgs e)
else
{
this.menuEditFind.Enabled = true;
- this.toolStripFind.Enabled = true;
+ //this.toolStripFind.Enabled = true;
this.menuEditFindNext.Enabled = true;
this.menuEditReplace.Enabled = true;
this.menuEditSelectAll.Enabled = true;
@@ -995,7 +1159,7 @@ private void rtb_SelectionChanged(Object sender, EventArgs e)
if (rtb.TextLength == 0)
{
this.menuEditFind.Enabled = false;
- this.toolStripFind.Enabled = false;
+ //this.toolStripFind.Enabled = false;
this.menuEditFindNext.Enabled = false;
this.menuEditReplace.Enabled = false;
this.menuEditSelectAll.Enabled = false;
@@ -1004,7 +1168,7 @@ private void rtb_SelectionChanged(Object sender, EventArgs e)
else
{
this.menuEditFind.Enabled = true;
- this.toolStripFind.Enabled = true;
+ //this.toolStripFind.Enabled = true;
this.menuEditFindNext.Enabled = true;
this.menuEditReplace.Enabled = true;
this.menuEditSelectAll.Enabled = true;
@@ -1036,17 +1200,17 @@ private void rtb_SelectionChanged(Object sender, EventArgs e)
{
this.menuEditClear.Enabled = false;
this.menuEditCut.Enabled = false;
- this.toolStripCut.Enabled = false;
+ //this.toolStripCut.Enabled = false;
this.menuEditCopy.Enabled = false;
- this.toolStripCopy.Enabled = false;
+ //this.toolStripCopy.Enabled = false;
}
else
{
this.menuEditClear.Enabled = true;
this.menuEditCut.Enabled = true;
- this.toolStripCut.Enabled = true;
+ //this.toolStripCut.Enabled = true;
this.menuEditCopy.Enabled = true;
- this.toolStripCopy.Enabled = true;
+ //this.toolStripCopy.Enabled = true;
}
if (rtb.SelectionFont.Bold) this.toolStripBold.Checked = true;
else this.toolStripBold.Checked = false;
@@ -1085,7 +1249,7 @@ private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
this.Text = "RTFPad - " + this.tabControl.SelectedTab.Text;
this.rtb_SelectionChanged(sender, e);
this.menuEditPaste.Enabled = true;
- this.toolStripPaste.Enabled = true;
+ //this.toolStripPaste.Enabled = true;
this.menuFilePrint.Enabled = true;
this.toolStripPrint.Enabled = true;
this.menuFilePrintPreview.Enabled = true;
@@ -1100,7 +1264,7 @@ private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
if (this.fileTypeInTab[this.tabControl.SelectedTab.Text] == 2)
{
this.toolStripCBoxFont.Visible = false;
- this.toolStripCBoxFontSize.Visible = false;
+ //this.toolStripCBoxFontSize.Visible = false;
this.toolStripFontColor.Visible = false;
this.toolStripBold.Visible = false;
this.toolStripItalic.Visible = false;
@@ -1121,7 +1285,7 @@ private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
else
{
this.menuEditFind.Enabled = false;
- this.toolStripFind.Enabled = false;
+ //this.toolStripFind.Enabled = false;
this.menuEditFindNext.Enabled = false;
this.menuEditReplace.Enabled = false;
this.menuEditSelectAll.Enabled = false;
@@ -1131,11 +1295,11 @@ private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
this.toolStripRedo.Enabled = false;
this.menuEditClear.Enabled = false;
this.menuEditCut.Enabled = false;
- this.toolStripCut.Enabled = false;
+ //this.toolStripCut.Enabled = false;
this.menuEditCopy.Enabled = false;
- this.toolStripCopy.Enabled = false;
+ //this.toolStripCopy.Enabled = false;
this.menuEditPaste.Enabled = false;
- this.toolStripPaste.Enabled = false;
+ //this.toolStripPaste.Enabled = false;
this.menuFilePrint.Enabled = false;
this.toolStripPrint.Enabled = false;
this.menuFilePrintPreview.Enabled = false;
@@ -1146,6 +1310,14 @@ private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
this.toolStripAlignCenter.Checked = false;
this.toolStripAlignRight.Checked = false;
}
+
+ try
+ {
+ if (this.tabIsReadOnly[this.tabControl.SelectedTab.Text] == true)
+ { btnEditDocument.Visible = true; }
+ else { btnEditDocument.Visible = false; }
+ }
+ catch { }
}
/* Checks if the mouse is over the tab header
@@ -1168,18 +1340,70 @@ private void tabControl_MouseUp(object sender, MouseEventArgs e)
}
}
- /* Event which watches for the change in form size
- * Used for styling the Tool Strip so it's displayed in two rows when possible
- */
- private void rtfPadForm_SizeChanged(object sender, EventArgs e)
+ private void rtfPadForm_Resize(object sender, EventArgs e)
{
- if (this.WindowState == FormWindowState.Maximized || this.Size.Width > 900 )
- {
- toolStripSeparator5.Margin = new System.Windows.Forms.Padding(0, 0, 0, 0);
- }
- else
+ this.toolStrip.ImageScalingSize = new Size(16, 16);
+ }
+
+ private void btnToBottom_Click(object sender, EventArgs e)
+ {
+ RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
+ rtb.BringToFront();
+ rtb.Focus();
+ SendKeys.Send("^({END})");
+ btnToBottom.Visible = false;
+ }
+
+ private void btnEditDocument_Click(object sender, EventArgs e)
+ {
+ btnEditDocument.Visible = false;
+ string currentTabKey = this.tabControl.SelectedTab.Text;
+ string wholeFileName = this.fileNameInTab[currentTabKey];
+ recentlyEdited = wholeFileName + ";" + recentlyEdited;
+ RichTextBox rtb = (RichTextBox)this.tabControl.SelectedTab.Controls[0];
+ rtb.ReadOnly = false;
+ this.tabIsReadOnly[this.tabControl.SelectedTab.Text] = false;
+ this.menuFileSave.Enabled = true;
+ this.menuFileSaveAs.Enabled = true;
+ this.toolStripSave.Enabled = true;
+ this.tabControl.SelectedTab.BackColor = SystemColors.Control;
+ string backupFileName = wholeFileName.Substring(0, wholeFileName.LastIndexOf('.')) + ".bak";
+ File.Copy(wholeFileName, backupFileName, true);
+ }
+
+ private void rtfPadForm_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (this.tabControl.TabCount <= 0) return;
+
+ int maxEdLen = recentlyEdited.Length;
+ if (maxEdLen > 500) { maxEdLen = 500; }
+ File.WriteAllText(strExeFilePath.Replace(".exe", "_") + recentEditPath,
+ recentlyEdited.Substring(0, maxEdLen));
+
+ string MRUhistoryFileName = strExeFilePath.Replace(".exe", "_") + MRUhistoryFile;
+
+ for (int i = this.tabControl.TabCount; i > 0; --i)
{
- toolStripSeparator5.Margin = new System.Windows.Forms.Padding(0, 0, 500, 0);
+ this.tabControl.SelectedIndex = i;
+ string tabKey = this.tabControl.SelectedTab.Text;
+ File.AppendAllText(MRUhistoryFileName, tabKey + ";" + this.fileNameInTab[tabKey] + "\n\r");
+
+ RichTextBox rtb = (RichTextBox)this.tabControl.TabPages[i - 1].Controls[0];
+ if (rtb.Text != rtb.Tag.ToString())
+ {
+ DialogResult result = MessageBox.Show("Do you wish to save changes to " + this.tabControl.SelectedTab.Text + " ?",
+ "RTFPad", MessageBoxButtons.YesNoCancel);
+
+ if (result == DialogResult.Yes)
+ {
+ menuFileSave_Click(sender, e);
+ }
+ else if (result == DialogResult.Cancel)
+ {
+ e.Cancel = true;
+ return;
+ }
+ }
}
}
#endregion
@@ -1386,5 +1610,13 @@ private void toolStripBullet_MouseLeave(object sender, EventArgs e)
this.statusStripInfoLabel.Text = "";
}
#endregion
+
+ private void menuRecentLoad_Click(object sender, EventArgs e)
+ {
+ ToolStripMenuItem MRUtoOpen = (ToolStripMenuItem)sender;
+ string shortFileName = MRUtoOpen.Text;
+ string MRUfileToOpen = MRUtoOpen.Tag.ToString();
+ OpenFileNamed(sender, null, shortFileName, MRUfileToOpen);
+ }
}
}
\ No newline at end of file
diff --git a/rtfPadForm.resx b/rtfPadForm.resx
index 1b7a409..cec2cb5 100644
--- a/rtfPadForm.resx
+++ b/rtfPadForm.resx
@@ -112,33 +112,33 @@
2.0
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 216, 56
+
+ 1165, 17
-
- 118, 56
+
+ 1030, 17
-
- 331, 56
+
+ 17, 63
-
- 556, 56
+
+ 328, 63
-
- 447, 56
+
+ 178, 63
-
- 17, 56
+
+ 892, 17
-
- 128, 17
+
+ 168, 17
-
+
AAABAAYAICAQAAAAAADoAgAAZgAAABAQEAAAAAAAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA
@@ -312,546 +312,333 @@
wf+0BQAAgAUAAIAFAACAAQAAgAHB/4ABAACAAQAAgAEAALwBAAC8AQAAvAHB/4ABbP///5H/
-
+
17, 17
-
- 281, 17
+
+ 382, 17
-
- 540, 17
+
+ 739, 17
-
- 425, 17
+
+ 582, 17
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW
+ JQAAFiUBSVIk8AAAAhhJREFUOE/N099Lk1Ecx3H/hCDI5vPs+f3smeIUxaVkIog/LlyD0NyFVBCWLcUk
+ CCS96Mc0oUA0gsBQiyCEoA1sF1YENRduWg1LWBAFGppB/8I7nrayOaPbLr4X5/A9r3Pgez4FmquYvLLc
+ +XuuYvQda4diUfBrIasa5Y0Bxm9N0NVRh6CY2UYLUS4l0HOZOzeHaax0IeqZC3IASZapbD/P4uu3jPYc
+ ptCpZwETh1DBubE50m+itNWZPw/uClS09fMyscRw0JcH9N6I8C4Z4cihfwGLyb8AYVYS/yngRtYMipxS
+ LiAoOFUDUVMp3AHsE3Ukw8oAslVGVX0TZYaDEn8fscQSodPN7FHKqG1uouFgDcLeEoLXM4DPK6FWean1
+ VmWA/UY5J0bucy90ivqOXp69WGCo5yitA7eZmgwxMz1Dv6+Ds1dmWY7NEvDXM/pgiovtLRlAUAxagtdI
+ rX4kEp4jHlsgHI2SSK8yMXCSoalHrKSSzEfjLCeeM/f0CenUPMcasi/QDBOn5qFz8C7v17bYWF9j6+sn
+ Ho5dwKOpSN5WJsJxvn3fYv3LJhvpJINdPkRV356CohkIajndV6f5sLHG48lLVJsmgmoiyirGAT/j4Vds
+ fk4x0hdAVFQkw507RlnTUYpr6Ow+Q1O1hyI7C5YdIDeipFHaGCAYPE6JYU9ml39gl2qYFDnV3w1/lh02
+ h1NDNreTagM/AHb2ypKZSGYxAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAYAAACN1PRVAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW
+ JQAAFiUBSVIk8AAAAnhJREFUSEvtkttLk3Ech/0X6qbLdrCtWc2UxG6aSF1HJw+lgmmGEHgRFnRhbnNq
+ aIlEBzMrS517984t5yQwCSnKytrChE5YWRB0F4zSucMTm1n6bpqb2ZUP/C5+hw8Pn+/7JvEfSZIerCSr
+ skXpd7loq21gxOOWXs1j2TKnIHJVnsXQWh0tmbt55l5YuCyZ66YZi3wnAU0hpJXhVeZwa/s+Xo6OSp9G
+ SFjmGBjgctlxptNLCKUU4UstJrS1BK8yl47MvXiejEgjicmcQidnqip58eYtny9YmNpWil9TwFRqcaSh
+ e00WHaaz0lj8MrtopTtXxmRjNu8eOvG8/8jERQuTGUcIaYqY1hTSItfR77gtjcYn67XbMOcng14NehW+
+ xizG79vwfJjg0xURb0YpbTIddqsojUZYsqzPJtCVJydQrYIaLRi3wOkN+Bt2MP7AjufVa+oPH8N6rV0a
+ /c2SZL09ArZDyQT1KjD9Es0uvQp/g476UxVY+vqk0Xn8VeZy2LAVKMGwMVoU3hvUWPLW4xQ6pNEoFpU5
+ bQKWfAWh8DeqmSMJr1otwWo1nXlKeoRuaTQmC8r+jE4d3ahGS6BazfUDMkSLWRpdkJiyO3YB20HFzF8n
+ FYX3ejXtOQp6RKs0uigxZV3nKvhWlwbGFDBsjhpdWCTE0WiWmLKxwWZ+DJbDpWyo0swITVr8CYxuLjFl
+ 38faCD4/CY8roWUXGDdFGrXuVyBa4xvdXKJkdruDhzfKCLgr8T09gfduOV9M6bTukWE2J9ZoliiZQW8k
+ U7mOr8PnGR9q5p5YR1PVUcTuLunTuImSDT8apqmpmUlfUHq1bKJkK8mq7J/wE4qehPLFMDgAAAAAAElF
+ TkSuQmCC
+
+
+
+ 482, 63
+
+
+ 121
- AAABAAQAEBAAAAAAIABoBAAARgAAACAgAAAAACAAqBAAAK4EAAAwMAAAAAAgAKglAABWFQAAQEAAAAAA
- IAAoQgAA/joAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BvIAAL7yAAI3///8B////AbyAACW8gACpvIAAi7yAAGG8gAA/vIAAqbyAAJu8gABF////Af//
- /wH///8B////AbyAABW8gADtvIAAIbyAAAu7gABtvIAAl7yAAG+8gACpvIAAlbyAAG+7gACXvIAAf///
- /wH///8B////Af///wH///8BvIAA37yAAMG7gADbvIAAZ7yAANW8gABTvIAA37yAAE+8gADBvIAAb7yA
- ALP///8B////Af///wH///8B////AbyAAKm7gABbvIAAf7yAAJu8gAAvvIAAdbyAAGm8gAAFvIAAP7yA
- AH28gADhvIAAA////wH///8B////Af///wG8gABvvIAA27yAANe8gABH////ASOrIyMjqyMH////Af//
- /wH///8BvIAA27yAAB8jqyMDI6sjfSOrI20jqyMb////Af///wH///8BI6sjAyOrI2siqyJ5I6sjjSOr
- I08jqyMD////AbyAABG7gAAF////Af///wEjqyMhI6ojcyKrIo0jqyNfI6sjJSOrI40jqyM1////Af//
- /wEjqyNFI6sjjyOqI0H///8B////ASsr1gksLNYDKyvVBSws1gf///8BJJVBOSOqJG0knDcPLCzWCf//
- /wH///8B////ASOrIwMjqyNVI6sjRf///wEsLNW9LCzWSSws1ZMsLNZ9LCzWAyws1t0sLNYnLCzVESsr
- 1u8sLNYF////Af///wH///8B////Af///wH///8BLCzVhyws1p8sLNbXLCzVNf///wEsLNarLCzWWf//
- /wEsLNbZLCzWPyws1hX///8B////Af///wH///8B////ASws1lMsLNXhLCzVoSws1qH///8BLCzWeSws
- 1ov///8BLCzWpSws1tEsLNWH////Af///wH///8B////Af///wEsLNYfLCzW5yws1kkrK9b7LCzWIysr
- 1m8sLNbHLCzWMyws1XUsLNajLCzWMyws1Q3///8B////Af///wH///8BLCzVAyws1o8sLNaZLCzWXSws
- 1jssLNWZLCzVmSws1ZksLNZHLCzVmSws1ZksLNUx////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAD//wAA
- //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//ygA
- AAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAD///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////AbuAAEW8gABxvIAAMf///wH///8B////Af///wH///8BvIAACbyA
- AFm8gABfvIAAGbyAAGe8gABpvIAAC////wG8gAAbvIAAZ7uAAF+8gAArvIAAcbyAAE////8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8Bu4AAd7yAAP+8gACT////Af///wH///8B////Af//
- /wG8gACNvIAA/7yAAOm7gADBvIAA7byAAPe7gAAbvIAACbyAANe8gAD/vIAA37yAAM+8gAD/vIAAwf//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wG8gABDvIAA/7yAAMf///8B////Af//
- /wH///8B////AbyAANu8gAD7vIAANbyAADG8gADtvIAA/7yAADm8gAAzvIAA+7yAANm8gAALvIAAb7yA
- AP+8gADbvIAACf///wH///8B////Af///wH///8B////Af///wH///8B////AbyAABG8gAD9vIAA8byA
- AEW7gAA7vIAAI7uAAAP///8BvIAA1byAAPu7gAAt////AbuAAJu8gAD/u4AAb7yAAC28gAD7vIAA1f//
- /wG8gAANvIAA37yAAPe8gAAf////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbuA
- ANe8gAD/vIAA/7yAAP28gAD3vIAAvbyAACO8gACRvIAA/7yAAHv///8BvIAAWbyAAP+8gACnvIAABbyA
- AN28gAD5vIAAMf///wG7gACpvIAA/7yAAE3///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BvIAAo7yAAP+8gACjvIAAY7uAALu8gAD/u4AAzbyAAB28gADlvIAA9buAAIG8gABzvIAA/byA
- ANe8gAAJvIAATbyAAPu8gADbvIAAZ7yAAKm8gAD/vIAAgf///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wG8gABvvIAA/7yAAJn///8BvIAAEbuAAOu8gAD/u4AAL7yAAB27gACbvIAA4byA
- APO8gADlvIAAu7yAAA////8BvIAAPbyAALm8gADtvIAA77yAAP+8gAC3////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////AbyAADu8gAD/vIAAzf///wG8gAAZvIAA67yAAP+8gAA9////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wG8gAAXvIAA7byAAOG7gAAL////Af//
- /wH///8B////Af///wH///8B////Af///wH///8BvIAAD7yAAPe8gAD5vIAAxbyAAOG8gAD/vIAA4byA
- AA////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbyAAAO8gADPvIAA/byA
- ACP///8B////Af///wH///8B////Af///wH///8B////Af///wG7gAAFvIAAsbyAANe8gADXvIAA0byA
- AKe8gAAv////Af///wH///8BI6sjHSOrI2sjqyMX////Af///wH///8B////Af///wH///8B////AbyA
- AJ+8gAD/u4AAV////wH///8BI6sjBSOrI40jqyNnI6sjHf///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////ASOrI0sjqyPTI6ojwSOrI9kjqyNrI6sjD////wH///8B////Af//
- /wH///8BvIAAF7yAACm7gAAT////Af///wEjqyMDI6sjUyOrI7MjqyPjI6sjsSOrI1kiqiIV////Af//
- /wH///8B////Af///wH///8B////ASOrIwUjqyOHI6sj1yOrI0UjqyMFI6sjOyOrI7MjqyPTI6sjWyOr
- IwX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BI6sjAyOrIxsjqiNlI6sjvyOr
- I+UjqyObI6sjSSOrIwn///8B////Af///wEjqyMjI6sjvyOrI7EjqyMb////Af///wH///8BI6sjBSOq
- I0kjqiPDI6sjzyOrI1MjqyMF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wEjqyMDI6ojIyOrI38jqyPRI6oj5SKrIo8jqyMzI6sjXSOrI+MjqyNvI6sjBf///wH///8B////Af//
- /wH///8B////ASOrIwUjqyNLI6sjzyOrI8EjqyM9I6sjA////wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wEjqyMtI6sjiyOrI+EjqyPLI6sjMf///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wEjqyMHI6sjYyOrI98jqyOnI6sjC////wH///8BLCzWDyws
- 1RUsLNYJ////ASws1gMsLNYTLCzVFSws1gX///8B////ASws1hMsLNYVLCzWA////wH///8BLCzWByws
- 1RUsLNYP////Af///wH///8B////Af///wH///8B////Af///wH///8BI6sjDyOrI1kjqyMJ////Af//
- /wErK9aTLCzW/ysr1nf///8BKyvWHSws1vEsLNb9LCzWG////wEsLNYHLCzW0Sws1v0sLNYz////Af//
- /wEsLNY3LCzW/yws1tH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////ASws1l8sLNb/LCzWq////wEsLNZDLCzW/yws1tcsLNYF////Af///wEsLNalLCzW/yws
- 1WX///8B////ASws1gksLNb5LCzW7ysr1RH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8BLCzVKyws1v8sLNbbLCzVBSws1oEsLNb/LCzWnf///wH///8B////ASws
- 1nEsLNb/LCzWl////wH///8B////ASws1s0sLNb7KyvWN////wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wErK9YJLCzW7Sws1fcsLNalLCzW7yws1u0sLNY3////Af//
- /wH///8BLCzWPyws1v8sLNbJKyvWA////wH///8BLCzWmSws1v8sLNaDKyvWPSsr1j0sLNYX////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////ASws1gMrK9a/LCzW/yws1v8sLNb/LCzV9Sws
- 1qUsLNYb////Af///wEsLNYZLCzW8yws1ussLNYT////Af///wEsLNZlLCzW/yws1v8sLNb/LCzW/yws
- 1oH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ASws1o0sLNb/LCzWgysr
- 1hMsLNZ/LCzW/Sws1sf///8B////ASws1gUsLNbTLCzW/yws1jP///8B////ASws1jEsLNb/KyvW5yws
- 1l0sLNZdLCzVPf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BLCzWVyws
- 1v8sLNaz////ASws1hcsLNbzLCzW/yws1R3///8B////ASws1qMsLNb/LCzWZ////wH///8BLCzWCyws
- 1vEsLNbvLCzWGf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wEsLNYlLCzW/Sws1uksLNZrLCzWoysr1v0sLNb5LCzWEyws1l0sLNZnLCzVsSws1v8sLNa7LCzWZyws
- 1mcsLNYXLCzVwyws1v0sLNaFLCzWZyws1mcsLNUv////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////ASws1gssLNbjLCzW/yws1v8sLNb9LCzW7Sws1W8sLNYDLCzWwyws1v8sLNb/LCzW/yws
- 1v8sLNb/LCzW/yws1lksLNaRLCzW/yws1v8sLNb/LCzW/yws1pv///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////ASws1SksLNYzLCzWMyws1TEsLNYX////Af///wEsLNYjLCzWMyws
- 1jMsLNYzLCzWMyws1jMsLNYzLCzWGSws1hksLNYzLCzWMyws1jMsLNYzLCzWJf///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAoAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wG7gAAnvIAAKbyAACe7gAAJ////Af///wH///8B////Af///wH///8B////Af///wH///8BvIAAGbyA
- ACm8gAAdvIAAA7yAABW8gAApvIAAKbuAABf///8B////Af///wG8gAAHvIAAI7yAACm8gAAdvIAABbyA
- ACW8gAApu4AAJbyAAAf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wG8gADZvIAA/7uAAPe8gAA/////Af///wH///8B////Af///wH///8B////Af//
- /wG8gABRvIAA3buAAP28gADnu4AAgbyAAH+8gAD/u4AA/7uAAI3///8B////AbyAAA+8gAClvIAA8byA
- AP+8gADjvIAAb7yAANm7gAD/vIAA67yAACX///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wG8gAClu4AA/7yAAP+7gABr////Af///wH///8B////Af//
- /wH///8B////AbyAABO8gADnvIAA/7yAAP28gADRu4AA1byAANW8gAD/u4AA/7yAAKP///8B////AbyA
- AHm8gAD9vIAA/7yAAOu8gADJu4AA57uAAPG7gAD/u4AA97yAAC////8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wG7gABxu4AA/7yAAP+7gACf////Af//
- /wH///8B////Af///wH///8B////AbuAAEm8gAD7u4AA/7uAAM27gAAPvIAAH7uAAL28gAD/u4AA/7uA
- AL+7gAAL////AbyAAL+7gAD/vIAA/byAAGO8gAAJvIAAXbyAAPW7gAD/u4AA/7yAAEv///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wG8gAA7vIAA/7yA
- AP+8gADRvIAAA////wH///8B////Af///wH///8B////AbyAAFe8gAD9vIAA/7yAAKf///8B////AbuA
- AD28gAD1vIAA/7yAAOO8gAAb////AbyAAM28gAD/u4AA+buAADP///8Bu4AAB7yAAKe8gAD/vIAA/7yA
- AHv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wG8gAANu4AA+7yAAP+8gADvvIAAabuAAF28gABVvIAAP7yAABP///8B////AbyAAD28gAD7vIAA/7uA
- AMX///8B////AbyAAA27gADHvIAA/7yAAP28gAA5////AbuAALO7gAD/vIAA+7uAAE////8B////AbyA
- AE+7gAD9vIAA/7uAAK27gAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8Bu4AA0byAAP+7gAD/vIAA/7yAAP+7gAD9u4AA9byAAN+8gACBvIAADbyA
- AAu8gADpvIAA/7yAAPG8gAAn////Af///wG7gACTvIAA/7uAAP+8gABt////AbuAAHG8gAD9vIAA/7uA
- AJ3///8B////AbuAACO7gADpvIAA/7uAANG8gAAT////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8Bu4AAnbuAAP+8gAD/vIAA/7yAAP+8gAD/vIAA/7yA
- AP+7gAD9vIAAr7uAAAu8gACBu4AA/7uAAP+8gACtvIAAC////wG8gABbu4AA/7uAAP+7gACjvIAAA7uA
- ABW8gADlu4AA/7yAAPO8gABJ////AbuAAA28gADJu4AA/7uAAPW7gAAl////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BvIAAabyAAP+8gAD/vIAAqbuA
- AAu8gAAbvIAAc7yAAPO8gAD/vIAA/7uAAGO8gAAJvIAAw7uAAP+8gAD9u4AA0buAAIe8gACfvIAA/byA
- AP+7gADPvIAAD////wG7gABFvIAA9byAAP+8gAD1u4AApbyAAIG8gADZu4AA/7yAAP+8gABP////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BvIAAM7yA
- AP+7gAD/vIAA07uAAAf///8B////AbyAAIu8gAD/vIAA/7yAALm8gAAFvIAAC7uAAI+7gADvvIAA+7yA
- AP+8gAD/u4AA/byAAPu8gADvvIAAHf///wH///8BvIAANbyAAMW8gAD5vIAA/byAAP+8gAD9vIAA/7uA
- AP+8gACF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BvIAADbuAAPO8gAD/vIAA6byAACX///8B////AbyAAFW8gAD/u4AA/7uAANm8gAAH////Af//
- /wG7gAAVvIAATbyAAGu8gABtu4AAYbyAAEW7gAAdvIAAA////wH///8B////AbyAAAO8gAA1u4AAY7yA
- AG+8gAB/vIAA9buAAP+8gAC1u4AAB////wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8BvIAABbuAAMW7gAD/u4AA+byAAEn///8BvIAAC7yAAJG8gAD/vIAA/7yA
- AM+8gAAH////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wG8gAAbvIAA3byAAP+7gADbvIAAE////wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////AbyAAJW7gAD/vIAA/7yAAMe8gAClvIAAwbyA
- APm8gAD/vIAA/7yAAIu8gAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wG8gAAFvIAAwbyAAP+8gAD7u4AAKf///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbyAAGG8gAD/vIAA/7uA
- AP+8gAD/u4AA/7uAAP+8gAD9vIAAxbuAABv///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bu4AAlbyAAP+8gAD/u4AAW///
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbyA
- ACm8gADDu4AAw7uAAMO8gADDvIAAv7yAAKm7gABpvIAAF////wH///8B////Af///wH///8BIqoiEyOr
- I4UjqiObI6sjLyOrIwX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bu4AAY7yA
- AP+7gAD/vIAAj////wH///8B////Af///wEjqiMHI6sjXyOrI2UjqiMfI6sjA////wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ASOr
- IwMjqyMxIqoitSOrI/MjqyPvI6oj5yOrI4MjqyMh////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BvIAAE7yAAD28gAA9vIAAKf///wH///8B////Af///wEiqiILIqoirSKrIvsjqyPhI6sjpyOr
- I1cjqyMT////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BI6sjByOrI1cjqyPjI6sj3yKrIl8jqyM5IqoioSOrI/MjqyPfI6ojfSOrIxn///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BI6ojFSKq
- IkkjqyOjI6sj5SOrI/kjqyPdI6ojnyOrI0cjqyMP////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wEjqiMNIqsinSOqI/UjqyO5I6sjJyOrIwP///8BIqsiCSOrIz8iqiKrI6sj9SOq
- I9ciqyJlI6sjDf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wEjqyMFI6sjGSKqIlcjqiOpI6sj7SOrI/cjqyPXI6sjfyOrIzUjqiMF////Af//
- /wH///8B////Af///wH///8B////ASKqIjcjqyPHI6sj8yOrI30jqyMT////Af///wH///8B////Af//
- /wEjqiMJI6sjTyOrI8MjqyP7I6sj0yOrI2MjqyML////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEjqyMFI6ojHSOrI2cjqyPBIqsi+yOr
- I/UjqyPRI6sjfyOrIyf///8B////Af///wEiqyILI6sjbSOqI+sjqiPdIqsiTyOrIwP///8B////Af//
- /wH///8B////Af///wH///8B////ASOqIwsjqyNPI6sjySOqI/sjqiPNI6ojTyOrIwX///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wEiqyIFI6sjKyKqIn0jqyPRI6oj+yOrI/MjqiPDI6sjYSOrIy0jqyOpI6sj+yKrIq0jqyMb////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BI6sjByKqIlsjqyPXI6sj+SKr
- IrsjqyM5I6sjA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wEjqyMDI6sjKyOrI5EjqyPdI6sj+yOrI/8jqyPtI6sjaSOr
- IwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wEjqiMPI6sjcSOrI+MjqyP5I6sjoyKqIif///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEjqyMHI6sjSyKq
- ImsjqyMn////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////ASOrIx8iqyKLI6sj6SOqI4n///8B////Af///wH///8BLCzWESws
- 1R8rK9YfLCzWE////wH///8B////ASws1Q8sLNUfLCzVHysr1Rn///8B////Af///wErK9YDLCzWGyws
- 1R8sLNYfKyvVB////wH///8B////Af///wErK9YPLCzWHysr1R8sLNYT////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BIqoiGyKqIhf///8B////Af//
- /wH///8BKyvVayws1v8rK9X/LCzWpf///wH///8B////ASws1ocsLNb/LCzW/yws1q8sLNYD////Af//
- /wErK9YNLCzWxSws1v8sLNb7LCzWP////wH///8B////Af///wErK9ZhLCzW/yws1v8sLNat////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8BKyvWNysr1f8rK9b/LCzW0yws1gf///8BLCzVAysr1bsrK9b/KyvW/ysr
- 1nf///8B////Af///wEsLNYDLCzWnSsr1f8sLNb/KyvVb////wH///8B////Af///wErK9YtKyvV/yws
- 1v8rK9bZLCzWBf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8BLCzVDysr1fMsLNb/LCzW6Ssr1if///8BLCzWFSws
- 1tssLNb/LCzV/yws1jv///8B////Af///wH///8BKyvWayws1v8rK9X/LCzWo////wH///8B////Af//
- /wEsLNYFLCzW8yws1v8sLNbrKyvWI////wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BLCzWByws1ccsLNb/KyvV+Sws
- 1kv///8BLCzWNyws1vMsLNb/LCzW6ysr1hP///8B////Af///wH///8BLCzWOSws1f0sLNb/LCzWySws
- 1Q3///8B////Af///wH///8BLCzVwSws1v8sLNb3LCzVR////wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BLCzWAyws
- 1pcsLNb/LCzV/ysr1nksLNYRLCzWmSws1f8rK9X/LCzWqysr1QX///8B////Af///wH///8BLCzWHSws
- 1ucsLNb/LCzW5yws1iP///8B////Af///wH///8BLCzWjSws1v8sLNb/LCzWb////wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////ASws1WMsLNb/LCzW/yws1u0sLNbfLCzW+yws1v8sLNbXKyvWMf///wH///8B////Af//
- /wH///8BLCzWDSws1sUrK9X/LCzW/Sws1j////8B////Af///wH///8BLCzVWSws1v8sLNb/LCzWuyws
- 1l0sLNZdLCzWXSws1lcrK9YN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////ASws1i8sLNb/KyvV/yws1v8sLNb/LCzV/yws1v8sLNXpLCzWlyws
- 1if///8B////Af///wH///8B////ASws1p0sLNb/LCzW/yws1XH///8B////Af///wH///8BLCzWJSsr
- 1v8sLNb/KyvV/ysr1v8sLNb/LCzW/yws1v0sLNY1////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////ASws1hErK9XpLCzV/yws1vkrK9alKyvWkysr
- 1r8rK9b7LCzV/yws1ucrK9Y5////Af///wH///8B////ASsr1msrK9X/KyvV/yws1qP///8B////Af//
- /wH///8BKyvVCSws1ucrK9X/KyvV/yws1v8rK9X/LCzV/ysr1v8sLNZt////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ASws1gkrK9a9LCzW/yws
- 1v0sLNZL////ASws1gUsLNZzLCzW+ysr1f8sLNbT////Af///wH///8B////ASws1jsrK9b9LCzW/yws
- 1cksLNUP////Af///wH///8BLCzWBSws1bcsLNb/LCzW+ysr1lUsLNULLCzWCyws1QssLNYH////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wEsLNaPLCzW/yws1v8sLNZ/////Af///wEsLNYfLCzV6yws1v8sLNb/LCzWJ////wH///8B////ASws
- 1h8sLNbjLCzW/yws1ussLNYh////Af///wH///8B////ASws1oUsLNb/LCzW/yws1n3///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wErK9VbLCzW/yws1v8sLNW1KyvVAyws1gMsLNZFKyvW9Sws1v8sLNb/LCzVM///
- /wH///8B////ASws1QsrK9XFKyvV/yws1v8sLNZB////Af///wH///8B////ASws1lEsLNX/KyvW/yws
- 1rH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wErK9UrKyvV/Sws1v8sLNXrKyvVnSws1qUsLNXnKyvV/yws
- 1v8rK9XxLCzWDSws1T0sLNaZLCzVmSws1ZksLNbfLCzW/ysr1f8sLNbBLCzWmSsr1pksLNaZLCzWLSws
- 1iEsLNb7LCzW/yws1ussLNabLCzWmSws1ZkrK9aZLCzVZyws1gP///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEsLNYVLCzW3Sws1v8sLNb/LCzW/yws
- 1v8sLNb/LCzW/ysr1vUsLNZv////ASws1jksLNb/LCzW/ysr1v8sLNb/LCzW/ysr1v8sLNb/LCzW/yws
- 1v8sLNb/LCzVdyws1g0sLNbbLCzW/ysr1v8sLNb/KyvV/yws1v8rK9X/LCzW0Sws1gv///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEsLNYHLCzWlyws
- 1s0sLNXNKyvVzSws1sssLNbDLCzVmSws1kMsLNYD////ASws1hEsLNbDLCzWzSws1c0sLNbNLCzWzSws
- 1c0sLNbNLCzWzSws1s0sLNbNLCzWhSsr1gUsLNaRLCzWzSws1c0sLNbNLCzWzSws1s0sLNbNLCzWxSws
- 1RH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8BAAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
- AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
- //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
- AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
- //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
- AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
- //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//KAAAAEAAAACAAAAAAQAgAAAA
- AAAAQgAAAAAAAAAAAAAAAAAAAAAAAP///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wG8gAA5vIAA17yAAOG8gADhvIAAr7uA
- ABf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbuAAB28gACRvIAA0buA
- ANe8gAClvIAAP7yAACO7gAC7vIAA4byAAOG8gADFvIAAJf///wH///8B////AbyAAA+8gABdvIAAwbuA
- AN28gADbvIAAn7yAACW8gACJvIAA4byAAOG8gADdvIAAXf///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bu4AALbyA
- AN28gAD/vIAA/7yAAOW8gAAn////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbuA
- ABm8gACxvIAA/7yAAP+8gAD/vIAA/7yAAOe8gABxvIAAy7yAAP+8gAD/vIAA6byAADH///8B////Af//
- /wG8gAB7u4AA9byAAP+8gAD/vIAA/7yAAP28gADBvIAAn7yAAP+8gAD/vIAA/byAAHf///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////AbyAABW7gAC9vIAA/7yAAP+8gAD9vIAARf///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wG8gABpvIAA/byAAP+8gAD/vIAA7byAALm7gADFvIAA67yAAO28gAD/vIAA/7yA
- APm8gAA9////Af///wG8gAAhvIAA67yAAP+8gAD/vIAA+7uAAMe8gAC5u4AA6byAAPO8gAD/vIAA/7yA
- AP+8gACR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wG8gAADvIAAnbyAAP+8gAD/vIAA/7yAAHP///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8BvIAAqbyAAP+8gAD/vIAA+7yAAIe8gAANvIAAF7yA
- AJO8gAD9vIAA/7yAAP+8gAD/vIAAWf///wH///8BvIAAV7yAAPe8gAD/vIAA/7yAANO8gAAZvIAADbyA
- AFW8gADtvIAA/7yAAP+8gAD/vIAAp7yAAAn///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbyAAGe8gAD/vIAA/7yA
- AP+8gACr////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbyAAMe8gAD/vIAA/7yA
- APO8gABB////Af///wG8gAAXvIAAu7yAAP+8gAD/vIAA/7yAAI3///8B////AbyAAG+8gAD7vIAA/7yA
- AP+7gACT////Af///wH///8BvIAAebuAAP28gAD/vIAA/7yAAMW8gAAb////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wG8gAA1vIAA/7yAAP+8gAD/u4AA07yAAAn///8B////Af///wH///8B////Af///wH///8B////Af//
- /wG7gADBvIAA/7yAAP+7gAD1vIAARf///wH///8B////AbyAAGe8gAD7vIAA/7yAAP+8gADB////Af//
- /wG7gABnvIAA+byAAP+8gAD/u4AAl////wH///8B////AbyAACu8gADbvIAA/7yAAP+8gADlvIAAL///
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8BvIAACbyAAPe8gAD/vIAA/7yAAO+8gACLvIAAe7uAAHm8gABvvIAAXbyA
- AC+7gAAH////Af///wH///8Bu4AAmbyAAP+8gAD/vIAA+byAAGv///8B////Af///wG8gAAXvIAA87yA
- AP+8gAD/vIAA5buAABf///8BvIAASbyAAPW8gAD/vIAA/7yAAMP///8B////Af///wG8gAALvIAApbyA
- AP+8gAD/vIAA/byAAEv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wG8gADLvIAA/7yAAP+8gAD/vIAA/7yA
- AP+7gAD/vIAA+7yAAPW8gADlu4AAubyAAEu8gAAJ////AbyAAFm8gAD5vIAA/7yAAP+8gACpvIAAD///
- /wH///8B////AbyAAM28gAD/vIAA/7uAAO+8gABD////AbyAABO8gADlvIAA/7yAAP+8gADtvIAAKf//
- /wH///8B////AbuAAHG8gAD9vIAA/7yAAP+8gAB/////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BvIAAl7yA
- AP+8gAD/vIAA/7yAAP+8gAD/vIAA/7yAAP+8gAD/vIAA/7yAAP+8gADvvIAAe7yAAAe7gAAjvIAAz7yA
- AP+8gAD/vIAA77yAAEf///8B////Af///wG8gACXvIAA/7yAAP+8gAD5vIAAb////wH///8BvIAAk7yA
- AP+8gAD/vIAA/buAAI+7gAAJ////Af///wG8gAA/vIAA+byAAP+8gAD/vIAAsf///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////AbyAAGO8gAD9vIAA/7yAAP+8gADtvIAAvbyAALm8gADDvIAA5byAAP+8gAD/vIAA/7yA
- APO8gABrvIAABbyAAFu8gAD7vIAA/7yAAP+8gADbvIAAT7yAABO8gAADvIAAY7yAAP28gAD/vIAA/7yA
- AJ28gAAJ////AbyAACm8gADLvIAA/7yAAP+8gAD3vIAAf7yAAB+8gAAFvIAAEbyAAPO8gAD/vIAA/7yA
- AN+7gAAL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wG8gABDvIAA67yAAP+8gAD/vIAAzbuAABX///8BvIAAEbyA
- AD28gADNvIAA/7yAAP+8gAD/vIAA17yAABG7gAAHvIAAnbyAAPu8gAD/vIAA/7yAAO28gAC5vIAAp7yA
- AMO8gAD9vIAA/7yAAP+8gADDvIAAFf///wG8gAADvIAAQbuAAO+8gAD/vIAA/7yAAPm7gADLvIAAqbyA
- AKm8gAD3vIAA/7yAAP+8gADrvIAAL////wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BvIAAI7yAANO8gAD/vIAA/7yA
- APe8gAAl////Af///wH///8BvIAAN7yAAOO8gAD/vIAA/7yAAP+8gABJ////AbyAAAe8gABnu4AA2byA
- AP28gAD/vIAA/7yAAP+8gAD/vIAA/7yAAP+8gAD/vIAA77yAACf///8B////Af///wG7gAAxvIAAr7yA
- APe8gAD/vIAA/7yAAP+8gAD/vIAA/7yAAP+8gAD/vIAA97yAAF////8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbuA
- AAm8gAC7vIAA/7yAAP+8gAD/u4AATf///wH///8B////AbyAAAu8gADHvIAA/7yAAP+8gAD/vIAAdf//
- /wH///8BvIAAA7yAACu8gABtvIAAr7yAANe8gADnu4AA5byAANe8gAC7vIAAl7yAAGe7gAAR////Af//
- /wH///8B////AbyAABO8gABTvIAAnbyAANG8gADnvIAA5byAAN28gAD9vIAA/7yAAP28gACHvIAAA///
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8BvIAAjbyAAP+8gAD/vIAA/7yAAIP///8B////Af///wG8gAAHvIAAxbyA
- AP+8gAD/vIAA/7yAAIP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wG8gAA5vIAA57yA
- AP+8gAD/vIAAr7yAAA////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////AbyAAFu8gAD/vIAA/7yAAP+8gAC1vIAAA///
- /wG8gAAJvIAAT7uAAOe8gAD/vIAA/7yAAP+8gABt////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BvIAAIbyAAM28gAD/vIAA/7yAANe8gAAd////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wG8gAAnvIAA/byA
- AP+8gAD/vIAA5byAAIu8gACHvIAAnbuAAOm8gAD/vIAA/7yAAP+8gAD5vIAAL////wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////AbyAAAm8gACzvIAA/7yAAP+8gAD5vIAAL////wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BvIAAEbyAAN+8gAD/vIAA/7yAAP+8gAD/vIAA/7yAAP+8gAD/vIAA/7yAAP+8gAD5vIAAl7yA
- AAn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BvIAAibyAAP+8gAD/vIAA/7yA
- AF////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////AbyAAAu8gACzvIAA/7yAAP+8gAD/vIAA/7yAAP+8gAD/vIAA/7yA
- AP+8gAD5vIAAmbuAABn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbyA
- AFu8gAD/vIAA/7yAAP+8gACR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wG8gAADvIAAX7yAAK28gACtvIAArbyA
- AK28gACtvIAArbyAAJ28gAB3vIAALbyAAAX///8B////Af///wH///8B////Af///wH///8BI6sjCyOr
- I2kjqyPpI6ojwSOrI00jqyMN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wG8gAAlvIAA/7yAAP+8gAD/vIAAxbyAAAX///8B////Af///wH///8B////ASOr
- IwUjqyM3I6sjTyOrIxcjqiMF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wEjqiMDI6sjEyOrI4UjqyPtI6sj/SOrI/0jqyPrI6sjlyOrIykjqyMF////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8BvIAABbyAAFG8gABTvIAAU7yAAEW8gAAF////Af//
- /wH///8B////Af///wEjqyMRI6sjryOrI/8jqiPrIqoilSOrI1UjqyMdI6sjA////wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wEjqyMDI6sjRyOrI80jqyP/I6sj3yOrI3cjqyOXI6sj3yOrI/8jqiPvIqsikyOr
- IzcjqiMF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8BI6sjByOrI2sjqyPVI6sj8SOrI/0jqyPzI6sjzyOr
- I5MiqiIzI6sjFSOrIwX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wEjqyMVI6ojZSOrI98jqyP3I6sjwyOqI0EjqyMHI6ojDSOr
- IzkjqyOvI6sj6yKqIvsjqyPbI6sjgSKqIiUjqyMD////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BI6sjCSOr
- I0UjqyOVI6sj0yOrI/sjqyP/I6sj+yOrI9EjqyN9IqsiQyOrIw3///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEjqyMVI6sjrSOrI/cjqyP1I6sjkSOr
- IxH///8B////Af///wH///8BI6sjBSOrI0EjqiOlI6sj8yOrI/8jqyPTI6sjcyOrIxX///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8BI6sjCSOrIxsjqyNLI6sjnyOrI9kjqyPzI6sj+yOrI+0jqyPDI6sjYSOr
- Iy0jqyMP////Af///wH///8B////Af///wH///8B////Af///wH///8B////ASOrIwkjqyNPI6ojxSOr
- I/kjqyPVI6sjXSOrIxH///8B////Af///wH///8B////Af///wH///8BI6sjDSOqI1cjqyO7I6sj8yOr
- I/kjqyPPI6sjbyOrIx0jqyMD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ASKrIgMjqyMbI6sjXSOr
- I7MjqyPpI6sj/yOrI/0jqyPlI6sjqSOqI2kjqyMjI6sjA////wH///8B////Af///wH///8B////ASOr
- Iw0jqyN1I6sj6SOrI/8jqyO9I6sjOf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BI6sjESOrI2MjqyPBI6sj/yOrI/0jqyPJI6sjZyOrIxP///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////ASOrIwMiqiILI6sjHSOrI20jqyPBI6sj5yOrI/0jqyP5I6sj6yOrI60jqyNRI6sjJSOr
- Iwf///8BI6sjAyOrIzsjqyO/I6sj+SOrI+UjqyN9I6sjDSOrIwP///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wEjqyMDI6sjDSOrI1sjqyO9I6sj9yOrI/cjqyPBI6sjUSOr
- IxP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BI6sjEyOrIz8jqyN/I6sjzyOr
- I/sjqyP/I6sj9SOrI9MjqyOPI6ojMyOrI10jqyPVI6sj/SOrI9sjqyNPI6sjCf///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BI6sjFyOr
- I3cjqyPZI6sj/yOrI/EjqyOrI6sjNSOrIwX///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////ASOrIwMjqyMpI6ojhyOrI88jqyPzI6sj/yOrI/8jqyP/I6sj8yOrI5cjqiMT////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8BI6sjGSKrIn0jqyPXI6sj/SOrI/UjqyOfI6sjMyOrIwf///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////ASOrIwUjqyMjI6sjSyOrI6UjqyPjI6sj1SOr
- I2EjqyMV////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEjqyMFI6ojMyOrI5sjqyPtI6oj/SOr
- I80iqyIn////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BI6sjOSOrI5kjqyOtI6sjIf///wH///8B////Af///wH///8BLCzWDyws1iksLNUpLCzVKSws
- 1h0sLNYD////Af///wH///8BLCzWBSws1iMsLNUpLCzVKSws1SksLNYR////Af///wH///8B////ASws
- 1gUsLNYhLCzVKSws1SksLNYnLCzWC////wH///8B////Af///wH///8B////ASws1hksLNUpLCzVKSws
- 1SksLNYV////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wEjqyMLI6sjFSOrIwX///8B////Af///wH///8B////ASws
- 1k0rK9XzLCzW/yws1v8sLNbDLCzVEf///wH///8B////ASws1icsLNbZLCzW/yws1v8sLNb/LCzVT///
- /wH///8B////Af///wErK9UTKyvWuSws1v8sLNb/LCzW9yws1U3///8B////Af///wH///8B////Af//
- /wEsLNaJLCzW/yws1v8sLNb/LCzWif///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wEsLNYvLCzW3Sws1v8sLNb/LCzW7Sws1h3///8B////Af///wEsLNZJLCzW7Sws
- 1v8sLNb/LCzW9Sws1hv///8B////Af///wH///8BKyvVBSws1ZEsLNb/LCzW/yws1v8sLNV7////Af//
- /wH///8B////Af///wH///8BLCzVVSws1v8sLNb/LCzW/yws1bn///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8BLCzWEyws1scsLNb/LCzW/yws1v8sLNY9////Af//
- /wH///8BLCzWaysr1f0sLNb/LCzW/yws1sssLNUN////Af///wH///8B////Af///wEsLNZrLCzW+Sws
- 1v8sLNb/LCzWq////wH///8B////Af///wH///8B////ASws1iMsLNb/LCzW/yws1v8sLNbZLCzWD///
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEsLNWhLCzW/yws
- 1v8sLNb/LCzWdf///wH///8BLCzVBSws1p0sLNb/LCzW/yws1v8sLNaTKyvWBf///wH///8B////Af//
- /wH///8BLCzWPyws1u8sLNb/LCzW/yws1uEsLNYD////Af///wH///8B////Af///wH///8BLCzW6Sws
- 1v8sLNb/LCzW5yws1jX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8BKyvVcSws1v8sLNb/LCzW/yws1qX///8B////ASws1gksLNbNLCzW/yws1v8sLNb5LCzWZ///
- /wH///8B////Af///wH///8B////ASws1hksLNblLCzW/yws1v8sLNb3LCzVG////wH///8B////Af//
- /wH///8B////ASws1rksLNb/LCzW/yws1vMsLNZX////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////ASws1jksLNb/LCzW/yws1v8rK9XNKyvVE////wEsLNYzKyvW/Sws
- 1v8sLNb/LCzW4ysr1TP///8B////Af///wH///8B////Af///wH///8BLCzWxyws1v8sLNb/LCzW+ysr
- 1k////8B////Af///wH///8B////Af///wEsLNZ/LCzW/yws1v8sLNb9LCzWfSws1gP///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEsLNYXLCzW7yws1v8sLNb/KyvV4Sws
- 1kksLNZLLCzWwSws1v8sLNb/LCzW/ysr1q0sLNYJ////Af///wH///8B////Af///wH///8B////ASws
- 1pcsLNb/LCzW/yws1v0sLNZ9////Af///wH///8B////Af///wH///8BLCzWVyws1vcsLNb/LCzW/yws
- 1qMsLNYL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BLCzWDSws
- 1sUsLNb/LCzW/yws1v8sLNb/LCzW/yws1v8sLNb/LCzW+ysr1r0sLNYp////Af///wH///8B////Af//
- /wH///8B////Af///wEsLNZjLCzW/yws1v8rK9b/LCzVpyws1gn///8B////Af///wH///8B////ASws
- 1jcsLNbhLCzW/yws1v8rK9bdLCzWgysr1nsrK9Z7KyvWeysr1nssLNZb////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////ASws1gcsLNaVLCzW/yws1v8sLNb/LCzW/yws1v8sLNb/LCzW/yws1v0sLNbbLCzWgyws
- 1i8sLNYF////Af///wH///8B////Af///wH///8BLCzWOyws1vUsLNb/LCzW/ysr1ccsLNYd////Af//
- /wH///8B////Af///wEsLNYZLCzWyyws1v8sLNb/LCzW/yws1v8sLNb/LCzW/yws1v8sLNb/LCzW2yws
- 1gn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8BLCzWayws1vssLNb/LCzW/yws1v8sLNb/LCzW/yws
- 1v8sLNb/LCzW/yws1v8sLNXjLCzWXyws1gX///8B////Af///wH///8B////ASws1icrK9bXLCzW/yws
- 1v8sLNbnLCzWL////wH///8B////Af///wH///8BKyvVAyws1q0sLNb/LCzW/yws1v8sLNb/LCzW/yws
- 1v8sLNb/LCzW/yws1ussLNYx////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ASws1kUsLNbrLCzW/yws
- 1v8sLNbfLCzVHSws1hcsLNY1LCzWiSws1ussLNb/LCzW/yws1u0sLNVf////Af///wH///8B////Af//
- /wEsLNYRLCzWtSws1v8sLNb/LCzW/Sws1U3///8B////Af///wH///8B////Af///wEsLNZ5LCzW/yws
- 1v8sLNb/LCzW5yws1rcsLNa3LCzWtyws1rcsLNWxLCzVQf///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wEsLNUjLCzW3Sws1v8sLNb/LCzV+yws1hf///8B////ASws1gcsLNZ9LCzW+Sws1v8sLNb/LCzW1f//
- /wH///8B////Af///wH///8BLCzWAyws1pcsLNb/LCzW/yws1v8sLNV7////Af///wH///8B////Af//
- /wH///8BKyvVSSws1v8sLNb/LCzW/yws1rksLNYD////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8BLCzWAyws1sMsLNb/LCzW/yws1v8sLNZP////Af///wH///8BLCzVKSws
- 1uMsLNb/LCzW/yws1v8rK9Uv////Af///wH///8B////Af///wEsLNVjLCzW+yws1v8sLNb/LCzWtf//
- /wH///8B////Af///wH///8B////ASws1hksLNb1LCzW/yws1v8sLNbVLCzWIf///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wErK9WVLCzW/yws1v8sLNb/KyvVgf//
- /wH///8B////ASsr1TEsLNbnLCzW/yws1v8sLNb/LCzWR////wH///8B////Af///wH///8BLCzWNyws
- 1vksLNb/LCzW/yws1tssLNYJ////Af///wH///8B////Af///wEsLNYPLCzWzyws1v8sLNb/LCzW5yws
- 1j////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BLCzWXyws
- 1v8sLNb/LCzW/yws1bEsLNUHLCzWBSws1h8sLNabLCzW+yws1v8sLNb/LCzW/yws1Tf///8B////Af//
- /wH///8B////ASws1gssLNbvLCzW/yws1v8sLNbrLCzWL////wH///8B////Af///wH///8BLCzWByws
- 1p8sLNb/LCzW/yws1vsrK9Vj////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////ASws1jEsLNb5LCzW/yws1v8sLNXxLCzWzyws1c0sLNbZLCzW+Sws1v8sLNb/LCzW/yws
- 1ucrK9YLLCzWCyws1qUsLNbNLCzWzSws1s0sLNbNLCzW+yws1v8sLNb/LCzW+yws1tksLNbNLCzWzSws
- 1s0sLNbNLCzWUSws1gMsLNZ1LCzW/Sws1v8sLNb/LCzW4yws1s0sLNbNLCzWzSws1s0sLNbNLCzWqyws
- 1hH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wErK9UdKyvW2yws1v8sLNb/LCzW/yws1v8sLNb/LCzW/yws
- 1v8sLNb/LCzW/yws1vEsLNZt////ASws1gkrK9ajLCzW/yws1v8sLNb/LCzW/yws1v8sLNb/LCzW/yws
- 1v8sLNb/LCzW/yws1v8sLNb/LCzW/yws1pP///8BLCzWTyws1u8sLNb/LCzW/yws1v8sLNb/LCzW/yws
- 1v8sLNb/LCzW/yws1eUsLNY3////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BKyvVDyws1rEsLNb/LCzW/yws
- 1v8sLNb/LCzW/yws1v8sLNb5LCzW6Ssr1cksLNZZLCzWCf///wEsLNYDLCzWcyws1v0sLNb/LCzW/yws
- 1v8sLNb/LCzW/yws1v8sLNb/LCzW/yws1v8sLNb/LCzW/yws1v8sLNa7LCzWEyws1iksLNbfLCzW/yws
- 1v8sLNb/LCzW/yws1v8sLNb/LCzW/yws1v8sLNb1LCzWXf///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ASws
- 1gMsLNY/LCzWZyws1mcsLNZnLCzWZyws1mcsLNZlLCzWXSws1UMsLNUX////Af///wH///8B////ASws
- 1SUsLNZjLCzWZyws1mcsLNZnLCzWZyws1mcsLNZnLCzWZyws1mcsLNZnLCzWZyws1mcsLNZnLCzWUyws
- 1Q0sLNYJLCzWVSws1mcsLNZnLCzWZyws1mcsLNZnLCzWZyws1mcsLNZnLCzVZyws1S////8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
- /wH///8B////Af///wH///8B////Af///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAACUWAAAlFgAAAAAAAAAA
+ AAC/vML/vrzC/7y6wf+8ucD/u7q//7u5wP+6uL//ube+/7e2vf+3t73/tra8/7a1vP+2tbv/tbK5/7Sy
+ uv+1s7r/tLO5/7Oyuf+wsLf/sK+2/6+utf+vrbT/sK61/66utP+vrbT/rauy/6yrsv+sq7L/q6qx/6qp
+ sP+qqK//p6eu/6amrf+jo6r/oKCo/56epv+gnqX/oJ6g/5iXmP+foKf/n6Cn/5+gp/+foKf/n6Cn/5+g
+ p/+foKf/n6Cn/5+gp/+foKf/n6Cn/0RCRf9JRkn/SEdL/0lGSv9LSU3/S0pN/01KT/9OTE//T01P/1FO
+ T/9PTk7/UU5O/1BOT/9RTk7/xMHD/8K+wv/AvcL/v73C/768wf+9usD/vbm//7q5vv+6uL3/ure8/7i3
+ u/+3tbv/t7S7/7azuv+0s7n/srG3/7Cwt/+wsLb/sLC2/6+utP+urbP/rqyz/62ss/+urLP/rq2z/62s
+ sv+rq7L/rKqx/6uqsP+pqK7/qKas/6Wmq/+mpqv/paWr/6Skq/+kpKn/pKSq/6Kiqf+hoaf/n6Cn/52d
+ pP+cnKP/nZ+m/5+fp/+foKf/nZ6l/4+RmP9/f4X/Z2dr/09PUv9FRUf/SEZJ/0tKTP9MSk3/TU1Q/1FR
+ U/9XVFj/UE1O/1BNTv9QTU7/UE1O/1BNTv9QTU7/UE1O/8K/w//BvsT/v73D/768wv+9usD/vLrA/7y5
+ wP+6uL//ube9/7q3vf+3tr3/t7S8/7W0u/+0s7r/tLK5/7Syuf+zsrj/tLK5/7GxuP+xsLf/sa21/6+s
+ tP+urbT/rq61/6+ttP+srLP/rayz/6ursv+rqrH/qqiw/6ior/+npq3/pqat/6alrP+kpKv/pKOq/6Ki
+ qf+hoKj/np+m/6CgqP+jo6v/m5uj/4qMk/91dHv/VVRa/zc1Of8gHiD/EhES/xUTFP8kIyX/NzU3/0NA
+ RP9FREf/RkRI/0dGSv9KSEz/UE1O/0tJTP9MS03/T0xN/1BNTv9RT0//U1FS/1FPT/+/vML/vrzC/7y6
+ wf+8ucD/u7q//7u5wP+6uL//ube+/7e2vf+3t73/tra8/7a1vP+2tbv/tbK5/7Syuv+1s7r/tLO5/7Oy
+ uf+wsLf/sK+2/6+utf+vrbT/sK61/66utP+vrbT/rauy/6yrsv+sq7L/q6qx/6qpsP+qqK//p6eu/6am
+ rf+jo6r/oKCo/56epv+gnqX/oJ6g/5iXmP+AgYP/Wltc/zo4Nv8cGhb/DQsL/wkHBv8FBAT/BwYF/w8O
+ Df8dGxz/MS8y/0RCRf9JRkn/SEdL/0lGSv9LSU3/S0pN/01KT/9OTE//T01P/1FOT/9PTk7/UU5O/1BO
+ T/9RTk7/u7i//7q5v/+5uL7/ube9/7i3vv+4tb3/trW8/7e2vf+2tbz/trS8/7W0u/+1tLv/trO6/7Sy
+ uf+0s7r/tLO6/7Syuv+zsrj/sbC3/7Cwtv+vrrX/rqyz/7Gvtv+zsbn/rq20/62ss/+sq7L/qqqx/6qp
+ sP+pqK//p6eu/6SkrP+ioqr/n5+m/5+go/+fnZz/jI2T/2tvjf9BS3//Ljt//yc0e/8fKGH/Ehc2/wMC
+ AP8BAAD/AwIC/wUDBP8NDAz/Kigs/0VFSP9MSk7/SkhM/0lHTP9KSE3/S0lP/0tKUP9NS1D/T01Q/05M
+ Tv9OTE3/T0xN/09MTf9PTU7/T0xN/7i2vf+3tbz/trW8/7W0u/+2tLv/tbS7/7Syuf+1s7v/tbS7/7Sz
+ uv+zsrn/tbK5/7Szuv+0srn/s7G4/7OyuP+zsrj/srG4/7Gwt/+wsLb/r662/6+vtv+npaz/nJid/7Gq
+ rv+zrbL/tLC2/7CttP+npq7/o6Ss/6Ghqf+ioqb/o6Gg/5eXmv9+g5X/W2Wa/0BQpv80R7H/OU28/zxQ
+ uv8/U77/QlfG/0BUw/8rOob/BwgV/wAAAP8JBwj/Liww/01KUP9QTlT/TUpP/0xJT/9MSVD/TEpR/0tK
+ Uf9LS1L/TUtS/05LUP9OTE7/TkxO/09NT/9PTU7/T05P/09NTv+3tbz/tbS7/7Szuv+0srn/tLK5/7Oz
+ uf+zsbj/sbC4/7KxuP+ysrn/srG5/7OxuP+ysrn/tLK5/7KxuP+ysbf/srG4/7KwuP+xsLf/r6+2/6+v
+ tv+5t7//dnN3/zZATv+PtM3/h6K1/3WEkP+Eg4j/rKqu/6Wkpf+fnZ7/ioyW/2tzmv9LWaP/N0qx/zdL
+ tv86Trn/PlC1/z1PsP89TrH/PE+z/zxPs/8+Ubb/Q1fG/zZGoP8XGir/ODU1/1NQVP9QTVP/T0xT/0xL
+ Uv9OS1L/TUxT/05NVf9OTVb/Tk1T/01MU/9NS1D/TkxP/09NUP9OTU//T0xO/1BOT/9PTE7/t7a8/7a0
+ u/+0s7r/s7O5/7Oyuf+0srn/srG4/7Gwt/+ysLf/srC4/7GwuP+xsLf/sK+2/7Gwt/+wr7f/sLC3/7Gw
+ t/+vr7b/r661/6+utf+vrbX/tLK6/4aDh/9im8H/etT//3TH9P9BkOT/Klmd/3p4ff+ChKH/U2Cg/z1P
+ rf81SbP/OU26/z5Qt/8+T7P/PE2w/zxOsv8/U7v/QVXA/z5Rt/88Ta3/PFCy/z1Osv9BVMP/QEyW/zc6
+ TP9IR03/VFBV/1BOVf9OTVT/Tk1T/05NVv9OTVf/TUxV/01MVP9QTVP/Tk1R/1BNUP9PTE//TkxO/09M
+ Tv9RT0//T0xO/7i2vf+2tLv/tbS7/7S0uv+zs7r/s7K5/7OxuP+zsbj/sbC2/7Cwt/+wr7b/sK62/6+u
+ tf+urrX/r6+2/7Gwt/+wr7b/rqy0/66stP+trLT/q6uy/6ior/+spqz/hb3e/3vS//9TqP//LIX//ymC
+ /v8mVp7/Mj6I/ztNvv88T7j/PVCy/zxPrf88ULD/P1O8/0lf1f9Saur/VnL1/1h0+P9Wc/L/SGHS/zxP
+ r/8+T7P/P1G3/0FSsf83P2j/KzBN/0tIUv9VUlj/UE9V/09NVP9OTVX/Tk1W/01MVv9OTVX/UU5U/09N
+ Uf9QTlD/TkxP/1BNT/9PTU//UU5P/09NT/+4t77/uLa8/7W1u/+1tLv/tLO6/7Oyuf+zsbj/srG4/7Cw
+ t/+xsLf/sK+2/66utf+wrrb/rq61/6+vtv+wr7f/r6+2/66ttP+rq7P/qqmx/6mpr/+qqKn/paGe/3Gb
+ tP9Npf//Kn///yuA//8thP//LIX//ytdpf85RIz/Pk+3/z5Qt/9EW8v/TWjj/1h0+P9Ydv7/V3X//1R0
+ //9Rcf//S2n6/0ln9P9DW8//Pk+w/z5Rtv8+ULP/Nj9z/ywxV/8xNFP/UlBX/1FPVv9OTFT/Tk1V/09N
+ Vv9OTVb/T05U/09MU/9PTVH/T01Q/09OT/9RTlD/T01P/1BOUP9PTU//vLrB/7m4v/+3tbz/trS7/7Sz
+ uv+0srr/s7K5/7KxuP+ysLj/sbC3/6+vtv+urrX/sK+3/7Gutv+wrrb/rq20/62ss/+rqrD/qqqu/6uq
+ p/+dnKD/gIWf/1ljoP84UYr/KXjm/yyF//8tgv//LYL//y2D//8shf7/Kluj/0JSqP9Xcfn/V3T//1Z2
+ //9Udf//UHH//0Zl/P8rRdT/FCib/w0acv8VGVL/KDmL/0FVuf8+ULP/PlC2/zY/ef8yNVv/MTdf/0xL
+ V/9TUFb/T01V/05MVP9OTVT/TkxU/01MUv9OS1H/TkxQ/09OUP9QTlD/T05Q/1BOT/9TUVL/UE5P/7+9
+ w/+8usH/uLe+/7e1vf+3tb3/trW8/7Wzu/+zsrj/sLG4/7Gvt/+vrrX/sK62/6+utv+urLX/q6uz/6+t
+ sf+urKv/pKOk/4uOnv9ocaL/SVio/zhLsv86Tbn/PEqo/y5Kif8peOD/LYb//y2C//8tgv//LYP//yuE
+ /v8tYKn/SV7A/1Rw//9Jaf//OFTe/x8zoP8THmX/T1N8/5WVmP+ys7j/bnWP/wAELf8/UrL/PlGz/z5Q
+ t/83QH7/NDhd/zU7Y/9KSVj/UlBU/09NVP9OTFL/TUtR/0tJUf9MSFD/TElP/0xKTv9OTU7/T0xP/09M
+ T/9QTk//U1JR/1BOT//Cv8X/v73D/7u6wf+5uL//uLa+/7a0vP+0s7r/sbC4/7Gvt/+vr7f/rq61/66t
+ tf+urLL/rqyv/6uqqf+Xl6H/dn2i/1Fdpf87Ta//OUu2/zxOuP9AUbP/Pk+u/z1Osv9CUrf/OFeg/yp5
+ 4v8thv//LYL//y2C//8thP//K4T9/y5isv8uQJ3/ESBx/xEVPP8RFSf/Iycz/9HS0P///////////5Ki
+ 4/8ACUz/O0uk/z5Qs/8+ULb/OEJ+/zQ6Xf82O2T/SkpZ/1NPVP9PS1L/TEpP/0xHTv9JR0z/SEZL/0lH
+ Sv9KSUv/TUtN/09MT/9QTU7/UU9P/1ZUVP9RT0//x8LI/8TBxv/AvsX/vr3E/7y6wf+4t7//tbW8/7Cv
+ t/+trLT/qamx/6ensP+traz/oqKn/4SIpf9eZ6j/Q1Gu/zdKtP87Trj/PVCz/z1Nrv8+T7D/QlS7/0lg
+ 0P9Sben/Wnj//1ly+P85W7T/LX3s/y2G//8tgv//LYL//y6D//8phf//J1aX/yMiJP8rMT7/LzND/y40
+ Qf/NztL///////////+Rn9v/AAlI/zpJoP8+UbP/PlK0/zdCf/82OV3/Nzxl/0pJWP9RTlH/TklP/0pG
+ S/9HREn/RUNH/0RBRf9FQkX/R0ZI/0tKTP9OTE7/Uk9R/1pWV/9jYGD/WlZX/8jGyv/Gw8j/xMLH/8PA
+ xv/Bv8b/v73D/727wv+2tr7/rKy0/6SlrP+ioqH/eH6c/0parf87TLX/PU65/z5Qt/9AUbP/PU6x/z5R
+ uP9KXs3/Umzj/1l2+v9bev//Wnn//0Zn+P8rStn/HiqC/x0zV/8ufu3/LYb//y2C//8nf///MIT+/5+/
+ 5/+SkIr/LS83/zAyN/81Nj3/zMzP////////////lKDW/wAFPf84SJn/QFGy/z9RtP84RIH/Njpe/zc9
+ Zv9MS1r/Uk9R/0pHTP9FQ0f/REBE/0A+Qf89PD//QT5A/0RDRf9JSEr/U1BS/2JfYP9wbGz/eHR1/3Bs
+ bP/LyMz/ycbL/8fEyv/Hw8n/xcPI/8XBx//EwMb/wr/G/768wv+8urj/dHqq/zhKs/88T7j/QlKz/0FR
+ r/9DVbn/R1zK/1Nr4v9ceff/Xnz//1x7//9YeP//VXf//05w//9EXdP/T1Jp/w0NFv8GAQr/JT1k/y19
+ 7v8ng///MIP9/5684f/g29L/lHft/0UnoP8xMDX/ODk5/8vLzf///////////5mk1f8AAS//N0WR/0FR
+ sf8/UbP/O0WD/zc7Xv84PWf/UlFg/1hVVv9IRUn/Qj9D/z88QP86ODr/NjU2/zg2N/9HRkf/X1xd/3Ju
+ bv94dHX/dXFy/3RwcP91cXL/zMnO/8rHzP/Ixsv/yMXK/8fEyf/Fwcf/xMDF/8C9w//HxMH/iIy6/zxL
+ uP9BUrb/RFW1/0dZw/9RZ+D/V3Pz/117//9dfP//Wnn//1Z3//9Mbf//O1jj/x83rP8vO4b/4OP0//f3
+ +P8uLz//DREq/yYmMf8qQmf/N4Dm/6XC5f/e2ND/kHLo/1wn/v9iLf//RSmc/zY1OP/Ky8r/////////
+ //+bpdP/AAAo/zZCiv9AUa//PVGy/ztEhP84Ol3/ODxm/11dbv9tam3/VlRY/zw6Pf8sKSv/GhoZ/yQk
+ I/9MSkv/bmxs/3p2dv91cXL/bWpr/2pmZ/9qZ2f/amZn/8zKz//Myc7/ysnN/8nGy//HxMn/x8PI/8XC
+ x//Oysf/p6jC/z5Pt/8+UbP/R1rG/01n8P9Pcf//TW3//0hn//9Laf//TGv//zxb6P8nO6//FSJx/xAX
+ Qf8RFCj/Oj5H////+v/q6u//Jic2/xAUJ/8rLjv/MzE0/1NXXP/HwsX/k3Px/1km+/9eLfn/ZS///1Io
+ 1P82MkD/ycrG////////////nKbN/wAAHv8zO33/QE+r/z5Qs/85RIX/ODpd/ztAav9PT1v/Q0A7/ygn
+ I/8NCwf/AAEA/yckJf9bV1f/dXBw/3Fvb/9taWr/aWZn/2lmZ/9qZmb/amho/2pmZv/PzND/z8vP/8vK
+ zv/LyM3/ycbL/8jFyf/Kxcj/ycbJ/1hluf87TrT/RlzL/zFGu/8aLYX/FiZ//xYnjf8XKJH/GSuN/xId
+ Zv8QFjz/FRor/yUoMP8vND7/LDE9/0RIUf/7+/r/5+fs/yUmMf8RFSP/LS85/z07QP89PTf/SkFl/1kq
+ 7P9iLf//Yy///1os6P89L2b/OTo2/8bHyP///////////6Goyv8AABj/LTZw/z5Npf9AT7L/O0WI/zk8
+ Xv89Qmr/Iytc/wwWTv8FDTT/DhAe/1VOR/90bm3/c25t/25qaf9saGn/bGdo/2pnaP9raGj/a2do/2to
+ aP9rZ2j/0M3Q/8/Mz//Mys7/y8jN/8rHzP/Ixcr/08/M/5ebwv83SbP/SFvC/yw+nf8CBR//AAAA/wAA
+ AP8AAAD/AgEC/xMUE/8jJCj/LzM7/zU5Qv83OUL/NzhA/zAwN/9ISlD//f38/+Xl6f8kJCv/FhUg/zAw
+ N/89PED/QUBD/zg6Nv89L2r/WSzk/1gs3v8+M2P/Ojwz/zw8Pv/Fxcf///////////+nrcj/AAAT/ygx
+ Zf89Sp//P02u/zxEh/85PF3/PT9j/yw7jf8kOqz/Jjmj/yAwiv9ERmz/cmxr/3NubP9vamv/bmpr/21o
+ af9saGj/a2do/2pmZ/9qZ2j/amZn/9DO0f/PzdD/zszP/8zJzf/Lx8z/y8fL/9LOzf9kcLv/O0+4/zxO
+ rf8HCy3/AAAD/wIABf8FBAf/FxcZ/y0vM/85O0H/PDxE/zk5QP85OUD/OzpA/zs6P/8yMTf/SktP//39
+ /P/k5Ob/IiMp/xcXH/8yMTb/PTw//0BBQ/9BQEP/PT85/zs0Uv87NVD/P0A6/z89QP88Oz7/w8TF////
+ ////////rbHH/wAAEf8kK1r/OkeW/z1Mqf87Roj/Oz1d/z5BY/8uPIn/Ijef/yQzj/8cKoX/FSJ0/0BC
+ Zf9wa3P/enRx/3Fsbf9vamz/bWho/2xoaP9sZ2j/cWxt/2xnaP/SztL/0M3R/8/N0P/Nys3/y8jM/9LO
+ zf+7usr/Sli3/0dYv/8mM3//BQcl/wQDCv8IBQT/FBMY/y0uMv87Oz7/PT1C/zw8Qv87O0H/PDtB/zs8
+ P/88Oz//NDQ3/0xNT//+/v3/4uLl/yEiJ/8ZGR//MzM3/z09QP9AQEP/QT9D/0JBRP9CQz7/QUM//0JB
+ Q/8/PT//Ozg8/8HBwv///////////7O2y/8BAhH/ICVQ/zdDjP88SqT/O0aJ/z0/X/9AQmT/MDyF/yEz
+ lf8iL4b/Gydz/xMeY/8jK17/PUJk/3hzeP+Dfnz/fXl6/4B6e/+Ef4D/iYKD/4+Kiv+JgoP/0s7R/9LN
+ 0f/Rzc//zszO/83Kzf/X0tD/pajH/zpMtf9GWLr/GyVp/wsQPv8KCRX/EA4O/xkXG/8tLjH/Ozs+/z4+
+ Qv8+PkL/PD1B/z0+Qv8+PkH/Pj1A/zY1OP9NTlH//v/+/+Li4/8iISX/Gxof/zMzN/8/PkH/QkJF/0FC
+ RP9CQUP/QUBC/z8/QP89PD3/ODU3/zAvMf+8vL3///////////+4usv/BAQQ/xwgSP80PoT/Okee/ztG
+ if8+QF//QEFg/zlIl/8uSsT/Ii+G/xcfXv8QGlX/KTBf/y40Xv9ycIH/q6aj/6Sfn/+moKH/qqSl/6um
+ p/+uqan/q6an/9TO0P/Tzs//0s7P/9HNz//PzM7/2dTQ/5WaxP85TLf/QFCw/xkjZ/8OF07/ERIn/xwZ
+ Gv8gHSD/Ly4w/zw8Pv9AP0P/Pz5C/z4+Qf9AP0L/Pz5A/0A+Qf84Nzn/T05R///////h4eL/ISEj/x0c
+ IP81Mzb/Pz5B/0JBRP9AP0D/PDs8/zk3Of80MzX/MS8y/y4rLv8lIyX/tba2////////////vb7N/wcH
+ Ef8YGz//MDl6/zdDk/88Rof/P0Bh/0NFYv8xQ5H/FTCa/w8bVv8UGkv/DxdN/ygvXv83PWf/fHuQ/8fB
+ vv+/urr/vbe4/723uP+8trf/vbi4/7y2t//Tzs7/083O/9HNz//Rzc7/0czN/9vVz/+Sl8P/Ok23/z5O
+ qv8ZI2f/DxlW/xMVLf8gHR3/Ih8j/zAuMP88Oz7/QEBE/z8/Qv8/P0L/QD9C/0E/Qf9BQEL/OTc7/1FQ
+ U///////4ODg/yAgIv8eHSH/NTM2/zs5Pf86ODv/NTQ2/zIxMv8vLS7/LSwu/yYkJf8VExT/Hx0d/7q5
+ uf///////////8LD0P8JCRH/FRk5/y01cf8zPor/O0SD/z5AYv9CRWv/NThW/yglLv8PECn/EhpP/w4W
+ S/8nLl3/Nzxm/319k//Rysj/x8HC/8W+wP/Dvb//wr29/8O+vv/Cvb3/083O/9LMzf/Szc7/0czN/9HM
+ zf/c1dD/kZbD/zxPt/89TKj/GSFj/xAaVv8VFi//IR4d/yQhI/8yMDH/PT1A/0BBQ/9BQEP/QUBD/0JB
+ RP9DQUP/QkFD/zk5PP9SUlX//////9/e3/8gHyP/Hx8j/zQyNf80MjP/MzEz/yooKv8gHh//ICAf/yAh
+ If9ISEj/gYCA/7Ozsv/29vb///7////////Gx9P/CwoS/xIWNP8rMmz/MDl//zhBf/8+QWL/KS1W/5CR
+ pf////7/T1Jn/wcPSP8OFUr/Jixb/zc8Z/97fJL/1M3K/8rExP/HwMH/xsDA/8W/wP/GwMH/xsDB/9PO
+ zv/Szc7/0czN/9HMzf/SzM3/3NXP/46Twf8+T7j/Pkum/xkgXv8RGlT/Fhgv/yIfHv8lIiT/MjAy/z8+
+ Qf9BQUT/QkJE/0JCRP9DQkT/Q0JE/0JBQv84Njn/UE9Q///////f3t//ISEk/x8fIv8tLC7/IiAh/xgW
+ GP80NDT/VlZW/4uLiv/W1tb/9vb1///////////////////+////////zMzY/w4NE/8PEi//KTBn/y41
+ dP83P3v/PkFj/yksVP+TlKv//////09RZP8GD0f/DhVL/yQqWf83OmT/eXmQ/9bPzf/KxMX/x8HD/8bA
+ wf/Fv8D/x8HB/8fBwf/Tzs//08zN/9HMzf/Sy83/0szN/9vVz/+Kj8D/QE+3/zxKov8XH1r/ERpT/xcY
+ Lv8jIR7/JSMl/zMwMv9BPkH/Q0NF/0JCRP9BQEL/Pz4//z07Pf86Nzn/LSos/0VDRP//////2djZ/w0N
+ Ef8WFRj/OTg5/3Bwcf+vsK//2drZ//////////////////X19//S1dj/lpyj/9HT1v///////////9HR
+ 3f8RERj/DhEu/ycuY/8sM2z/NT54/zxAY/8nK1P/kJOp//////9SU2P/Bg5A/w0WSv8iKVf/NDhi/3V1
+ jf/X0M//ysTG/8jDxP/HwcL/xr/A/8jCwv/IwsL/1M7P/9LNzv/RzM3/0cvN/9LNzv/c1dH/iI3A/z9Q
+ t/88SaD/Fx5X/xIaUv8YGSz/JCMf/yckJv8yLzL/Ozk7/z08Pv87OTz/NjQ2/zQyNP8zMDL/LCkr/xgW
+ GP86ODn//////+Li4v98fHz/sbGx//v7+//////////////////n6Ov/ur/E/5idpf9lbXf/Q01W/ywy
+ PP+0trn////////////U1eH/FhUc/xAULP8oLmP/KzFn/zM7dP86PmL/JypS/42Ppf//////VVVl/wUL
+ PP8NFEj/ISdV/zQ4Yv9xcov/1c/O/8vFxv/Jw8P/x8HC/8e/wP/JwsL/ycLC/9XQ0P/Uzs//0szO/9LM
+ zv/Tzc7/3NXQ/4WKv/8+Ubr/O0ie/xYeVf8SG1T/GBos/yYkIf8nJif/LSwu/zAvMf8yMDL/Ly0v/ysq
+ LP8kIyT/GBcY/zAuL/9QT0//lpWW//7+/v/////////////////19vf/19nc/6arsf9wd4D/TVNb/yow
+ OP8XGyH/FRUZ/w0NEf8HBQv/qqqs////////////2dvn/xgYIf8MDij/Jy5j/ykvYv8xOXD/OT1h/yUo
+ UP+HiqD//////1ZVZf8DCTb/DBNG/x4kUf8zN2D/bm+H/9XOzf/Mxcf/ysLE/8fAwf/HwMH/yMLD/8jC
+ w//Vz8//0s3N/9LMzf/SzM3/083N/9zVz/+AhsD/P1G6/zpHnv8XHlT/FR1Y/xobLf8nJSL/Kigq/y8t
+ L/8qKCn/HRoc/yMhIv8tLC3/XVtc/6Ghof/S0tH/////////////////6enp/5WWl/9ucXb/Vltj/zA2
+ Pf8bHyX/Dg8T/wMDBf8CAAD/CAYI/w0LD/8NCg7/Dw4S/7Gys////////////+Dh6/8cHSf/CQwm/ygu
+ Y/8nLV//LjZq/zc8YP8jKE7/goab//////9ZV2T/AQYy/w0URf8dI1H/MjZe/2lrgv/Wzs3/zMXG/8rC
+ w//HwMH/x8DB/8nCw//JwsP/1M/O/9LMzf/Qy8z/0czM/9HNzf/b1M//foS+/z9SvP84Rpv/Fh1U/xYg
+ X/8ZGy//IiAd/x8dH/8YFhf/NzY3/2tpav+fnp7/6+vr/////////////////8DDyP/FyMv//////6+v
+ r/8AAAD/AAAA/wAAAP8DAQL/AAAA/wYDBP8QDg//GxkZ/yMiI/8mJin/ISAm/ystMf+8vb3/////////
+ ///m5/H/ICAs/wgKIv8nLmP/Jyte/ykxYv8zOVz/IydN/36Bl///////Wlll/wAGLv8NFEX/HCJO/zE1
+ W/9kZX7/1s7N/8zFxf/JwsP/xsDC/8e/wf/IwsL/yMLC/9TOz//Szc3/0MvM/9DMzP/RzMz/2tPO/3qD
+ vv9AVL3/OEeb/xgfV/8KFFD/EhQl/ywpJ/9cWFn/r6ur/+Tk5P////////////Pz9f/T1tr/kZae/2Rr
+ c/8qMTn/fH6C//////+urq7/AAAA/wYEBv8AAAD/Dw4O/zc2Nv8wLy//VlVX/2NhZP8zMjP/ERAU/ygo
+ L/86PEH/uru8////////////7O32/yMkL/8GCB//Ji1h/yUrW/8mLl7/MTZa/yImS/94e5L//////11b
+ Z/8ABCv/DBNE/xogSv8wNVn/X2B6/9TNzP/MxcX/yMHC/8W/wP/GwMD/yMHC/8jBwv/UztD/0s3N/9HM
+ zP/RzMz/0szN/9rUzv92f73/PlK7/ztLpP8ZI17/R0VS/3Jsaf+ak5D/8efo///////+/v7/xcfL/5aa
+ of9iaHD/NTxE/yElKv8REhf/AAAA/3Fwb///////r6+v/w0NDf8gHiH/bWxt/1VTVf9UU1T/Q0JE/z89
+ QP9EREf/Z2dq/xkYHP8nJi3/LS41/7S1tv////////////Dy+v8nJzP/BAYb/yQqXf8jKVn/Ji1d/y80
+ WP8hJUn/cXWM//////9fXGj/AAMp/w0TQv8YHkj/LzNY/1pbdv/Ty8v/ycLD/8bAwP/Fvr//xr6//8jB
+ wf/IwcH/1M/Q/9POzv/Rzc3/0cvM/9LMzf/a087/c3y9/0BSvP84SKD/DhhI/42Jkf+zqab/hH5+/4+J
+ i/95fYP/UVde/zU6Qf8YGyD/CwsP/wMBBP8AAAD/DgsM/wQCA/93eXf//////8HAwv9QT1L/PTs+/01M
+ Tv9MS07/aWls/0lLUP9xdXv/cXmC/1lhaf8uMDb/ISEm/yQkK/+wsbL////////////29/7/Kys4/wID
+ F/8iKVv/IidW/ycuYf8tM1j/ICNH/2tuhv/+////YF5p/wABJf8ME0D/FRxF/y4yV/9VVnL/0crJ/8jC
+ w//HwMH/xb/A/8W+v//HwMH/x8DB/9TO0P/Uzs7/0s3N/9HLzP/Rzcz/2tPO/3B5vP9AU7z/OUeg/xAZ
+ R/85OD//MS0s/w8ODv8AAAD/AAAC/wUFCf8CAAH/AgAA/wEAAf8lJCT/NzU1/zs5Ov+BgIH/mZqa//X1
+ 9f+BgIL/Tk1R/zw9QP91eH3/ZGtz/3qCif9WX2f/MzhB/yUoL/8bHSH/ICAk/y0tMf8yMzn/tbW2////
+ ////////+vv//y4uPP8AAhT/ICdX/yEmVP8pMGf/LTNZ/x8jRf9kaID//f3+/2NhbP8AACP/DBI+/xQZ
+ Qv8uMlb/T1Ft/9DJyP/IwsL/xb7A/8W+wP/Fvr//xb/A/8W/wP/Uzs//087N/9LNzf/SzM3/087N/9vU
+ z/9rdrv/QlO9/zhFnv8UG0v/AAAB/wAAAP8AAAD/BQMD/w0MC/8bGRr/IB4f/0hHR/94eHj/S0pL/21r
+ bf9EQ0X/PDs+/9LR0v/8/Pz/SUlK/1NUVP8XGRz/Gh0h/yktNP8cHyb/Gxsf/yEgJP8pKSv/MjE0/zs6
+ PP8+PD//Nzc6/7a2tv////////////7+//8yMUD/AAAR/x0kU/8gJVL/KjR0/y40Xv8fI0P/YGN8//v7
+ /f9mZG//AAAf/wwRO/8SFj7/LDBU/0lLaP/Ox8f/xsDB/8S+v//Evb//xL6+/8W/v//Fv7//083O/9PN
+ zf/Szc3/0szN/9POzv/c1M//aHO7/0NWwf8zQZP/DBE3/wgHF/8CAQD/BgYG/xoZHP8oKCn/YWFh/2Jg
+ Yv84Njn/YV9h/2NjZv9fYWb/mZ6j/2pweP/l5+j//////xYWFv8AAAD/AwIB/wkHCP8hISb/MzM4/z08
+ P/9AQUP/QkJF/0NDRv9CQkT/Pz5B/zc2OP+1tbX/////////////////NTVE/wAAEP8bIVD/ICZU/y46
+ g/8vNWL/ISRD/1tedv/6+vv/Z2Vw/wAAG/8NETj/EBU7/youUf9ERmT/zMXF/8bAwf/Evb//w72+/8O9
+ vv/Evb//xL2//9LMzf/TzM7/0czN/9HLzf/TzM3/2tLO/2Vwuv9EV8L/NECO/wcMLP8KCyH/CAcI/xEP
+ Ef8lIiT/MTAy/zEwNP9vb3T/h4uR/1ddZP9+hI3/V19p/y81P/8/Qkn/5+fo//////8fHh//BQQG/xsa
+ Hv8qKCz/QUBE/0VFR/9DQ0b/Q0NF/0JDRf9BQkT/QUBC/z07Pf8vLi//rq+u/////////////////zg3
+ R/8AAA7/GiBM/yAnW/8yQJL/MTdm/yIkQv9VWXH/+Pn5/2hnc/8AABj/DRE2/w8TOv8oLE//QEJg/8rE
+ wv/GwMD/w72+/8K8vf/Cu7z/xb2+/8W9vv/Tzc7/0szN/9DLzP/Qy8z/0czM/9nRzv9jbrn/RVnC/zNA
+ jf8JDjH/Cw4q/xIQGf8aGBr/JSMk/zg3Of9ISUz/UVZb/0pQVv8wNT3/HiAo/x4eJP8bGyD/Pj5B/+rq
+ 6v//////IR8g/w0LD/8fHyL/LSsu/0BAQv9EREb/QkFD/0A/Qf8+PD3/ODc5/zQyNP8sKy3/GRgY/6Sk
+ o/////////////////83N03/AAAM/xkfS/8mLnD/OUmo/zE5av8iJD//UlZs//j4+P9paXb/AAAV/w0Q
+ M/8OFET/JytQ/z0/W//GwMD/xb/A/8O8vf/BvLz/w7y8/8S+vv/Evr7/0czN/9DLzP/Py8z/0MrL/9DL
+ y//Yz83/YGq5/0lYw/8yP4z/CxA6/wwRM/8WFh3/Hxwd/yckJv89Oz7/Pj4//z47PP8qKi3/JSUp/zMz
+ Nf88Oz7/ODc6/1FRU//s7Ov//////yEhIf8SExb/JCIm/yooK/86Ojv/PDs9/zc0Nv8vLi//Kicp/yAe
+ If8VExX/FRIU/ycnJ/+ztLL/////////////////OkBf/wAAB/8bIlj/MkKZ/z5Rtv8xOWz/ISM9/01R
+ Zv/29vb/aGd2/wAAEv8MEDP/ERpX/yQrVf85O1b/wbu9/8bAwP/DvL3/wry8/8K8u//Fvr3/xb69/8/K
+ y//Qysv/z8nL/8/Jy//Qycv/1s7M/11ouf9HWMH/MD2J/w4SP/8NEzn/Fxgf/yEfH/8oJij/Pjw+/0JC
+ RP9CQET/QkJE/0NDRf9DQkX/QUBD/zo3O/9QUFL/6+vr///+//8iISP/FhcZ/yooK/8rKCv/KCYo/x0b
+ Hf8aGBr/JCIj/ysqK/9NTU7/hoWG/6yrrP/U1NT/+fn6//7+/v///////////05Wdv8AAhj/LTqM/z1S
+ tP89ULf/Mjlq/yMkOv9JS1//8/P0/2Rnd/8AAA7/DBE3/xQgZP8jKlf/NjhU/764u//GwMD/wru8/8G7
+ u//Cu7v/xb69/8W+vf/Pycr/zsnK/83Iyf/Ox8n/z8nJ/9XOy/9ZZbn/RlXA/y86hf8PFD//DxU+/xka
+ If8hIB//KSgo/z48P/9CQkX/QkBE/0JBRP9BQUT/QkJE/0JBQ/88Ojz/U1JV/+vr6///////KCYp/woJ
+ C/8dGx3/HBob/zo4Of9iYWL/gYCC/7a2tv/n5+f/+Pj5////////////////////////////////////
+ //9kbI3/EhpW/0BTuv8/ULP/P1O4/yEoUf8XGCz/Q0RV//Hx8v9iZnj/AAAN/wwSO/8WI2//Iitc/zQ2
+ Uf+6tLj/xsDA/8C7u/+/ubn/wbq6/8S8vP/EvLz/zsjJ/87Hyf/Mx8j/y8bH/87HyP/Ty8j/VmO5/0VU
+ wP8vOIL/DhQ+/w8WQf8ZGiP/IyAf/yooKf8/PkD/Q0RG/0NDRv9EQ0b/Q0NG/0FAQv8+PD7/Lywu/zg3
+ OP/i4uL//////11cXv9XV1j/oqKi/8nJyf/h4eL/////////////////////////////////////////
+ /////////f39/93d3//Dwrz/UVh9/zFCpf8/ULb/PlC1/zxOrv8UGDT/Cgwi/y4vPv/r6ur/YWR5/wAA
+ Df8OE0D/GSh7/yMtZP8wMkz/tK+y/8XAv//AuLr/v7i5/7+4uf/Burv/wbq7/8vHx//Lxcb/ycTF/8rD
+ xf/MxcX/zsfF/1Rhuf9FVcH/LziA/w8UP/8PFkH/GRoi/yIhIP8sKiv/QUBD/0RERv89PD7/Li0w/yIh
+ I/8hHyH/IiAi/ygmKP9gX2D/6Ojo////////////////////////////////////////////////////
+ ////////9fX2/9jY2f+foKL/c3V5/05OUv8WFBD/BAYT/zNCmf9CVb3/PU6x/0JVv/8uOob/Dg8f/woM
+ If8jIy3/5+fl/1xie/8AAA3/DxVH/x0th/8jLmn/LC9G/66prf/Fvr7/vre5/763uP++uLj/v7m5/7+5
+ uf/LxMX/ycPD/8fCw//HwcL/ycLC/8nDwv9RYLn/RFbB/y03gP8QFUL/DxZE/xcYIP8fHh3/Hhwd/yIh
+ Iv8ZGBj/JSMj/0RDQ/9iYmL/jo2O/8rJyf/q6ur/+/v7///+/v/+/v7/////////////////////////
+ ////////3Nvd/7W1uP+TlJf/WVpc/yQkJf8SEA//AwIA/wAAAP8AAAD/EhQs/zdHnf9CVsD/PlCy/z1R
+ tf9BVb//GyBK/wwLF/8GCRz/KCYp/+bm5P9dZYP/AAAO/xAXTv8hNJf/JDJx/ykrQf+ppan/xL6+/7y2
+ uP+8trf/vLW2/722t/+9trf/yMHC/8fAwf/Ev8D/xb6//8fAv//Gv8D/Ul+5/0RXwP8sOYL/ExpO/w8X
+ TP8YGB//Kykn/0xISf9/fX3/s7Kx/8vLyv/w8PD///////////////////////////////////////79
+ /v/k5OX/z8/R/52eoP9kZGf/Q0JF/yMhIP8AAAD/AAAA/wAAAP8LCQ7/EhMi/yAkR/8tNmz/N0SQ/0JU
+ uf9BVr7/PlCz/z1Ps/9DVsH/Lz+Q/w0KE/8LCA7/ODtE/6usrP/8+/r/c3eQ/wAAC/8SG1z/K0Gw/yc1
+ ef8lJz3/paGm/8S9vf+8tbb/u7S2/7qztP+8tbX/vLW1/8S+v//Evr//wry9/8K8vP/Evrz/wLq9/09e
+ uv9EV7//LjuI/w8YWP81Omf/cmxq/4uFg//n3+D///////////////////////////////////////z8
+ /f/Z2Nr/o6Sn/31+gv9TU1T/Hh0b/wEBAP8CAQD/AAAA/wEAAv8RFCf/ISdN/y42bf81Qor/PU2l/0JU
+ u/9DVL7/QlO//0FUv/8+ULf/PlGz/z5Qtf9AU7j/PU62/xQdVP8HCSb/BQcW/6+ztP/m6ev/7u/y/2pv
+ hv8AAAj/Gid5/zNLwv8pNn//IyQ6/6Ccov/DvL3/urO0/7qztf+5s7T/urS0/7q0tP/Bu7v/wby8/8C6
+ u/+/urv/wry6/7u2vP9MXbn/RVW//zdEl/8aJGf/QUVx/5SJhf+KgoH/1c3N////////////8/P0/9HQ
+ 0/+1tbf/ioqM/1NSU/8oJyb/FhQQ/wEAAP8AAAD/AwQN/xIWK/8hJkn/LDRr/zZEj/9AUqv/Q1a5/0ZY
+ wv9HWsj/RVjC/0FUu/8+ULX/PlCz/z5OtP8+T7P/PlC0/z5Rtf8/Urf/QFG5/yEwiP8VH2H/AgtM/05W
+ fP/JzM//fIGM/9LU2f9xc4P/AAAT/yM1mP84UM3/KziD/yEiN/+alp7/wry8/7mytP+4s7T/uLGz/7my
+ s/+5srP/v7i5/7+5uf+8uLj/vbi4/8C5uP+7trr/TF25/0BSvP9EVLL/Nz+B/0NLfP+ZlqT/eHR4/2Jd
+ Xv9kY2X/UU9N/zIxKf8ODAX/AAAA/wAAAP8EBAr/DxAj/xwjSv8sNXH/OEaR/z9Opv9DVLn/R1jG/0RV
+ wv9CVb//QVW8/0BTuf9AUrf/QFK2/0BStf8/UbX/P1C0/z5QtP8/UbT/P1G1/z9Rs/8+T7P/O062/yc7
+ o/8cLIf/Dx99/yYyg/+kqbj/n6Cl/0lLV//a293/c3WC/wAAIf8sQbP/OlPS/yw5h/8gITX/lpKa/8O8
+ uv+3srP/t7Ky/7ewsP+4sbH/uLGx/7y1tv+8trb/urW1/7m0tf+7tbX/wbi0/1llvP8/Ubr/RVe//0VT
+ qP9ncqb/c3qb/wICC/8AAAD/AAAA/wABEP8PFTT/ICdU/y45df83RpL/QVGv/0ZXwP9FV8H/RljF/0VZ
+ xP9CVb3/P1K4/z9QtP8+ULT/P1G2/z9Qt/8/ULf/P1G4/z9Rtv8/UbP/Pk+x/z1Psf8+TrH/PE+w/zxP
+ tf8/U8D/OlDE/y1Euv8kOav/FCqg/yw9o//AxeH/p6eq/4qJkP86OUL/19fa/3R1gf8CCUP/OFDS/zhS
+ 0P8rOYn/HR0v/4+MlP/Burn/ta+v/7Wvr/+0ra7/trCw/7awsP+3sbL/uLKy/7aysv+2sLH/trCw/761
+ rv94fbr/Ok2+/0ZXu/9EVr//Rle7/0lTpP8wOnf/NUST/0BQrP9DVbf/RVfB/0hbyv9FWMf/Q1bC/0NV
+ vv9CVbr/QVO4/0BRuP9BUrf/PlG2/z5Rtf8/UbX/PlC0/z5Os/88TbH/PEyx/z1Qs/8/Urn/QFbB/0JY
+ yv9FWtb/R1/j/0pj6P9OZOX/RVvW/zRMxf8uRsb/MUjF/1pryf/V2fP/9Pb9/5KVnv+Mi5D/NzdA/8rK
+ zP93eIb/EyOC/ztV2P84Uc//JDJ+/xAQH/+Jho3/v7m3/7Ksrv+xrK3/sKqs/7KsrP+yrKz/s62u/7Kt
+ rf+yra3/squt/7GqrP+4sKn/oJ6x/z9Swv9DVb3/RVe9/0JUvv9CVcL/SFzK/0dbyP9FWcX/Q1bA/0JT
+ vf9AUrn/P1G5/0BSuP9CU7n/QVO4/z9Stv89T7P/PU6x/z1Psv89T7T/Pk+1/0JVv/9EWc7/SF7d/01m
+ 5f9LZeH/Rl3d/0Vd2v9KXsj/SFqt/0lXlP9KU3z/U1t2/2Vref94e4v/ipC9/6yy3//g4vP/6uz8/97i
+ 9f+Rkpn/jY2R/zU2QP++vb7/eX2Y/yE5tf83T8r/OVHP/xwkX/8RDxr/lpKX/7izsv+vqar/rqiq/62n
+ qf+vqaj/r6mo/62nqP+uqKn/raip/6ynqP+tpqf/rKam/7eupP90fL3/N03G/0NVvv9EVr7/Q1a9/0JU
+ vv9CU77/QVO8/z9Ruf9AUrr/QFK4/z5Rt/8/ULb/PU+1/z5RvP8+U8f/PlTN/z9W1f9FXdz/Tmbh/1Bp
+ 7P9OaOz/UWbR/1Bhtf9EU5D/Tlh//1pgdP9laGz/cnFv/4aGf/+aloz/rqqh/7ezrf+9urX/vrq7/76+
+ y//Extn/u77T/8bI3P/W2ef/rqyy/56dpP9FRlD/trax/4CN2P8oQMj/Nk3H/zhPyv8ICST/HRof/6+q
+ qf+uqKj/rKWn/6qkpv+poqT/q6Wl/6ulpf+noqL/qKGi/6iio/+ooqP/qaKj/6ehov+qo6H/rqel/214
+ vv87Usj/OE7D/z1Svv8/ULv/PU67/z5QvP8/U8H/P1bJ/0BX0f9AWd3/RF/n/0tl6f9Sa+n/WW/p/2R4
+ 5P94htn/b37W/0Bc5/9EXOL/HC2M/w8RKv8XFxf/lJKQ/766tf/Bvbv/0MvN/9XQ0v/Py8z/yMPH/8C8
+ wP/AvsL/w8DE/8HAy//Bxdf/vcHP/8PHz//Q0dT/0NDR/8zPzP/Cwrz/aWlj/ztGcf89Vc7/M0vF/zpR
+ 0P8rPJj/AAAB/1VRU/+xrKr/p6Gi/6ehov+moKH/pp+g/6ehov+noaL/opyc/6Gcnf+inJ3/opyd/6Kc
+ nf+inJ3/opyd/6aem/+so53/ioyt/2dzv/9TZtH/SWHf/0lj5f9LZen/UWnu/1xy7P9pe9//dYHQ/4KJ
+ wf+Mj7X/lZOp/56Xnf+jm5T/r6ON/4iIo/8uStX/QVnd/xwrh/8AACD/KCgy/+nm8v/38vn/5uHp/9zZ
+ 3//V0tb/0c/S/9TS1f/b2dj/ycrK/73Awv+ztLj/n6Ch/4yNjf95en3/aWt5/1leeP9IUHf/NUB2/zA9
+ g/8iN6n/LEO8/zZOxf84Tsb/DRhc/xgZN/+blZT/p6Gh/6Gcnf+inJ3/o52e/6Kbnf+jnZ3/o52d/5yW
+ lv+blZX/m5WW/5uVlv+blZb/m5aW/5yWlv+alZX/nJWV/6Wbkf+knZf/nZic/5OTq/+Lj7f/jo6t/5WR
+ nf+Zkpb/m5OR/52Vi/+flYf/nZSJ/5iRif+Vj4v/lI6N/5yUiv+BgZ//NE/U/0BY3v8xRLT/AAAq/11a
+ Vv/o49//sqyq/42KiP9vbWv/YF9f/1RVXf9ZX3D/XGN7/0tTdv85RHf/M0GB/zdGkf85S6T/OEyz/zNI
+ uf8nPbn/Jju6/ypBxf8tRcn/MkjC/zRJwf80TMb/ITaj/xMhc/97eIv/qaKe/5yXmf+dmJn/n5iZ/5+Z
+ mv+emJr/n5qa/5+amv+Ujo7/k46O/5OOjv+UjY7/lI6O/5WPj/+Vj4//lI6N/5ONjf+UjY7/k46N/5SO
+ i/+Xj4r/mJCH/5aOh/+TjIf/kYuH/4+Jhv+NiIf/jIeH/4yHh/+Mhob/jIaG/42Ih/+Ri4X/h4SS/z5W
+ 0f86Udf/QVjd/yY2lP8sMFD/NTpe/xYgVv8OHGH/EiN0/xgrh/8gNJ3/HzSl/x4zqf8mPbz/L0jO/zZQ
+ 1/86VNr/OVHW/zdO0P8zScv/MkjI/zFJxv8wR8P/MEfC/zJHxP80S8r/KUTF/yxBqP95eJX/pZ2W/5qU
+ lf+alZX/m5WV/5uVlf+blZX/mpSV/5uWlv+blpb/jIaF/4uFhf+KhYX/i4aF/4yFhf+LhYX/jYaG/4uF
+ hf+LhoX/i4aG/4qFhP+KhYT/ioSE/4mEhP+IgoP/iIOC/4iCgv+HgYH/hYGA/4aAgP+HgYH/hoCA/4eB
+ gP+HgoL/h4GC/46GfP9XZb3/NE7c/z1U0/9BWN7/OVHZ/zNM1f85U9//O1Ti/zpU4f86VOD/O1bd/zxU
+ 2f86Utb/OFDT/zZN0P8yS8//MUrP/zNL0v82Ttf/N1Da/zpU2/87Vd3/Plfg/0Ba4P9CW+H/Sl/T/19q
+ sP+JhpH/nJSM/5SOj/+Vj4//lI+P/5WPj/+WkJD/lpCR/5WQj/+WkZD/lpGQ/4N9ff+BfXz/gX18/4J9
+ fP+CfX3/gn19/4J8ff+CfXz/gn18/4J9fP+BfHz/gn18/4F7e/+Be3v/gHp7/4B7e/+Be3r/gHt6/397
+ ev+Ae3v/gXt7/4F7ev9/e3r/gHx7/4B6fP+DfHb/e3iF/0NY0/81T+D/OVDV/zhP1/83TtX/N07V/zhQ
+ 2P86U9z/PFbg/zxY4/89Wej/QFvt/0Nf8f9HYev/S2Pk/09m3v9Wadn/XWzT/2Jwy/9odL7/b3ez/3Z6
+ qf99gJ//goKV/4eCif+SioD/kYuF/42Jiv+Pior/j4qJ/4+Jiv+Qion/kYmK/5CKiv+Pion/kIqJ/5CK
+ if94dHP/eHNy/3dzcv94dHP/eHNz/3hyc/94c3P/eHNy/3hycv93c3L/eHNz/3hycv93cnL/d3Jz/3hy
+ c/94cXL/eHJx/3hzcv93cnL/eXNz/3l0dP95dHP/eXR0/3l0c/95dHT/eHNz/3x2bf90cX//VmO+/0de
+ 5P9HYOz/SmLr/0tk5v9OZuT/U2je/1tt0v9gb8X/ZnC2/2xypv9vcpr/cnOP/3V0h/94dX7/e3V2/353
+ bv+Demz/hHtu/4R8cP+EfXP/hH11/4eAef+HgHz/hoCA/4aBgf+JhIP/ioWE/4mEg/+JhYT/ioWE/4mD
+ g/+IhIL/iIKC/4iCgf+IgoH/bmlo/25oaP9sZ2f/bGhn/2xnZ/9tZ2f/bmhn/2xnZv9rZ2f/bWho/21o
+ aP9taGj/bmho/21paf9uaWn/bWhn/25paP9vamn/bmlp/29qav9va2r/b2tq/3Bra/9wa2v/cGpr/3Bq
+ a/9va2v/dG1m/3VuZP9vbnv/aW2S/2ltjf9tbX3/cGxv/3Juaf90bmj/dW9m/3duZP93b2P/d3Bj/3dv
+ Zf92b2j/d3Bq/3VwbP91cG7/dnFx/3hycv94dHP/eXV1/3p2dv96dXb/fXd3/355ef+AeXn/gHt7/4B7
+ e/+Be3z/gHt7/397ev9/enn/fnl4/314d/99eHf/fXh3/2FcW/9gXFz/Xlpb/2BcW/9gXFz/YFtc/2Ba
+ W/9fW1v/X1tc/2BcXP9fXFz/YFxd/2FdXf9iXV3/Yl1d/2FdXv9hXl7/Yl5e/2NfX/9kX1//ZGBg/2Vf
+ YP9kX2D/ZF9g/2VfX/9lYGD/ZWFg/2VgYf9lYF//Z2Fc/2hhWP9oYVj/aGNc/2hjYP9oZGL/aGRj/2pl
+ Y/9qZGP/amVk/2tmZv9qZmb/amZm/2tmZv9sZmf/bWdn/21oZ/9uaWn/b2tq/3FsbP9xbGz/cWxs/3Nu
+ bv90b27/dXBv/3Nubv9zb27/dG1u/3Jtbf9xbWz/cGtq/25paP9sZmf/a2Zl/2tmZf9TT07/Uk5O/1BN
+ Tv9STk7/UU5O/1JOTv9RTUz/UU1M/1FNTf9RTk//Uk9P/1NPUP9UUFD/VlFR/1ZSUv9WUlL/VlJS/1ZS
+ Uv9VUlL/VVJR/1VTUv9WUlL/V1JS/1ZSU/9WUVL/VlJS/1ZTU/9XU1P/V1NT/1dSVP9XU1X/V1NU/1dV
+ Vf9ZVVb/WVZW/1tVVv9cV1f/W1dX/11ZWf9eWlr/XVpZ/15aWv9fWlr/X1ta/2BbXP9hXVz/YV1c/2Je
+ Xf9jXVz/Yl1d/2NeXf9lXl7/ZWBf/2RfXv9iXl7/Y15e/2JdXf9hXFz/YFta/1xXV/9aVVX/WFRT/1hU
+ VP9YVFT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
@@ -859,7 +646,7 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
\ No newline at end of file
diff --git a/toBottom.png b/toBottom.png
new file mode 100644
index 0000000..db2ce58
Binary files /dev/null and b/toBottom.png differ