diff --git a/CDisplayTable.cs b/CDisplayTable.cs
deleted file mode 100644
index 5f28270..0000000
--- a/CDisplayTable.cs
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/Classes/CSQLiteDB.cs b/Cell-by-Cell and DB/CSQLiteDB.cs
similarity index 100%
rename from Classes/CSQLiteDB.cs
rename to Cell-by-Cell and DB/CSQLiteDB.cs
diff --git a/Cell-by-Cell and DB/FormForModelsHistory.Designer.cs b/Cell-by-Cell and DB/FormForModelsHistory.Designer.cs
new file mode 100644
index 0000000..7bcd752
--- /dev/null
+++ b/Cell-by-Cell and DB/FormForModelsHistory.Designer.cs
@@ -0,0 +1,213 @@
+namespace HCSAnalyzer.Cell_by_Cell_and_DB.Simulator.Forms
+{
+ partial class FormForModelsHistory
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormForModelsHistory));
+ this.listViewForClassifHistory = new System.Windows.Forms.ListView();
+ this.columnHeaderModelName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderNumFolds = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderMeanError = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.buttonOk = new System.Windows.Forms.Button();
+ this.richTextBoxModel = new System.Windows.Forms.RichTextBox();
+ this.tabControl = new System.Windows.Forms.TabControl();
+ this.tabPageModel = new System.Windows.Forms.TabPage();
+ this.tabPage2 = new System.Windows.Forms.TabPage();
+ this.richTextBoxCV = new System.Windows.Forms.RichTextBox();
+ this.splitContainer = new System.Windows.Forms.SplitContainer();
+ this.tabControl.SuspendLayout();
+ this.tabPageModel.SuspendLayout();
+ this.tabPage2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
+ this.splitContainer.Panel1.SuspendLayout();
+ this.splitContainer.Panel2.SuspendLayout();
+ this.splitContainer.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // listViewForClassifHistory
+ //
+ this.listViewForClassifHistory.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.listViewForClassifHistory.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeaderModelName,
+ this.columnHeaderNumFolds,
+ this.columnHeaderMeanError});
+ this.listViewForClassifHistory.FullRowSelect = true;
+ this.listViewForClassifHistory.GridLines = true;
+ this.listViewForClassifHistory.Location = new System.Drawing.Point(3, 3);
+ this.listViewForClassifHistory.MultiSelect = false;
+ this.listViewForClassifHistory.Name = "listViewForClassifHistory";
+ this.listViewForClassifHistory.Size = new System.Drawing.Size(287, 426);
+ this.listViewForClassifHistory.TabIndex = 10;
+ this.listViewForClassifHistory.UseCompatibleStateImageBehavior = false;
+ this.listViewForClassifHistory.View = System.Windows.Forms.View.Details;
+ this.listViewForClassifHistory.SelectedIndexChanged += new System.EventHandler(this.listViewForCellPopulations_SelectedIndexChanged);
+ this.listViewForClassifHistory.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewForCellPopulations_MouseDown);
+ //
+ // columnHeaderModelName
+ //
+ this.columnHeaderModelName.Text = "Name";
+ this.columnHeaderModelName.Width = 101;
+ //
+ // columnHeaderNumFolds
+ //
+ this.columnHeaderNumFolds.Text = "CV Num. Folds";
+ this.columnHeaderNumFolds.Width = 84;
+ //
+ // columnHeaderMeanError
+ //
+ this.columnHeaderMeanError.Text = "Mean Error";
+ this.columnHeaderMeanError.Width = 94;
+ //
+ // buttonOk
+ //
+ this.buttonOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonOk.Location = new System.Drawing.Point(488, 437);
+ this.buttonOk.Name = "buttonOk";
+ this.buttonOk.Size = new System.Drawing.Size(106, 23);
+ this.buttonOk.TabIndex = 11;
+ this.buttonOk.Text = "Ok";
+ this.buttonOk.UseVisualStyleBackColor = true;
+ this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click);
+ //
+ // richTextBoxModel
+ //
+ this.richTextBoxModel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.richTextBoxModel.Location = new System.Drawing.Point(3, 3);
+ this.richTextBoxModel.Name = "richTextBoxModel";
+ this.richTextBoxModel.Size = new System.Drawing.Size(274, 394);
+ this.richTextBoxModel.TabIndex = 12;
+ this.richTextBoxModel.Text = "";
+ //
+ // tabControl
+ //
+ this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tabControl.Controls.Add(this.tabPageModel);
+ this.tabControl.Controls.Add(this.tabPage2);
+ this.tabControl.Location = new System.Drawing.Point(3, 3);
+ this.tabControl.Name = "tabControl";
+ this.tabControl.SelectedIndex = 0;
+ this.tabControl.Size = new System.Drawing.Size(288, 426);
+ this.tabControl.TabIndex = 13;
+ //
+ // tabPageModel
+ //
+ this.tabPageModel.Controls.Add(this.richTextBoxModel);
+ this.tabPageModel.Location = new System.Drawing.Point(4, 22);
+ this.tabPageModel.Name = "tabPageModel";
+ this.tabPageModel.Padding = new System.Windows.Forms.Padding(3);
+ this.tabPageModel.Size = new System.Drawing.Size(280, 400);
+ this.tabPageModel.TabIndex = 0;
+ this.tabPageModel.Text = "Model";
+ this.tabPageModel.UseVisualStyleBackColor = true;
+ //
+ // tabPage2
+ //
+ this.tabPage2.Controls.Add(this.richTextBoxCV);
+ this.tabPage2.Location = new System.Drawing.Point(4, 22);
+ this.tabPage2.Name = "tabPage2";
+ this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
+ this.tabPage2.Size = new System.Drawing.Size(280, 400);
+ this.tabPage2.TabIndex = 1;
+ this.tabPage2.Text = "Cross-validation";
+ this.tabPage2.UseVisualStyleBackColor = true;
+ //
+ // richTextBoxCV
+ //
+ this.richTextBoxCV.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.richTextBoxCV.Location = new System.Drawing.Point(3, 3);
+ this.richTextBoxCV.Name = "richTextBoxCV";
+ this.richTextBoxCV.Size = new System.Drawing.Size(274, 394);
+ this.richTextBoxCV.TabIndex = 13;
+ this.richTextBoxCV.Text = "";
+ //
+ // splitContainer
+ //
+ this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainer.Location = new System.Drawing.Point(3, 4);
+ this.splitContainer.Name = "splitContainer";
+ //
+ // splitContainer.Panel1
+ //
+ this.splitContainer.Panel1.Controls.Add(this.listViewForClassifHistory);
+ //
+ // splitContainer.Panel2
+ //
+ this.splitContainer.Panel2.Controls.Add(this.tabControl);
+ this.splitContainer.Size = new System.Drawing.Size(591, 432);
+ this.splitContainer.SplitterDistance = 293;
+ this.splitContainer.TabIndex = 14;
+ //
+ // FormForModelsHistory
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(599, 463);
+ this.ControlBox = false;
+ this.Controls.Add(this.splitContainer);
+ this.Controls.Add(this.buttonOk);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.Name = "FormForModelsHistory";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Models History";
+ this.tabControl.ResumeLayout(false);
+ this.tabPageModel.ResumeLayout(false);
+ this.tabPage2.ResumeLayout(false);
+ this.splitContainer.Panel1.ResumeLayout(false);
+ this.splitContainer.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
+ this.splitContainer.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public System.Windows.Forms.ListView listViewForClassifHistory;
+ private System.Windows.Forms.ColumnHeader columnHeaderModelName;
+ private System.Windows.Forms.ColumnHeader columnHeaderNumFolds;
+ private System.Windows.Forms.ColumnHeader columnHeaderMeanError;
+ private System.Windows.Forms.Button buttonOk;
+ private System.Windows.Forms.RichTextBox richTextBoxModel;
+ private System.Windows.Forms.TabControl tabControl;
+ private System.Windows.Forms.TabPage tabPageModel;
+ private System.Windows.Forms.TabPage tabPage2;
+ private System.Windows.Forms.RichTextBox richTextBoxCV;
+ private System.Windows.Forms.SplitContainer splitContainer;
+ }
+}
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/FormForModelsHistory.cs b/Cell-by-Cell and DB/FormForModelsHistory.cs
new file mode 100644
index 0000000..2f7c1d5
--- /dev/null
+++ b/Cell-by-Cell and DB/FormForModelsHistory.cs
@@ -0,0 +1,197 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.TMP_ToBeRemoved;
+using HCSAnalyzer.Classes;
+using HCSAnalyzer.GUI.FormsForGraphsDisplay.Generic;
+using HCSAnalyzer.Classes.Machine_Learning;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+
+namespace HCSAnalyzer.Cell_by_Cell_and_DB.Simulator.Forms
+{
+ public partial class FormForModelsHistory : Form
+ {
+ public FormForModelsHistory()
+ {
+ InitializeComponent();
+
+ //ToolTip MytoolTip = new ToolTip();
+
+ //// Set up the delays for the ToolTip.
+ //MytoolTip.AutoPopDelay = 5000;
+ //MytoolTip.InitialDelay = 1000;
+ //MytoolTip.ReshowDelay = 500;
+
+ //MytoolTip.ShowAlways = true;
+
+ //// Set up the ToolTip text for the Button and Checkbox.
+ //MytoolTip.SetToolTip(this.listViewForClassifHistory, "Test");
+ //toolTip1.SetToolTip(this.checkBoxShiftRowEffect, "Step: " + GlobalInfo.OptionsWindow.numericUpDownGenerateScreenRowEffectShift.Value);
+ this.listViewForClassifHistory.ShowItemToolTips = true;
+ this.Visible = false;
+
+ }
+
+ private void listViewForCellPopulations_MouseDown(object sender, MouseEventArgs e)
+ {
+ if (e.Button == System.Windows.Forms.MouseButtons.Right)
+ {
+ //Point locationOnForm = listViewForCellPopulations.FindForm().PointToClient(Control.MousePosition);
+ ListViewItem IdxItem = listViewForClassifHistory.GetItemAt(e.X, e.Y);
+
+ ContextMenuStrip contextMenuStripPicker = new ContextMenuStrip();
+
+ //ToolStripMenuItem AddItem = new ToolStripMenuItem("Add");
+ //// AddItem.Click += new System.EventHandler(this.AddItem);
+ //contextMenuStripPicker.Items.Add(AddItem);
+
+
+ //ToolStripMenuItem LoadItem = new ToolStripMenuItem("Load");
+ //// LoadItem.Click += new System.EventHandler(this.LoadItem);
+ //contextMenuStripPicker.Items.Add(LoadItem);
+
+ if (IdxItem != null)
+ {
+ // ToolStripMenuItem EditItem = new ToolStripMenuItem(IdxItem.Text+" -> Display Info");
+ // EditItem.Click += new System.EventHandler(this.DisplayInfoItem);
+ // contextMenuStripPicker.Items.Add(EditItem);
+
+ //ToolStripMenuItem SaveItem = new ToolStripMenuItem("Save " + IdxItem.Text);
+ //// SaveItem.Click += new System.EventHandler(this.SaveItem);
+ //contextMenuStripPicker.Items.Add(SaveItem);
+
+ //ToolStripMenuItem DeleteItem = new ToolStripMenuItem("Delete " + IdxItem.Text);
+ //// DeleteItem.Click += new System.EventHandler(this.DeleteItem);
+ //contextMenuStripPicker.Items.Add(DeleteItem);
+ // contextMenuStripPicker.Items.Add(new ToolStripSeparator());
+ }
+
+ if (listViewForClassifHistory.Items.Count > 0)
+ {
+ ToolStripMenuItem DisplayGraphItem = new ToolStripMenuItem("Display Graph");
+ DisplayGraphItem.Click += new System.EventHandler(this.DisplayGraphItem);
+ contextMenuStripPicker.Items.Add(DisplayGraphItem);
+
+ if (listViewForClassifHistory.Items.Count > 1)
+ {
+ ToolStripMenuItem IdentifyBestItem = new ToolStripMenuItem("Identify Best");
+ IdentifyBestItem.Click += new System.EventHandler(this.IdentifyBestItem);
+ contextMenuStripPicker.Items.Add(IdentifyBestItem);
+ }
+ contextMenuStripPicker.Items.Add(new ToolStripSeparator());
+
+
+
+ ToolStripMenuItem ClearItem = new ToolStripMenuItem("Clear");
+ ClearItem.Click += new System.EventHandler(this.ClearItems);
+ contextMenuStripPicker.Items.Add(ClearItem);
+
+
+
+ }
+
+
+ //ToolStripMenuItem NewTypeItem = new ToolStripMenuItem("New Cell Type");
+ //// NewTypeItem.Click += new System.EventHandler(this.NewTypeItem);
+ //contextMenuStripPicker.Items.Add(NewTypeItem);
+
+ contextMenuStripPicker.Show(Control.MousePosition);
+ }
+ }
+
+
+ void IdentifyBestItem(object sender, EventArgs e)
+ {
+
+ double MinError = double.Parse(listViewForClassifHistory.Items[0].SubItems[2].Text);
+ int IdxBest = 0;
+
+ for (int IdxItem = 1; IdxItem < listViewForClassifHistory.Items.Count; IdxItem++)
+ {
+ double TmpError = double.Parse(listViewForClassifHistory.Items[IdxItem].SubItems[2].Text);
+ if (TmpError < MinError)
+ {
+ MinError = TmpError;
+ IdxBest = IdxItem;
+ }
+ }
+
+ listViewForClassifHistory.FocusedItem = listViewForClassifHistory.Items[IdxBest];
+ listViewForClassifHistory.Items[IdxBest].Selected = true;
+
+ UpdateInfo();
+ }
+
+
+ void DisplayGraphItem(object sender, EventArgs e)
+ {
+ FormTMP TMPWin = new FormTMP();
+ Panel Pan = new Panel();
+ Pan.Show();
+
+ cExtendedList ListValue = new cExtendedList();
+ for (int Idx = 0; Idx < this.listViewForClassifHistory.Items.Count; Idx++)
+ {
+ // this.listViewForCellPopulations.Items[Idx];
+ ListValue.Add(double.Parse(this.listViewForClassifHistory.Items[Idx].SubItems[2].Text));
+ }
+
+ // ListValue.Name = this.dt.Columns[e.ColumnIndex].ColumnName;
+
+ cPanelHisto PanelHisto = new cPanelHisto(ListValue, eGraphType.LINE, eOrientation.HORIZONTAL);
+ TMPWin.Controls.Add(PanelHisto.WindowForPanelHisto.panelForGraphContainer);
+ TMPWin.Show();
+
+ }
+
+ void DisplayInfoItem(object sender, EventArgs e)
+ {
+ // cCellPopulation SelectedCellPop = (cCellPopulation)listViewForCellPopulations.FocusedItem.Tag;
+
+ }
+
+ private void ClearItems(object sender, EventArgs e)
+ {
+ int NumItems = this.listViewForClassifHistory.Items.Count;
+ for (int IdxItem = 0; IdxItem < NumItems; IdxItem++)
+ {
+ this.listViewForClassifHistory.Items[0].Remove();
+ }
+
+ this.richTextBoxCV.Clear();
+ this.richTextBoxModel.Clear();
+ }
+
+
+ private void buttonOk_Click(object sender, EventArgs e)
+ {
+ this.Visible = false;
+ }
+
+ private void listViewForCellPopulations_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (listViewForClassifHistory.FocusedItem == null) return;
+ UpdateInfo();
+ }
+
+ void UpdateInfo()
+ {
+ cClusteringObject SelectedCellModel = (cClusteringObject)listViewForClassifHistory.FocusedItem.Tag;
+ richTextBoxModel.Clear();
+ richTextBoxModel.AppendText(SelectedCellModel.Model.ToString());
+
+ richTextBoxCV.Clear();
+ richTextBoxCV.AppendText(SelectedCellModel.Evaluation.toSummaryString());
+ richTextBoxCV.AppendText(SelectedCellModel.Evaluation.toClassDetailsString());
+
+ }
+
+
+
+ }
+}
diff --git a/Forms/3D/FormFor3DVizuOptions.resx b/Cell-by-Cell and DB/FormForModelsHistory.resx
similarity index 100%
rename from Forms/3D/FormFor3DVizuOptions.resx
rename to Cell-by-Cell and DB/FormForModelsHistory.resx
diff --git a/Forms/FormForPlateDimensions.Designer.cs b/Cell-by-Cell and DB/FormForPlateDimensions.Designer.cs
similarity index 98%
rename from Forms/FormForPlateDimensions.Designer.cs
rename to Cell-by-Cell and DB/FormForPlateDimensions.Designer.cs
index 30e11bd..5d62ab5 100644
--- a/Forms/FormForPlateDimensions.Designer.cs
+++ b/Cell-by-Cell and DB/FormForPlateDimensions.Designer.cs
@@ -49,7 +49,7 @@ private void InitializeComponent()
// buttonOk
//
this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.buttonOk.Location = new System.Drawing.Point(39, 275);
+ this.buttonOk.Location = new System.Drawing.Point(39, 268);
this.buttonOk.Name = "buttonOk";
this.buttonOk.Size = new System.Drawing.Size(124, 32);
this.buttonOk.TabIndex = 3;
@@ -193,7 +193,7 @@ private void InitializeComponent()
this.groupBox1.Controls.Add(this.radioButtonDataHDDB);
this.groupBox1.Location = new System.Drawing.Point(9, 178);
this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(185, 91);
+ this.groupBox1.Size = new System.Drawing.Size(185, 84);
this.groupBox1.TabIndex = 9;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Data Access";
@@ -202,7 +202,7 @@ private void InitializeComponent()
//
this.radioButtonDataMemory.AutoSize = true;
this.radioButtonDataMemory.Checked = true;
- this.radioButtonDataMemory.Location = new System.Drawing.Point(61, 53);
+ this.radioButtonDataMemory.Location = new System.Drawing.Point(61, 47);
this.radioButtonDataMemory.Name = "radioButtonDataMemory";
this.radioButtonDataMemory.Size = new System.Drawing.Size(62, 17);
this.radioButtonDataMemory.TabIndex = 9;
@@ -214,7 +214,7 @@ private void InitializeComponent()
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(202, 317);
+ this.ClientSize = new System.Drawing.Size(202, 311);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.checkBoxAddCellNumber);
this.Controls.Add(this.checkBoxIsOmitFirstColumn);
diff --git a/Forms/FormForPlateDimensions.cs b/Cell-by-Cell and DB/FormForPlateDimensions.cs
similarity index 100%
rename from Forms/FormForPlateDimensions.cs
rename to Cell-by-Cell and DB/FormForPlateDimensions.cs
diff --git a/Forms/FormForPlateDimensions.resx b/Cell-by-Cell and DB/FormForPlateDimensions.resx
similarity index 100%
rename from Forms/FormForPlateDimensions.resx
rename to Cell-by-Cell and DB/FormForPlateDimensions.resx
diff --git a/Forms/FormsForGraphsDisplay/FormForPointSize.Designer.cs b/Cell-by-Cell and DB/FormForPointSize.Designer.cs
similarity index 78%
rename from Forms/FormsForGraphsDisplay/FormForPointSize.Designer.cs
rename to Cell-by-Cell and DB/FormForPointSize.Designer.cs
index 00c71b7..485c6ca 100644
--- a/Forms/FormsForGraphsDisplay/FormForPointSize.Designer.cs
+++ b/Cell-by-Cell and DB/FormForPointSize.Designer.cs
@@ -31,14 +31,14 @@ private void InitializeComponent()
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormForPointSize));
this.buttonApply = new System.Windows.Forms.Button();
this.trackBarPointSize = new System.Windows.Forms.TrackBar();
- this.label1 = new System.Windows.Forms.Label();
+ this.labelForPointSize = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.trackBarPointSize)).BeginInit();
this.SuspendLayout();
//
// buttonApply
//
this.buttonApply.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.buttonApply.Location = new System.Drawing.Point(69, 107);
+ this.buttonApply.Location = new System.Drawing.Point(69, 68);
this.buttonApply.Name = "buttonApply";
this.buttonApply.Size = new System.Drawing.Size(102, 28);
this.buttonApply.TabIndex = 0;
@@ -47,30 +47,32 @@ private void InitializeComponent()
//
// trackBarPointSize
//
- this.trackBarPointSize.Location = new System.Drawing.Point(12, 47);
+ this.trackBarPointSize.Location = new System.Drawing.Point(12, 12);
this.trackBarPointSize.Maximum = 100;
this.trackBarPointSize.Minimum = 1;
this.trackBarPointSize.Name = "trackBarPointSize";
- this.trackBarPointSize.Size = new System.Drawing.Size(216, 45);
+ this.trackBarPointSize.Size = new System.Drawing.Size(163, 45);
this.trackBarPointSize.TabIndex = 1;
- this.trackBarPointSize.Value = 4;
+ this.trackBarPointSize.TickStyle = System.Windows.Forms.TickStyle.Both;
+ this.trackBarPointSize.Value = 8;
this.trackBarPointSize.ValueChanged += new System.EventHandler(this.trackBarPointSize_ValueChanged);
//
- // label1
+ // labelForPointSize
//
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(118, 19);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(13, 13);
- this.label1.TabIndex = 2;
- this.label1.Text = "0";
+ this.labelForPointSize.AutoSize = true;
+ this.labelForPointSize.Location = new System.Drawing.Point(195, 26);
+ this.labelForPointSize.Name = "labelForPointSize";
+ this.labelForPointSize.Size = new System.Drawing.Size(13, 13);
+ this.labelForPointSize.TabIndex = 2;
+ this.labelForPointSize.Text = "0";
+ this.labelForPointSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// FormForPointSize
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(240, 154);
- this.Controls.Add(this.label1);
+ this.ClientSize = new System.Drawing.Size(240, 104);
+ this.Controls.Add(this.labelForPointSize);
this.Controls.Add(this.trackBarPointSize);
this.Controls.Add(this.buttonApply);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
@@ -86,7 +88,7 @@ private void InitializeComponent()
#endregion
private System.Windows.Forms.Button buttonApply;
- private System.Windows.Forms.Label label1;
public System.Windows.Forms.TrackBar trackBarPointSize;
+ public System.Windows.Forms.Label labelForPointSize;
}
}
\ No newline at end of file
diff --git a/Forms/FormsForGraphsDisplay/FormForPointSize.cs b/Cell-by-Cell and DB/FormForPointSize.cs
similarity index 86%
rename from Forms/FormsForGraphsDisplay/FormForPointSize.cs
rename to Cell-by-Cell and DB/FormForPointSize.cs
index f8dee00..d105571 100644
--- a/Forms/FormsForGraphsDisplay/FormForPointSize.cs
+++ b/Cell-by-Cell and DB/FormForPointSize.cs
@@ -18,7 +18,7 @@ public FormForPointSize()
private void trackBarPointSize_ValueChanged(object sender, EventArgs e)
{
- this.label1.Text = trackBarPointSize.Value.ToString();
+ this.labelForPointSize.Text = trackBarPointSize.Value.ToString();
}
}
}
diff --git a/Forms/FormsForGraphsDisplay/FormForPointSize.resx b/Cell-by-Cell and DB/FormForPointSize.resx
similarity index 100%
rename from Forms/FormsForGraphsDisplay/FormForPointSize.resx
rename to Cell-by-Cell and DB/FormForPointSize.resx
diff --git a/Cell-by-Cell and DB/FormForSingleCellsDisplayForProcess.Designer.cs b/Cell-by-Cell and DB/FormForSingleCellsDisplayForProcess.Designer.cs
new file mode 100644
index 0000000..f40b9f6
--- /dev/null
+++ b/Cell-by-Cell and DB/FormForSingleCellsDisplayForProcess.Designer.cs
@@ -0,0 +1,618 @@
+namespace HCSAnalyzer.Forms.FormsForGraphsDisplay
+{
+ partial class FormForSingleCellsDisplay
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+ System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormForSingleCellsDisplay));
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.chartForPoints = new System.Windows.Forms.DataVisualization.Charting.Chart();
+ this.contextMenuStripForSingleCell = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.displayToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.pointSizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.colorsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.markerBorderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+ this.mINEAnalysisToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.descriptorsAnalysisToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.correlationMatrixToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.comboBoxAxeY = new System.Windows.Forms.ComboBox();
+ this.comboBoxAxeX = new System.Windows.Forms.ComboBox();
+ this.buttonStartCluster = new System.Windows.Forms.Button();
+ this.splitContainerForCellByCellAnalysis = new System.Windows.Forms.SplitContainer();
+ this.splitContainerHorizontal = new System.Windows.Forms.SplitContainer();
+ this.splitContainerVertical = new System.Windows.Forms.SplitContainer();
+ this.buttonCollapseHorizontal = new System.Windows.Forms.Button();
+ this.buttonCollapseVertical = new System.Windows.Forms.Button();
+ this.splitContainerForResults = new System.Windows.Forms.SplitContainer();
+ this.richTextBoxForResults = new System.Windows.Forms.RichTextBox();
+ this.contextMenuStripForRichTextBox = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.cleanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.panelForGraphicalResults = new System.Windows.Forms.Panel();
+ this.buttonTraining = new System.Windows.Forms.Button();
+ this.toolTipForTraining = new System.Windows.Forms.ToolTip(this.components);
+ this.buttonClassify = new System.Windows.Forms.Button();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.menuStrip = new System.Windows.Forms.MenuStrip();
+ this.classificationModelsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.historyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.checkBoxIsVolumeConstant = new System.Windows.Forms.CheckBox();
+ this.label6 = new System.Windows.Forms.Label();
+ this.comboBoxVolume = new System.Windows.Forms.ComboBox();
+ this.splitContainerForParam = new System.Windows.Forms.SplitContainer();
+ ((System.ComponentModel.ISupportInitialize)(this.chartForPoints)).BeginInit();
+ this.contextMenuStripForSingleCell.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerForCellByCellAnalysis)).BeginInit();
+ this.splitContainerForCellByCellAnalysis.Panel1.SuspendLayout();
+ this.splitContainerForCellByCellAnalysis.Panel2.SuspendLayout();
+ this.splitContainerForCellByCellAnalysis.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerHorizontal)).BeginInit();
+ this.splitContainerHorizontal.Panel2.SuspendLayout();
+ this.splitContainerHorizontal.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerVertical)).BeginInit();
+ this.splitContainerVertical.Panel1.SuspendLayout();
+ this.splitContainerVertical.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerForResults)).BeginInit();
+ this.splitContainerForResults.Panel1.SuspendLayout();
+ this.splitContainerForResults.Panel2.SuspendLayout();
+ this.splitContainerForResults.SuspendLayout();
+ this.contextMenuStripForRichTextBox.SuspendLayout();
+ this.menuStrip.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerForParam)).BeginInit();
+ this.splitContainerForParam.Panel1.SuspendLayout();
+ this.splitContainerForParam.Panel2.SuspendLayout();
+ this.splitContainerForParam.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // label2
+ //
+ this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(37, 31);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(36, 13);
+ this.label2.TabIndex = 8;
+ this.label2.Text = "Axis Y";
+ //
+ // label1
+ //
+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(37, 5);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(36, 13);
+ this.label1.TabIndex = 9;
+ this.label1.Text = "Axis X";
+ //
+ // chartForPoints
+ //
+ this.chartForPoints.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ chartArea1.AxisX.MajorGrid.Enabled = false;
+ chartArea1.AxisY.MajorGrid.Enabled = false;
+ chartArea1.Name = "ChartArea1";
+ this.chartForPoints.ChartAreas.Add(chartArea1);
+ this.chartForPoints.ContextMenuStrip = this.contextMenuStripForSingleCell;
+ this.chartForPoints.Location = new System.Drawing.Point(3, 3);
+ this.chartForPoints.Name = "chartForPoints";
+ series1.ChartArea = "ChartArea1";
+ series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+ series1.MarkerBorderColor = System.Drawing.Color.Black;
+ series1.MarkerColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
+ series1.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
+ series1.Name = "SeriesPts";
+ this.chartForPoints.Series.Add(series1);
+ this.chartForPoints.Size = new System.Drawing.Size(361, 329);
+ this.chartForPoints.TabIndex = 5;
+ this.chartForPoints.Text = "chart1";
+ this.chartForPoints.Resize += new System.EventHandler(this.chartForPoints_Resize);
+ //
+ // contextMenuStripForSingleCell
+ //
+ this.contextMenuStripForSingleCell.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.displayToolStripMenuItem,
+ this.toolStripSeparator1,
+ this.mINEAnalysisToolStripMenuItem,
+ this.descriptorsAnalysisToolStripMenuItem});
+ this.contextMenuStripForSingleCell.Name = "contextMenuStripForSingleCell";
+ this.contextMenuStripForSingleCell.Size = new System.Drawing.Size(180, 76);
+ //
+ // displayToolStripMenuItem
+ //
+ this.displayToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.pointSizeToolStripMenuItem,
+ this.colorsToolStripMenuItem,
+ this.markerBorderToolStripMenuItem});
+ this.displayToolStripMenuItem.Name = "displayToolStripMenuItem";
+ this.displayToolStripMenuItem.Size = new System.Drawing.Size(179, 22);
+ this.displayToolStripMenuItem.Text = "Display";
+ //
+ // pointSizeToolStripMenuItem
+ //
+ this.pointSizeToolStripMenuItem.Name = "pointSizeToolStripMenuItem";
+ this.pointSizeToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
+ this.pointSizeToolStripMenuItem.Text = "Point Size";
+ this.pointSizeToolStripMenuItem.Click += new System.EventHandler(this.pointSizeToolStripMenuItem_Click);
+ //
+ // colorsToolStripMenuItem
+ //
+ this.colorsToolStripMenuItem.Name = "colorsToolStripMenuItem";
+ this.colorsToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
+ this.colorsToolStripMenuItem.Text = "Colors";
+ this.colorsToolStripMenuItem.Click += new System.EventHandler(this.colorsToolStripMenuItem_Click);
+ //
+ // markerBorderToolStripMenuItem
+ //
+ this.markerBorderToolStripMenuItem.Checked = true;
+ this.markerBorderToolStripMenuItem.CheckOnClick = true;
+ this.markerBorderToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.markerBorderToolStripMenuItem.Name = "markerBorderToolStripMenuItem";
+ this.markerBorderToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
+ this.markerBorderToolStripMenuItem.Text = "Marker Border";
+ this.markerBorderToolStripMenuItem.Click += new System.EventHandler(this.markerBorderToolStripMenuItem_Click);
+ //
+ // toolStripSeparator1
+ //
+ this.toolStripSeparator1.Name = "toolStripSeparator1";
+ this.toolStripSeparator1.Size = new System.Drawing.Size(176, 6);
+ //
+ // mINEAnalysisToolStripMenuItem
+ //
+ this.mINEAnalysisToolStripMenuItem.Enabled = false;
+ this.mINEAnalysisToolStripMenuItem.Name = "mINEAnalysisToolStripMenuItem";
+ this.mINEAnalysisToolStripMenuItem.Size = new System.Drawing.Size(179, 22);
+ this.mINEAnalysisToolStripMenuItem.Text = "MINE analysis";
+ this.mINEAnalysisToolStripMenuItem.Click += new System.EventHandler(this.mINEAnalysisToolStripMenuItem_Click);
+ //
+ // descriptorsAnalysisToolStripMenuItem
+ //
+ this.descriptorsAnalysisToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.correlationMatrixToolStripMenuItem});
+ this.descriptorsAnalysisToolStripMenuItem.Name = "descriptorsAnalysisToolStripMenuItem";
+ this.descriptorsAnalysisToolStripMenuItem.Size = new System.Drawing.Size(179, 22);
+ this.descriptorsAnalysisToolStripMenuItem.Text = "Descriptors Analysis";
+ //
+ // correlationMatrixToolStripMenuItem
+ //
+ this.correlationMatrixToolStripMenuItem.Name = "correlationMatrixToolStripMenuItem";
+ this.correlationMatrixToolStripMenuItem.Size = new System.Drawing.Size(169, 22);
+ this.correlationMatrixToolStripMenuItem.Text = "Correlation Matrix";
+ this.correlationMatrixToolStripMenuItem.Click += new System.EventHandler(this.correlationMatrixToolStripMenuItem_Click);
+ //
+ // comboBoxAxeY
+ //
+ this.comboBoxAxeY.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.comboBoxAxeY.FormattingEnabled = true;
+ this.comboBoxAxeY.Location = new System.Drawing.Point(95, 28);
+ this.comboBoxAxeY.Name = "comboBoxAxeY";
+ this.comboBoxAxeY.Size = new System.Drawing.Size(167, 21);
+ this.comboBoxAxeY.TabIndex = 7;
+ this.comboBoxAxeY.SelectedIndexChanged += new System.EventHandler(this.comboBoxAxeY_SelectedIndexChanged);
+ //
+ // comboBoxAxeX
+ //
+ this.comboBoxAxeX.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.comboBoxAxeX.FormattingEnabled = true;
+ this.comboBoxAxeX.Location = new System.Drawing.Point(95, 2);
+ this.comboBoxAxeX.Name = "comboBoxAxeX";
+ this.comboBoxAxeX.Size = new System.Drawing.Size(167, 21);
+ this.comboBoxAxeX.TabIndex = 6;
+ this.comboBoxAxeX.SelectedIndexChanged += new System.EventHandler(this.comboBoxAxeX_SelectedIndexChanged);
+ //
+ // buttonStartCluster
+ //
+ this.buttonStartCluster.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.buttonStartCluster.Location = new System.Drawing.Point(16, 32);
+ this.buttonStartCluster.Name = "buttonStartCluster";
+ this.buttonStartCluster.Size = new System.Drawing.Size(79, 39);
+ this.buttonStartCluster.TabIndex = 10;
+ this.buttonStartCluster.Text = "Cluster";
+ this.toolTipForTraining.SetToolTip(this.buttonStartCluster, "Perform automated clustering of the data");
+ this.buttonStartCluster.UseVisualStyleBackColor = true;
+ this.buttonStartCluster.Click += new System.EventHandler(this.buttonStartCluster_Click);
+ //
+ // splitContainerForCellByCellAnalysis
+ //
+ this.splitContainerForCellByCellAnalysis.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainerForCellByCellAnalysis.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.splitContainerForCellByCellAnalysis.Location = new System.Drawing.Point(3, 27);
+ this.splitContainerForCellByCellAnalysis.Name = "splitContainerForCellByCellAnalysis";
+ //
+ // splitContainerForCellByCellAnalysis.Panel1
+ //
+ this.splitContainerForCellByCellAnalysis.Panel1.Controls.Add(this.splitContainerHorizontal);
+ //
+ // splitContainerForCellByCellAnalysis.Panel2
+ //
+ this.splitContainerForCellByCellAnalysis.Panel2.Controls.Add(this.splitContainerForResults);
+ this.splitContainerForCellByCellAnalysis.Size = new System.Drawing.Size(834, 385);
+ this.splitContainerForCellByCellAnalysis.SplitterDistance = 564;
+ this.splitContainerForCellByCellAnalysis.TabIndex = 11;
+ //
+ // splitContainerHorizontal
+ //
+ this.splitContainerHorizontal.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainerHorizontal.BackColor = System.Drawing.SystemColors.Window;
+ this.splitContainerHorizontal.Location = new System.Drawing.Point(3, 1);
+ this.splitContainerHorizontal.Name = "splitContainerHorizontal";
+ //
+ // splitContainerHorizontal.Panel2
+ //
+ this.splitContainerHorizontal.Panel2.Controls.Add(this.splitContainerVertical);
+ this.splitContainerHorizontal.Size = new System.Drawing.Size(556, 381);
+ this.splitContainerHorizontal.SplitterDistance = 185;
+ this.splitContainerHorizontal.TabIndex = 8;
+ //
+ // splitContainerVertical
+ //
+ this.splitContainerVertical.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainerVertical.Location = new System.Drawing.Point(0, 0);
+ this.splitContainerVertical.Name = "splitContainerVertical";
+ this.splitContainerVertical.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainerVertical.Panel1
+ //
+ this.splitContainerVertical.Panel1.Controls.Add(this.buttonCollapseHorizontal);
+ this.splitContainerVertical.Panel1.Controls.Add(this.buttonCollapseVertical);
+ this.splitContainerVertical.Panel1.Controls.Add(this.chartForPoints);
+ this.splitContainerVertical.Size = new System.Drawing.Size(367, 381);
+ this.splitContainerVertical.SplitterDistance = 335;
+ this.splitContainerVertical.TabIndex = 0;
+ //
+ // buttonCollapseHorizontal
+ //
+ this.buttonCollapseHorizontal.BackColor = System.Drawing.SystemColors.Window;
+ this.buttonCollapseHorizontal.BackgroundImage = global::HCSAnalyzer.Properties.Resources.Arrow;
+ this.buttonCollapseHorizontal.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.buttonCollapseHorizontal.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.buttonCollapseHorizontal.ForeColor = System.Drawing.SystemColors.Window;
+ this.buttonCollapseHorizontal.Location = new System.Drawing.Point(3, 3);
+ this.buttonCollapseHorizontal.Margin = new System.Windows.Forms.Padding(0);
+ this.buttonCollapseHorizontal.Name = "buttonCollapseHorizontal";
+ this.buttonCollapseHorizontal.Size = new System.Drawing.Size(27, 23);
+ this.buttonCollapseHorizontal.TabIndex = 6;
+ this.buttonCollapseHorizontal.UseVisualStyleBackColor = false;
+ this.buttonCollapseHorizontal.Click += new System.EventHandler(this.buttonCollapseHorizontal_Click);
+ //
+ // buttonCollapseVertical
+ //
+ this.buttonCollapseVertical.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonCollapseVertical.BackColor = System.Drawing.SystemColors.Window;
+ this.buttonCollapseVertical.BackgroundImage = global::HCSAnalyzer.Properties.Resources.Arrow;
+ this.buttonCollapseVertical.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.buttonCollapseVertical.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.buttonCollapseVertical.ForeColor = System.Drawing.SystemColors.Window;
+ this.buttonCollapseVertical.Location = new System.Drawing.Point(337, 309);
+ this.buttonCollapseVertical.Margin = new System.Windows.Forms.Padding(0);
+ this.buttonCollapseVertical.Name = "buttonCollapseVertical";
+ this.buttonCollapseVertical.Size = new System.Drawing.Size(27, 23);
+ this.buttonCollapseVertical.TabIndex = 7;
+ this.buttonCollapseVertical.UseVisualStyleBackColor = false;
+ this.buttonCollapseVertical.Click += new System.EventHandler(this.buttonCollapseVertical_Click);
+ //
+ // splitContainerForResults
+ //
+ this.splitContainerForResults.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainerForResults.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.splitContainerForResults.Location = new System.Drawing.Point(3, 3);
+ this.splitContainerForResults.Name = "splitContainerForResults";
+ this.splitContainerForResults.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainerForResults.Panel1
+ //
+ this.splitContainerForResults.Panel1.Controls.Add(this.richTextBoxForResults);
+ //
+ // splitContainerForResults.Panel2
+ //
+ this.splitContainerForResults.Panel2.Controls.Add(this.panelForGraphicalResults);
+ this.splitContainerForResults.Size = new System.Drawing.Size(258, 377);
+ this.splitContainerForResults.SplitterDistance = 185;
+ this.splitContainerForResults.TabIndex = 2;
+ //
+ // richTextBoxForResults
+ //
+ this.richTextBoxForResults.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.richTextBoxForResults.ContextMenuStrip = this.contextMenuStripForRichTextBox;
+ this.richTextBoxForResults.Location = new System.Drawing.Point(3, 3);
+ this.richTextBoxForResults.Name = "richTextBoxForResults";
+ this.richTextBoxForResults.ReadOnly = true;
+ this.richTextBoxForResults.Size = new System.Drawing.Size(250, 177);
+ this.richTextBoxForResults.TabIndex = 0;
+ this.richTextBoxForResults.Text = "";
+ //
+ // contextMenuStripForRichTextBox
+ //
+ this.contextMenuStripForRichTextBox.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.cleanToolStripMenuItem});
+ this.contextMenuStripForRichTextBox.Name = "contextMenuStripForRichTextBox";
+ this.contextMenuStripForRichTextBox.Size = new System.Drawing.Size(102, 26);
+ //
+ // cleanToolStripMenuItem
+ //
+ this.cleanToolStripMenuItem.Name = "cleanToolStripMenuItem";
+ this.cleanToolStripMenuItem.Size = new System.Drawing.Size(101, 22);
+ this.cleanToolStripMenuItem.Text = "Clear";
+ this.cleanToolStripMenuItem.Click += new System.EventHandler(this.cleanToolStripMenuItem_Click);
+ //
+ // panelForGraphicalResults
+ //
+ this.panelForGraphicalResults.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.panelForGraphicalResults.AutoScroll = true;
+ this.panelForGraphicalResults.Location = new System.Drawing.Point(3, 3);
+ this.panelForGraphicalResults.Name = "panelForGraphicalResults";
+ this.panelForGraphicalResults.Size = new System.Drawing.Size(250, 180);
+ this.panelForGraphicalResults.TabIndex = 1;
+ //
+ // buttonTraining
+ //
+ this.buttonTraining.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.buttonTraining.Location = new System.Drawing.Point(116, 33);
+ this.buttonTraining.Name = "buttonTraining";
+ this.buttonTraining.Size = new System.Drawing.Size(79, 39);
+ this.buttonTraining.TabIndex = 13;
+ this.buttonTraining.Text = "Training";
+ this.toolTipForTraining.SetToolTip(this.buttonTraining, "Generate a training model based on the clustering");
+ this.buttonTraining.UseVisualStyleBackColor = true;
+ this.buttonTraining.Click += new System.EventHandler(this.buttonTraining_Click);
+ //
+ // buttonClassify
+ //
+ this.buttonClassify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.buttonClassify.Enabled = false;
+ this.buttonClassify.Location = new System.Drawing.Point(218, 32);
+ this.buttonClassify.Name = "buttonClassify";
+ this.buttonClassify.Size = new System.Drawing.Size(79, 39);
+ this.buttonClassify.TabIndex = 14;
+ this.buttonClassify.Text = "Classify";
+ this.toolTipForTraining.SetToolTip(this.buttonClassify, "Classify every cell from the entire screening");
+ this.buttonClassify.UseVisualStyleBackColor = true;
+ this.buttonClassify.Click += new System.EventHandler(this.buttonClassify_Click);
+ //
+ // label3
+ //
+ this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(3, 31);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(13, 13);
+ this.label3.TabIndex = 15;
+ this.label3.Text = "1";
+ //
+ // label4
+ //
+ this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(101, 32);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(13, 13);
+ this.label4.TabIndex = 15;
+ this.label4.Text = "2";
+ //
+ // label5
+ //
+ this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(203, 32);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(13, 13);
+ this.label5.TabIndex = 15;
+ this.label5.Text = "3";
+ //
+ // menuStrip
+ //
+ this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.classificationModelsToolStripMenuItem});
+ this.menuStrip.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip.Name = "menuStrip";
+ this.menuStrip.Size = new System.Drawing.Size(840, 24);
+ this.menuStrip.TabIndex = 16;
+ this.menuStrip.Text = "menuStrip1";
+ //
+ // classificationModelsToolStripMenuItem
+ //
+ this.classificationModelsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.historyToolStripMenuItem});
+ this.classificationModelsToolStripMenuItem.Name = "classificationModelsToolStripMenuItem";
+ this.classificationModelsToolStripMenuItem.Size = new System.Drawing.Size(125, 20);
+ this.classificationModelsToolStripMenuItem.Text = "Model Optimization";
+ //
+ // historyToolStripMenuItem
+ //
+ this.historyToolStripMenuItem.Name = "historyToolStripMenuItem";
+ this.historyToolStripMenuItem.Size = new System.Drawing.Size(112, 22);
+ this.historyToolStripMenuItem.Text = "History";
+ this.historyToolStripMenuItem.Click += new System.EventHandler(this.historyToolStripMenuItem_Click);
+ //
+ // checkBoxIsVolumeConstant
+ //
+ this.checkBoxIsVolumeConstant.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.checkBoxIsVolumeConstant.AutoSize = true;
+ this.checkBoxIsVolumeConstant.Checked = true;
+ this.checkBoxIsVolumeConstant.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.checkBoxIsVolumeConstant.Location = new System.Drawing.Point(22, 56);
+ this.checkBoxIsVolumeConstant.Name = "checkBoxIsVolumeConstant";
+ this.checkBoxIsVolumeConstant.Size = new System.Drawing.Size(68, 17);
+ this.checkBoxIsVolumeConstant.TabIndex = 19;
+ this.checkBoxIsVolumeConstant.Text = "Constant";
+ this.checkBoxIsVolumeConstant.UseVisualStyleBackColor = true;
+ this.checkBoxIsVolumeConstant.CheckedChanged += new System.EventHandler(this.checkBoxIsVolumeConstant_CheckedChanged);
+ //
+ // label6
+ //
+ this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(599, 477);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(29, 13);
+ this.label6.TabIndex = 18;
+ this.label6.Text = "Area";
+ //
+ // comboBoxVolume
+ //
+ this.comboBoxVolume.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.comboBoxVolume.Enabled = false;
+ this.comboBoxVolume.FormattingEnabled = true;
+ this.comboBoxVolume.Location = new System.Drawing.Point(96, 53);
+ this.comboBoxVolume.Name = "comboBoxVolume";
+ this.comboBoxVolume.Size = new System.Drawing.Size(166, 21);
+ this.comboBoxVolume.TabIndex = 17;
+ this.comboBoxVolume.SelectedIndexChanged += new System.EventHandler(this.comboBoxVolume_SelectedIndexChanged);
+ //
+ // splitContainerForParam
+ //
+ this.splitContainerForParam.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainerForParam.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.splitContainerForParam.Location = new System.Drawing.Point(3, 416);
+ this.splitContainerForParam.Name = "splitContainerForParam";
+ //
+ // splitContainerForParam.Panel1
+ //
+ this.splitContainerForParam.Panel1.Controls.Add(this.buttonClassify);
+ this.splitContainerForParam.Panel1.Controls.Add(this.label5);
+ this.splitContainerForParam.Panel1.Controls.Add(this.buttonTraining);
+ this.splitContainerForParam.Panel1.Controls.Add(this.label4);
+ this.splitContainerForParam.Panel1.Controls.Add(this.buttonStartCluster);
+ this.splitContainerForParam.Panel1.Controls.Add(this.label3);
+ this.splitContainerForParam.Panel1MinSize = 300;
+ //
+ // splitContainerForParam.Panel2
+ //
+ this.splitContainerForParam.Panel2.Controls.Add(this.comboBoxAxeX);
+ this.splitContainerForParam.Panel2.Controls.Add(this.comboBoxAxeY);
+ this.splitContainerForParam.Panel2.Controls.Add(this.label1);
+ this.splitContainerForParam.Panel2.Controls.Add(this.checkBoxIsVolumeConstant);
+ this.splitContainerForParam.Panel2.Controls.Add(this.label2);
+ this.splitContainerForParam.Panel2.Controls.Add(this.comboBoxVolume);
+ this.splitContainerForParam.Size = new System.Drawing.Size(834, 80);
+ this.splitContainerForParam.SplitterDistance = 561;
+ this.splitContainerForParam.TabIndex = 20;
+ //
+ // FormForSingleCellsDisplay
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(840, 498);
+ this.Controls.Add(this.splitContainerForParam);
+ this.Controls.Add(this.label6);
+ this.Controls.Add(this.menuStrip);
+ this.Controls.Add(this.splitContainerForCellByCellAnalysis);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "FormForSingleCellsDisplay";
+ this.Text = "Single cell analysis";
+ ((System.ComponentModel.ISupportInitialize)(this.chartForPoints)).EndInit();
+ this.contextMenuStripForSingleCell.ResumeLayout(false);
+ this.splitContainerForCellByCellAnalysis.Panel1.ResumeLayout(false);
+ this.splitContainerForCellByCellAnalysis.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerForCellByCellAnalysis)).EndInit();
+ this.splitContainerForCellByCellAnalysis.ResumeLayout(false);
+ this.splitContainerHorizontal.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerHorizontal)).EndInit();
+ this.splitContainerHorizontal.ResumeLayout(false);
+ this.splitContainerVertical.Panel1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerVertical)).EndInit();
+ this.splitContainerVertical.ResumeLayout(false);
+ this.splitContainerForResults.Panel1.ResumeLayout(false);
+ this.splitContainerForResults.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerForResults)).EndInit();
+ this.splitContainerForResults.ResumeLayout(false);
+ this.contextMenuStripForRichTextBox.ResumeLayout(false);
+ this.menuStrip.ResumeLayout(false);
+ this.menuStrip.PerformLayout();
+ this.splitContainerForParam.Panel1.ResumeLayout(false);
+ this.splitContainerForParam.Panel1.PerformLayout();
+ this.splitContainerForParam.Panel2.ResumeLayout(false);
+ this.splitContainerForParam.Panel2.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerForParam)).EndInit();
+ this.splitContainerForParam.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.DataVisualization.Charting.Chart chartForPoints;
+ public System.Windows.Forms.ComboBox comboBoxAxeY;
+ public System.Windows.Forms.ComboBox comboBoxAxeX;
+ private System.Windows.Forms.Button buttonStartCluster;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStripForSingleCell;
+ private System.Windows.Forms.ToolStripMenuItem mINEAnalysisToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem displayToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem pointSizeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+ public System.Windows.Forms.SplitContainer splitContainerForCellByCellAnalysis;
+ public System.Windows.Forms.RichTextBox richTextBoxForResults;
+ private System.Windows.Forms.SplitContainer splitContainerForResults;
+ private System.Windows.Forms.Panel panelForGraphicalResults;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStripForRichTextBox;
+ private System.Windows.Forms.ToolStripMenuItem cleanToolStripMenuItem;
+ private System.Windows.Forms.Button buttonTraining;
+ private System.Windows.Forms.ToolTip toolTipForTraining;
+ private System.Windows.Forms.ToolStripMenuItem colorsToolStripMenuItem;
+ private System.Windows.Forms.Button buttonClassify;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.MenuStrip menuStrip;
+ private System.Windows.Forms.ToolStripMenuItem classificationModelsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem historyToolStripMenuItem;
+ private System.Windows.Forms.CheckBox checkBoxIsVolumeConstant;
+ private System.Windows.Forms.Label label6;
+ public System.Windows.Forms.ComboBox comboBoxVolume;
+ private System.Windows.Forms.Button buttonCollapseHorizontal;
+ private System.Windows.Forms.Button buttonCollapseVertical;
+ private System.Windows.Forms.SplitContainer splitContainerHorizontal;
+ private System.Windows.Forms.SplitContainer splitContainerVertical;
+ private System.Windows.Forms.ToolStripMenuItem markerBorderToolStripMenuItem;
+ private System.Windows.Forms.SplitContainer splitContainerForParam;
+ private System.Windows.Forms.ToolStripMenuItem descriptorsAnalysisToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem correlationMatrixToolStripMenuItem;
+ }
+}
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/FormForSingleCellsDisplayForProcess.cs b/Cell-by-Cell and DB/FormForSingleCellsDisplayForProcess.cs
new file mode 100644
index 0000000..ef1c621
--- /dev/null
+++ b/Cell-by-Cell and DB/FormForSingleCellsDisplayForProcess.cs
@@ -0,0 +1,554 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Classes;
+using weka.core;
+using weka.clusterers;
+using weka.classifiers;
+using LibPlateAnalysis;
+using HCSAnalyzer.Forms.IO;
+using System.Threading.Tasks;
+using HCSAnalyzer.Forms.FormsForOptions.ClassForOptions;
+using HCSAnalyzer.Forms.FormsForOptions;
+using HCSAnalyzer.Forms.FormsForOptions.ClusteringInfo;
+using Microsoft.Msagl.GraphViewerGdi;
+using HCSAnalyzer.Forms.FormsForOptions.ClassForOptions.Children;
+using HCSAnalyzer.Forms.FormsForOptions.ClassificationInfo;
+using weka.classifiers.trees;
+using weka.classifiers.lazy;
+using weka.classifiers.functions;
+using weka.classifiers.functions.supportVector;
+using weka.classifiers.rules;
+using weka.classifiers.bayes;
+using HCSAnalyzer.Classes.Machine_Learning;
+using HCSAnalyzer.Cell_by_Cell_and_DB.Simulator.Forms;
+using HCSAnalyzer.GUI.FormsForGraphsDisplay.Generic;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+using HCSAnalyzer.Classes.Base_Classes;
+using HCSAnalyzer.Classes.MetaComponents;
+using HCSAnalyzer.Classes.Base_Classes.Data;
+
+namespace HCSAnalyzer.Forms.FormsForGraphsDisplay
+{
+ public partial class FormForSingleCellsDisplay : Form
+ {
+ private DataTable dt;
+ private cGlobalInfo GlobalInfo;
+ cMachineLearning MachineLearning;
+ FormForModelsHistory WindowForModelHistory = new FormForModelsHistory();
+ ToolTip ToolTipForX = new ToolTip();
+ ToolTip ToolTipForY = new ToolTip();
+ ToolTip ToolTipForVolume = new ToolTip();
+
+ public FormForSingleCellsDisplay(DataTable dt, cGlobalInfo GlobalInfo, cExtendedList ListClasses)
+ {
+ InitializeComponent();
+
+ markerBorderToolStripMenuItem.Checked = IsDisplayBorder;
+
+ this.dt = dt;
+ this.GlobalInfo = GlobalInfo;
+
+ #region initialize histograms display
+ splitContainerHorizontal.Panel1Collapsed = true;
+ splitContainerVertical.Panel2Collapsed = true;
+
+ System.Drawing.Image ImageOriginal = (System.Drawing.Image)(Properties.Resources.Arrow);
+ if (splitContainerVertical.Panel2Collapsed)
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ else
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate90FlipNone);
+
+ buttonCollapseVertical.BackgroundImage = ImageOriginal;
+ #endregion
+
+ MachineLearning = new cMachineLearning(GlobalInfo);
+
+ MachineLearning.Classes.AddRange(ListClasses);
+
+ WindowForModelHistory.Show();
+ WindowForModelHistory.Visible = false;
+
+ ToolTipForX.AutoPopDelay = ToolTipForY.AutoPopDelay = 5000;
+ ToolTipForX.InitialDelay = ToolTipForY.InitialDelay = 500;
+ ToolTipForX.ReshowDelay = ToolTipForY.ReshowDelay = 500;
+ ToolTipForX.ShowAlways = ToolTipForY.ShowAlways = true;
+ ToolTipForX.SetToolTip(comboBoxAxeX, comboBoxAxeX.Text);
+ ToolTipForY.SetToolTip(comboBoxAxeY, comboBoxAxeY.Text);
+ ToolTipForVolume.SetToolTip(comboBoxVolume, comboBoxVolume.Text);
+ }
+
+ public FormForSingleCellsDisplay()
+ {
+ InitializeComponent();
+ }
+
+ private void ReDraw()
+ {
+ cExtendedList ListX = new cExtendedList();
+ cExtendedList ListY = new cExtendedList();
+
+ if (this.comboBoxAxeY.SelectedIndex == -1) return;
+ if (this.comboBoxVolume.SelectedIndex == -1) return;
+
+ cExtendedList ListVolumes = new cExtendedList();
+
+ for (int j = 0; j < dt.Rows.Count; j++)
+ {
+ ListX.Add(double.Parse(dt.Rows[j][this.comboBoxAxeX.SelectedIndex].ToString()));
+ ListY.Add(double.Parse(dt.Rows[j][this.comboBoxAxeY.SelectedIndex].ToString()));
+ ListVolumes.Add(double.Parse(dt.Rows[j][this.comboBoxVolume.SelectedIndex].ToString()));
+ }
+
+ this.chartForPoints.ChartAreas[0].AxisX.Title = this.comboBoxAxeX.SelectedItem.ToString();
+ this.chartForPoints.ChartAreas[0].AxisY.Title = this.comboBoxAxeY.SelectedItem.ToString();
+ this.chartForPoints.Series[0].Points.DataBindXY(ListX, ListY);
+
+ this.chartForPoints.ChartAreas[0].AxisX.Minimum = ListX.Min();
+ this.chartForPoints.ChartAreas[0].AxisX.Maximum = ListX.Max();
+
+ this.chartForPoints.ChartAreas[0].AxisY.Minimum = ListY.Min();
+ this.chartForPoints.ChartAreas[0].AxisY.Maximum = ListY.Max();
+
+ //for (int j = 0; j < dt.Rows.Count; j++)
+ // this.chartForPoints.Series[0].Points[j].Tag = dataGridViewForTable.Rows[j];//dt.Rows[j];
+
+ this.chartForPoints.ChartAreas[0].AxisX.LabelStyle.Format = "N2";
+ this.chartForPoints.ChartAreas[0].AxisY.LabelStyle.Format = "N2";
+
+ byte[][] LUT = GlobalInfo.LUT;
+
+ int BorderSize = 1;
+ if (!IsDisplayBorder) BorderSize = 0;
+
+ if (MachineLearning.Classes.Count > 0)
+ {
+ for (int j = 0; j < this.chartForPoints.Series[0].Points.Count; j++)
+ {
+ //int ConvertedValue = (int)(((Classes[j] - 0) * (LUT[0].Length - 1)) / (eval.getNumClusters() - 0));
+ // this.chartForPoints.Series[0].Points[j].MarkerColor = GlobalInfo.ListCellularPhenotypes[(int)MachineLearning.Classes[j]].ColourForDisplay;
+ this.chartForPoints.Series[0].Points[j].MarkerColor = Color.FromArgb(128, GlobalInfo.ListCellularPhenotypes[(int)MachineLearning.Classes[j]].ColourForDisplay);
+ this.chartForPoints.Series[0].Points[j].MarkerBorderWidth = BorderSize;
+ }
+ if (checkBoxIsVolumeConstant.Checked)
+ {
+ for (int j = 0; j < this.chartForPoints.Series[0].Points.Count; j++)
+ this.chartForPoints.Series[0].Points[j].MarkerSize = WindowPtSize.trackBarPointSize.Value;
+ }
+
+ if (SecondListClassesForValidation != null)
+ {
+ // int NumBadAssociation = 0;
+
+ for (int j = 0; j < this.chartForPoints.Series[0].Points.Count; j++)
+ {
+ int ClassificationClass = (int)SecondListClassesForValidation[j];
+ this.chartForPoints.Series[0].Points[j].MarkerBorderColor = GlobalInfo.ListCellularPhenotypes[ClassificationClass].ColourForDisplay;
+ this.chartForPoints.Series[0].Points[j].MarkerBorderWidth = BorderSize * (this.chartForPoints.Series[0].Points[j].MarkerSize / 3);
+
+ //if (SecondListClassesForValidation[j] != Classes[j])
+ // NumBadAssociation++;
+ }
+ // this.richTextBoxForResults.AppendText(NumBadAssociation + " bad associations");
+ }
+ }
+ else
+ {
+ for (int j = 0; j < this.chartForPoints.Series[0].Points.Count; j++)
+ {
+ //int ConvertedValue = (int)(((Classes[j] - 0) * (LUT[0].Length - 1)) / (eval.getNumClusters() - 0));
+
+ int WellClass = 0; // int.Parse(dt.Rows[j][dt.Columns.Count - 1].ToString());
+
+ //this.chartForPoints.Series[0].Points[j].MarkerColor = ;
+ this.chartForPoints.Series[0].Points[j].MarkerColor = Color.FromArgb(128, GlobalInfo.ListWellClasses[WellClass].ColourForDisplay);
+ this.chartForPoints.Series[0].Points[j].MarkerSize = WindowPtSize.trackBarPointSize.Value;
+ }
+
+ if (checkBoxIsVolumeConstant.Checked)
+ for (int j = 0; j < this.chartForPoints.Series[0].Points.Count; j++)
+ this.chartForPoints.Series[0].Points[j].MarkerSize = WindowPtSize.trackBarPointSize.Value;
+ }
+ //this.chartForPoints.ChartAreas[0].CursorX.IsUserEnabled = false;
+ //this.chartForPoints.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
+ //this.chartForPoints.ChartAreas[0].CursorY.IsUserEnabled = false;
+ //this.chartForPoints.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
+
+ if (!checkBoxIsVolumeConstant.Checked)
+ {
+ double MaxVolume = ListVolumes.Max();
+ double MinVolume = ListVolumes.Min();
+
+ for (int j = 0; j < dt.Rows.Count; j++)
+ {
+ int MarkerArea = (int)((50 * (ListVolumes[j] - MinVolume)) / (MaxVolume - MinVolume));
+ this.chartForPoints.Series[0].Points[j].MarkerSize = MarkerArea + 3;
+ }
+ }
+ }
+
+ private void comboBoxAxeX_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ ReDraw();
+
+ if (comboBoxAxeX.Text == "")
+ ToolTipForX.SetToolTip(comboBoxAxeX, comboBoxAxeX.Items[0].ToString());
+ else
+ ToolTipForX.SetToolTip(comboBoxAxeX, comboBoxAxeX.Text);
+
+ if (splitContainerVertical.Panel2Collapsed) return;
+ RedrawHistoHorizontal();
+ }
+
+ private void comboBoxAxeY_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ ReDraw();
+ if (comboBoxAxeY.Text == "")
+ ToolTipForY.SetToolTip(comboBoxAxeY, comboBoxAxeY.Items[0].ToString());
+ else
+ ToolTipForY.SetToolTip(comboBoxAxeY, comboBoxAxeY.Text);
+
+ RedrawHistoVertical();
+ }
+
+ private void RedrawHistoVertical()
+ {
+ cExtendedList ListValue = new cExtendedList();
+ for (int Idx = 0; Idx < this.dt.Rows.Count; Idx++)
+ ListValue.Add(double.Parse(this.dt.Rows[Idx][comboBoxAxeY.SelectedIndex].ToString()));
+
+ cPanelHisto PanelHisto = new cPanelHisto(ListValue, eGraphType.HISTOGRAM, eOrientation.VERTICAL);
+ PanelHisto.WindowForPanelHisto.UserEnable = false;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.BackColor = Color.White;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Size = new System.Drawing.Size(splitContainerHorizontal.Panel1.Width, splitContainerVertical.Panel1.Height);
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Location = new Point(0, 0);
+
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.BorderStyle = BorderStyle.None;
+
+ PanelHisto.WindowForPanelHisto.CurrentChartArea.AxisX.Minimum = chartForPoints.ChartAreas[0].AxisY.Minimum;
+ PanelHisto.WindowForPanelHisto.CurrentChartArea.AxisX.Maximum = chartForPoints.ChartAreas[0].AxisY.Maximum;
+
+ splitContainerHorizontal.Panel1.Controls.Clear();
+ splitContainerHorizontal.Panel1.Controls.Add(PanelHisto.WindowForPanelHisto.panelForGraphContainer);
+
+ }
+
+ private void RedrawHistoHorizontal()
+ {
+ cExtendedList ListValue = new cExtendedList();
+ for (int Idx = 0; Idx < this.dt.Rows.Count; Idx++)
+ ListValue.Add(double.Parse(this.dt.Rows[Idx][comboBoxAxeX.SelectedIndex].ToString()));
+
+ cPanelHisto PanelHisto = new cPanelHisto(ListValue, eGraphType.HISTOGRAM, eOrientation.HORIZONTAL);
+ PanelHisto.WindowForPanelHisto.UserEnable = false;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Size = new System.Drawing.Size(splitContainerVertical.Panel2.Width - 23, splitContainerVertical.Panel2.Height);
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.BackColor = Color.White;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Location = new Point(23, 0);
+
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.BorderStyle = BorderStyle.None;
+
+ PanelHisto.WindowForPanelHisto.CurrentChartArea.AxisX.Minimum = chartForPoints.ChartAreas[0].AxisX.Minimum;
+ PanelHisto.WindowForPanelHisto.CurrentChartArea.AxisX.Maximum = chartForPoints.ChartAreas[0].AxisX.Maximum;
+
+ splitContainerVertical.Panel2.Controls.Clear();
+ splitContainerVertical.Panel2.Controls.Add(PanelHisto.WindowForPanelHisto.panelForGraphContainer);
+ }
+
+ double[] SecondListClassesForValidation = null;
+
+ FormForPointSize WindowPtSize = new FormForPointSize();
+
+ private void buttonStartCluster_Click(object sender, EventArgs e)
+ {
+ this.Cursor = Cursors.WaitCursor;
+ // -------------------------- Clustering -------------------------------
+
+ cParamAlgo ParaAlgo = MachineLearning.AskAndGetClusteringAlgo();
+ if (ParaAlgo == null)
+ {
+ this.Cursor = Cursors.Default;
+ return;
+ }
+
+
+
+ MachineLearning.SelectedClusterer = MachineLearning.BuildClusterer(ParaAlgo, dt);
+
+ //if (MachineLearning.SelectedClusterer == null)
+ //{
+ // MessageBox.Show("Clustering failed !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ // this.Cursor = Cursors.Default;
+ // return;
+ //}
+
+ if (MachineLearning.SelectedClusterer.numberOfClusters() > GlobalInfo.ListCellularPhenotypes.Count)
+ {
+ MessageBox.Show("Number of identifed clusters (" + MachineLearning.SelectedClusterer.numberOfClusters() + ") not handled by the application !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ this.Cursor = Cursors.Default;
+ return;
+ }
+ SecondListClassesForValidation = null;
+
+ if (MachineLearning.SelectedClusterer != null)
+ {
+ double[] Assign = MachineLearning.EvaluteAndDisplayClusterer(this.richTextBoxForResults,
+ this.panelForGraphicalResults,
+ MachineLearning.CreateInstancesWithoutClass(dt)).getClusterAssignments();
+
+ MachineLearning.Classes = new cExtendedList();
+ MachineLearning.Classes.AddRange(Assign);
+
+ }
+ buttonTraining.Enabled = true;
+ ReDraw();
+ this.Cursor = Cursors.Default;
+
+ }
+
+ private void buttonTraining_Click(object sender, EventArgs e)
+ {
+ // ----------------------- Training ------------------------------
+ //if (MessageBox.Show("Do you want perform a j48 training process ?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != System.Windows.Forms.DialogResult.Yes) return;
+
+ //InstancesList = GlobalInfo.CurrentScreen.CellBasedClassification.CreateInstancesWithoutClass(dt);
+
+ weka.classifiers.Evaluation ModelEvaluation = null;
+
+ Instances InstancesList = GlobalInfo.CurrentScreen.CellBasedClassification.CreateInstancesWithoutClass(dt);
+
+ FormForClassificationInfo WinClassifInfo = MachineLearning.AskAndGetClassifAlgo();
+ if (WinClassifInfo == null)
+ {
+ this.Cursor = Cursors.Default;
+ return;
+ }
+
+ MachineLearning.PerformTraining(WinClassifInfo,
+ InstancesList,
+ MachineLearning.NumberOfClusters,
+ this.richTextBoxForResults,
+ this.panelForGraphicalResults,
+ out ModelEvaluation, true);
+
+ if (MachineLearning.CurrentClassifier == null) return;
+
+ #region Add Object to history (if the model has been cross validated)
+ if (ModelEvaluation != null)
+ {
+ cClusteringObject NewObjectFOrHistory = new cClusteringObject(MachineLearning.CurrentClassifier, ModelEvaluation, (int)WinClassifInfo.numericUpDownFoldNumber.Value);
+
+ List ListNamesForItem = new List();
+ ListNamesForItem.Add(WinClassifInfo.GetSelectedAlgoAndParameters().Name);
+ ListNamesForItem.Add(NewObjectFOrHistory.FoldNumber.ToString());
+ ListNamesForItem.Add(NewObjectFOrHistory.Evaluation.meanAbsoluteError().ToString());
+ ListViewItem NewItem = new ListViewItem(ListNamesForItem.ToArray());
+
+ NewItem.Tag = NewObjectFOrHistory;
+ WindowForModelHistory.listViewForClassifHistory.Items.Add(NewItem);
+ NewItem.ToolTipText = MachineLearning.CurrentClassifier.ToString();
+ }
+ #endregion
+
+ //Instances ListInstancesTOClassify = ListInstances;
+ SecondListClassesForValidation = new double[InstancesList.numInstances()];
+ //// ListInstances.setClassIndex(ListInstances.numAttributes() - 1);
+ for (int i = 0; i < InstancesList.numInstances(); i++)
+ {
+ SecondListClassesForValidation[i] = MachineLearning.CurrentClassifier.classifyInstance(InstancesList.instance(i));
+ }
+
+ buttonClassify.Enabled = true;
+ ReDraw();
+
+ this.Cursor = Cursors.Default;
+ }
+
+ private void buttonClassify_Click(object sender, EventArgs e)
+ {
+ // FormForCellbyCellClassif WindowFormForCellbyCellClassif = new FormForCellbyCellClassif();
+
+ // if (WindowFormForCellbyCellClassif.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
+ MachineLearning.PerformClassification();
+ }
+
+ private void mINEAnalysisToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ //GlobalInfo.WindowHCSAnalyzer.DisplayMINE(ExtractCellsValuesList(true));
+ }
+
+ private cExtendedTable ExtractCellsValuesList(bool SelectedDescriptorsOnly)
+ {
+ int NumDesc = dt.Columns.Count;
+
+ if (SelectedDescriptorsOnly)
+ {
+ // int NumberOfPlates = CompleteScreening.ListPlatesActive.Count;
+ cExtendedTable ListValueDesc = new cExtendedTable();
+
+ //new List[GlobalInfo.CurrentScreen.ListDescriptors.GetListNameActives().Count];
+
+ for (int i = 0; i < GlobalInfo.CurrentScreen.ListDescriptors.GetListNameActives().Count; i++)
+ ListValueDesc[i] = new cExtendedList();
+
+ // loop on all the plate
+ for (int RowIdx = 0; RowIdx < dt.Rows.Count; RowIdx++)
+ {
+ int Idx = 0;
+ for (int ColIdx = 0; ColIdx < dt.Columns.Count; ColIdx++)
+ if (GlobalInfo.CurrentScreen.ListDescriptors[ColIdx].IsActive())
+ {
+ ListValueDesc[Idx++].Add((double)dt.Rows[RowIdx][ColIdx]);
+ }
+ }
+ return ListValueDesc;
+ }
+
+ else
+ {
+ // int NumberOfPlates = CompleteScreening.ListPlatesActive.Count;
+ cExtendedTable ListValueDesc = new cExtendedTable();
+
+ for (int i = 0; i < NumDesc; i++) ListValueDesc.Add(new cExtendedList());
+ for (int i = 0; i < NumDesc; i++) ListValueDesc[i].Name = dt.Columns[i].ColumnName;
+
+ // loop on all the plate
+ for (int RowIdx = 0; RowIdx < dt.Rows.Count; RowIdx++)
+ {
+ for (int ColIdx = 0; ColIdx < dt.Columns.Count; ColIdx++)
+ ListValueDesc[ColIdx].Add((double)dt.Rows[RowIdx][ColIdx]);
+ }
+ return ListValueDesc;
+ }
+ }
+
+ private void pointSizeToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (this.chartForPoints.Series[0].Points.Count == 0) return;
+ int CurrentMarkerSize = this.chartForPoints.Series[0].Points[0].MarkerSize;
+ WindowPtSize.labelForPointSize.Text = CurrentMarkerSize.ToString();
+
+ WindowPtSize.trackBarPointSize.Value = CurrentMarkerSize;
+
+ if (WindowPtSize.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ {
+ foreach (var item in this.chartForPoints.Series[0].Points)
+ item.MarkerSize = WindowPtSize.trackBarPointSize.Value;
+ }
+ WindowPtSize.Visible = false;
+ }
+
+ private void cleanToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ richTextBoxForResults.Clear();
+ }
+
+ private void colorsToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ cListOptions ListOptions = new cListOptions(GlobalInfo);
+
+ FormForGlobalInfoOptions WindowForOptions = new FormForGlobalInfoOptions(ListOptions);
+ WindowForOptions.SelectOption("Cellular Phenotypes");
+ if (WindowForOptions.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ ReDraw();
+ }
+
+ private void historyToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ WindowForModelHistory.Visible = true;
+ }
+
+ private void checkBoxIsVolumeConstant_CheckedChanged(object sender, EventArgs e)
+ {
+ comboBoxVolume.Enabled = !checkBoxIsVolumeConstant.Checked;
+ ReDraw();
+ }
+
+ private void comboBoxVolume_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ ReDraw();
+
+ if (comboBoxVolume.Text == "")
+ ToolTipForVolume.SetToolTip(comboBoxVolume, comboBoxVolume.Items[0].ToString());
+ else
+ ToolTipForVolume.SetToolTip(comboBoxVolume, comboBoxVolume.Text);
+
+ }
+
+ private void buttonCollapseVertical_Click(object sender, EventArgs e)
+ {
+ splitContainerVertical.Panel2Collapsed = !splitContainerVertical.Panel2Collapsed;
+
+ if ((!splitContainerVertical.Panel2Collapsed) && (splitContainerVertical.Panel2.Controls.Count == 0))
+ {
+ RedrawHistoHorizontal();
+ }
+
+ System.Drawing.Image ImageOriginal = (System.Drawing.Image)(Properties.Resources.Arrow);
+ if (splitContainerVertical.Panel2Collapsed)
+ {
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ }
+ else
+ {
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate90FlipNone);
+ }
+ buttonCollapseVertical.BackgroundImage = ImageOriginal;
+ }
+
+ private void buttonCollapseHorizontal_Click(object sender, EventArgs e)
+ {
+ splitContainerHorizontal.Panel1Collapsed = !splitContainerHorizontal.Panel1Collapsed;
+ System.Drawing.Image ImageOriginal = (System.Drawing.Image)(Properties.Resources.Arrow);
+ if (splitContainerHorizontal.Panel1Collapsed)
+ {
+ // ImageOriginal.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ }
+ else
+ {
+ ImageOriginal.RotateFlip(RotateFlipType.RotateNoneFlipX);
+ }
+ buttonCollapseHorizontal.BackgroundImage = ImageOriginal;
+ }
+
+ private void chartForPoints_Resize(object sender, EventArgs e)
+ {
+ if (splitContainerHorizontal.Panel1.Controls.Count == 0) return;
+ splitContainerHorizontal.Panel1.Controls[0].Size = new System.Drawing.Size(splitContainerHorizontal.Panel1.Width, splitContainerVertical.Panel1.Height);
+
+ }
+
+ bool IsDisplayBorder = true;
+
+ private void markerBorderToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ IsDisplayBorder = markerBorderToolStripMenuItem.Checked;
+ ReDraw();
+ }
+
+ private void correlationMatrixToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ cFeedBackMessage MessageReturned;
+
+ // cExtendedTable CurrentData = ExtractCellsValuesList(false);
+
+ cExtendedTable CurrentData = new cExtendedTable(this.dt);
+
+ cDisplayCorrelationMatrix ComputeAndDisplay_SingleCorrelationMatrix = new cDisplayCorrelationMatrix();
+ ComputeAndDisplay_SingleCorrelationMatrix.Set_Data(CurrentData);
+ ComputeAndDisplay_SingleCorrelationMatrix.Run();
+ }
+
+
+ }
+
+
+
+
+}
diff --git a/Cell-by-Cell and DB/FormForSingleCellsDisplayForProcess.resx b/Cell-by-Cell and DB/FormForSingleCellsDisplayForProcess.resx
new file mode 100644
index 0000000..ae66e5c
--- /dev/null
+++ b/Cell-by-Cell and DB/FormForSingleCellsDisplayForProcess.resx
@@ -0,0 +1,1799 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 17, 17
+
+
+ 469, 17
+
+
+ 237, 17
+
+
+ 621, 17
+
+
+
+
+ AAABAAUAEBAAAAAAIABoBAAAVgAAACAgAAAAACAAqBAAAL4EAAAwMAAAAAAgAKglAABmFQAAQEAAAAAA
+ IAAoQgAADjsAAICAAAAAACAAKAgBADZ9AAAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAA
+ AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wEKChoPAAAAA////wH///8B////Af//
+ /wH///8B////Af///wFDQaM5OjufVTY2mDs+OpoxUkaLRUE+nFs3Npg9Pz/KdystvV9AP6JVPj2iTUxK
+ pUktLokrOTmfM////wH///8BTE7HlU5R0tdAQ86dP0LQh1BMtbFRUs/fQEPOnzo9wXtBRM6tW17Zo0tO
+ u4VNT9HXT1HGoUFE0JkAAAAD////AXFy1VtdXtWHXF/abWNi0Zd/a5+BZ2HBoVVY3JdQUstvWl3bXW1l
+ s5l2cMeTb3DYh05Q1FNkZ9ydTU67H////wH///8B////Af///wH///8BoGMyRZ9jMk98bKlLaVBmA59k
+ NRufYjJRoGMyQf///wH///8B////Af///wH///8B////Af///wH///8B////AZ1iMhWcYTBfm2AwaZxh
+ MWWbYDBpnGEwY55jMhf///8B////Af///wH///8B////ATAwn1c1NqQ/////ATIypHcyM5cfn2Y3GaBm
+ NpOmazq7sXVDm7d6SCEvLmIfOjmpiywtqZcgIXk9////Af///wEvM8ihQEPVc////wE0N9Dba1KEZ5xh
+ MOWbYTD/pWo4/Z9kM/+iZzXrVEipzTU506dnatyDOT3U6RYXOgf///8BOz/OoUpLzLtGRqyHQ0bW7ZVh
+ R/OfYzH5oWY1T695SAmwc0Bdn2Mx/ZxnReNRUKN1TEy/tUBE2uMzM4ED////AUhL1aFmaee1c3bpeWVa
+ vOujZTD/o2Uyqf///wH///8B////AaVoNYl5XInVT1Hg105Q1Y1FRJdb////Af///wFVWN2fZGbkc///
+ /wFzXpzZp2cy/6doM4H///8B////Af///wH///8BZmnmiWFj18teX9DDWVzluf///wH///8Bg4bgL4CD
+ 3yH///8Bo3p9cbp4Sv+4d0qF////Af///wH///8B////AVVYwQWkputLgILsU1NVzQ3///8B////Af//
+ /wH///8B////AbV4Sxu9fVL9vHxSw////wH///8B////AcqMX43VmGptonBBA////wH///8B////Af//
+ /wH///8B////Af///wH///8Bv4BXocCBWP/PkWah2ZtvV7+CWJ3AgVj/voBWs////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AcGFWQvOkGefzJBo+8aIYf/Eh2D/wINcu7p/VRn///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AdKjdhHgpnsvyo9kG////wH///8B////Af//
+ /wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
+ //8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAA////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B2IVLA9iFSwPYhksD////Af//
+ /wH///8BBwgTEQsLHCsAAAAL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkAAAAHAAAACQAAAAUAAAAH////AU0vGg2eZzoNcEoqEXFK
+ KxEWEA4JAAAABQAAAAkyM7tlTUze8yEipIEAAAADAAAABwAAAAkAAAAJAAAABQAAAAMAAAAJAAAABf//
+ /wEAAAAJAAAAA////wH///8B////Af///wEuLW8rS0m3rzw9nps+PaupLy+LSz09qZMaG0MLPz2pqUc4
+ YktOSayrREKipzw7qakuL4RFPj2rpSYnXg0vMbl5MzbW6xISLhE9PaSRR0ausURDrbE8PKNzRUKNY1RS
+ u7UyNJuLFBU3Fz4+rqknKHEb////Af///wH///8B////ATk8x306PcvdREe2pT1B2OkxM7JfPkLX2Scp
+ Zg88QNn3Qj6nmzs90fFNSZqfPUHd/TQ2m0s9Qdr1Hh9LDzU4wbc+Qt//NjijV1RY2qVfYuL5YWXKnUhL
+ vHE6PNT3NjmglUpNxtUuMIdLPUHb+zI0lCn///8B////Af///wH///8BPT+dL3ByzcdpatbnS07e5zg6
+ tl9MUNvfFhY5G0dK3/lWRXxrcG6+yWxrz+VPUuL7NzibSUlM4PUnKGYvQ0bZ9z9CyKlLTtCzHR9UG2Jl
+ 389ER8G9LS+ERVNV5f9tbdfRYmLe8UdJvXFNUOT7Ky5+QQAAAAf///8B////Af///wFQULpDenrc52Zm
+ yslNUN7PQkXBW2dq6ftvbsPBUlTk+2pRfGt6edrvbGe3zU9S4u09P6c9VFfk9UlKt4NTVd3LQUO4MV5h
+ 5/VTU66ldXTQ14OF9P9QUsKBcnXr3Wdnw8NSVN7vPT+pM15h6PtsbdXdTE2yV////wH///8B////Af//
+ /wF2eNZBcnTgYUlMxh9NT8IbXV/MQXh62lNlWa1JomQwQ4lqgGmHdauLaFaXQUNErzdgYun1UFK4QVpc
+ yy////8BXmDPT2xcnGeAa5l9gWuafXxhhU1cWbode37hXU1QzSdCRKsFXF7PT25w1E9QUs8n////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AZ5lMwWgYzJFoGMyTaBjMk2gZTNBVVCrKXR2
+ 4q00NIMH////Af///wGgaToLoGMySaBjMk2gYzJNoWUzP51mKgP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AZ9kMymfYTFZn2ExWZ9i
+ MVmfYzRDoWc5E6RvRgOkcEgDn2Y7FZ9jM0mfYTFZn2ExWZ9iMVmgZTUj////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bomw2A55i
+ MkedYTBjnWEwY51hMGOdYTBhnmIxWZ1iMVudYTBjnWEwY51hMGOdYTBjnmIySaRoOgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BnGY3B5xhMkmaYDBvmmAwb5pgMG+aYDBvmmAwb5pgMG+aYDBvmmAwb5xiMlWgZjYL////Af//
+ /wH///8BAAAAA////wH///8B////Af///wH///8B////Af///wEAAAANAAAALwAAACcAAAAD////Af//
+ /wEAAAAhAAAAMQAAABX///8BnGY6A5xiMyWaYTJXmWAwcZlgMXuZYDF7mWAwc5phMV+bYTMxomY6Bf//
+ /wEAAAAJAAAAJwEBBTsFBQ5BAAABMwAAABkAAAAD////Af///wH///8B////ATAxkjs8PMrnQUHIyQYG
+ DgX///8BAAAAAzc4uKNAQM3nPD20Zf///wH///8Bomk6O6BnNqOkajnlqm49+7B0Qvu4e0jrxYZRscmK
+ Vk+jb0UDAAAACTc1cmVMSsPTQUHT9zo71fszNMntKSugrw4PKi3///8B////Af///wH///8BMTSdQSsv
+ 0f8+QdjhCAgSBf///wEAAAADLTDAtTM32f89QcVxoW5ACZ1kNJuaYDD9mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+cYTH/pmo4/61xP7FBNmZLOjvS9Ssv0f8+Qtrhb3Lmy21x6PUwNNX/NTm7sQAAAAn///8B////Af//
+ /wE0Np5BMjXV/0RH2+EICBEF////AQAAAAMyNcS1Oj7d/0VGxHOfZTOtnGEw/5xhMP+cYTD/nmMx/6tu
+ O/m3eUT5qm06/51iMP+cYTD/nWIw/4VbXvVER9z/OTzQtz0/oQcAAAADPT+dSTs/2/1ESN71ICFTEf//
+ /wH///8B////ATY4oEE5PNj/SEvZ5QAAAS8AAAAtAAAALTU4vL9BReD/dlqB055iMf+eYjD/nmIw/59k
+ MtekajlPqnVEEbR8SxPKilRZqGs5555iMf+eYjD/nmIx/5Z8krk7PZ1DAAAAKRAQI0dPTZiXPD/Z/0NH
+ 3vMzM4EL////Af///wH///8BOTugQUBD3P9QUuL7VFTO4VRTzuFUU87hSkzY9UpM3f+aZEb/oGMx/6Bj
+ Mf+hZDLjo2o6F////wH///8B////Af///wGmazsxoWQy+aBjMf+gYzH/mGAz1VtYmpdhX8rVXl7f+UlM
+ 4P9ARN3/QUXRmf///wH///8B////Af///wE7PaJBSErg/2Vo7P10d+rvdHfq73R36u9naun7YlSz/6Jk
+ MP+iZDH/omQx/6NnNXX///8B////Af///wH///8B////Af///wGjZjSnpGYy/6RnNveKY3L/T0/e/01Q
+ 5v9VWOr/UVTi2URHx30iI1sN////Af///wH///8B////AT0/pEFOUeT/W17k4RkZQAc1NZIDIyNcBUhL
+ 0LV5XIz/pGUx/6RlMf+kZTH/o2s6Lf///wH///8B////Af///wH///8B////AahsOjOtcD1PTkmkW09S
+ 5f9PUuHvUFLVcUFCrCUsLGA7S0mEg0E/eVsAAAAD////Af///wH///8BQEGlQVVY6P9hZObhBwcRBf//
+ /wEAAAADTlDStYhidv+mZjL/pmYy/6ZnM/2lcEEL////Af///wH///8B////Af///wH///8B////Af//
+ /wFKTMVNWFvr/1lb2NsZGjpXFBQoTVlZwr9YW+r/XF7ir////wH///8B////Af///wFERqs/X2Lu/2ls
+ 6eEHBxQF////AQAAAANVV9ezkGdz/6hoMv+oaDL/qGgz96V0RQX///8B////Af///wH///8B////Af//
+ /wH///8B////AURGrwuDhu7PeHvz/2hp7v10c+79ZGbw/1te6fdQUs07////Af///wH///8B////AUxO
+ uyGPkeiXgIPggf///wH///8B////AXF02WWuf2/XuHVH/7h1R/+2dUb7o3ZEBf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AVVYwRGkpeZ9pafvsYuN7rdydOmTU1XNM////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Abl5TIe8ek7/vHpO/7x6Tv+pc0Yb////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bt3lMV718Uf+9fFH/vXxR/7Z5
+ TVH///8B////Af///wH///8B////Af///wHMlGU12qd2O6x4Swv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGtc0cTvX1T8759
+ VP++fVT/u31Su6BtQgP///8B////Af///wH///8BpHVFA71+U8fQj2P/2Zpt9dKWaLeicEEF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wG7fVOVv4BX/7+AV//AgVf/zIxhlbaBVAv///8B////Aat0SAe7flONv4BX/7+AV/+/gFf/vH5Uq///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbJ4TRPChFrfwYNa/8CCWv/HiF//2p5x6d+jdbHTlGirwYRa48CCWv/Agln/wIJZ/7+C
+ WPe2e1Av////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AcGFWSfNj2bdxohh/8GEXf/BhF3/woVd/8KEXf/BhF3/wYRd/8GE
+ Xf/Ag1z5un9VXf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AceNYBHeoneN3KJ369SYcP/LjWb/yItk/8iL
+ ZP/HimP9wIVcv7d9VDn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wG5h1oJ1qd6O+Ot
+ gVvcoHVh0ZVqTbiAVR3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AdiFSwPYhUsD2IVLA9iFSwPhhFED////Af///wH///8B////AQIC
+ BgkMDR87CgoYPQAAABf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bq182B7NvPgm2c0AJqGg7C6hoOwu6e1AH////Af//
+ /wH///8B////ASkrfh9KSNfxOznU8R8flJEBAQML////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAMAAAAZAAACMQAAACkAAAAlAAAALQAAAA8AAAApAAAAIQAAAAMAAAAXIRQKOWJAJR9YOSMhJxkPPSoa
+ DjsiFw4pAAAALwAAABMAAAAjAAAAKTAzjB0+P8t7TE7g4Swt2vkgIWI1AAAAAwAAACEAAAAxAAAAMQAA
+ ADEAAAAxAAAAFQAAAAsAAAAnAQEENQAAACcAAAAJAAAABwAAACsAAAAh////Af///wH///8B////Af//
+ /wH///8B////AQkJFxFOTLGxVFLW605PxNc5OazHSUjF3SwsbSdEQ8HXQ0O8rQAAAAM2N6R1TErL5Uc7
+ eVtNRpOPVlLR6VRUzOM1NaLDS0nL4Tg4mEM/P7azSEfC1SEhUhEAAAAFLS+xoTQ34/8xNKuNAAAABz4+
+ tatUU8rjUVDJ409OyeNRT8zjODmmbzo4e2VcWcjXZGPc7T9AvtUfIWVXICJZGUZFxNtCQ7ejAwEBA///
+ /wH///8B////Af///wH///8B////ATY3mz82Odn/NDfC0VpcxJc7Ptj9QkXY4ScnXhsyNs/1Q0fVxwAA
+ AAMxNLOHPkLj/0U9hXU3Oc/1NTjJ61lVq5NER9XxP0Pf+y4veyUwM8PNQ0fd8SYmXRMMDR4VNTjI5zc7
+ 3P9DRtLZCgsYE0NGzaNna+7/ZWnb92pu2NNobOHLNjmodz0/0O0yNc3tTVC9l1xg4vVCRczTJyhoIzQ3
+ 0vlDRs+5AwICA////wH///8B////Af///wH///8B////AT0+qSdnaur3UlTO3zc3jZM3OsnvS07c2SYm
+ XRs6PdP1SUzXxwAAAAM2OLaHR0ro/1FEh29ZW9rjZGbd8UI9jqs4ObTbSUzi+ScnYB02OcfNS07h8SUl
+ WRMzNZBhPkDe/zs+xedLTuj9LS6BTT5AqRVjZuTVUFTk+y4wjIEAAAEPNTedSz1A3v9TUsfXV1OopVZU
+ scFQTqqxKCtsLzs/1/lKTdS9BgYMA////wH///8B////Af///wH///8B////AQAAAQc2N39lc3XDvXt9
+ 3+VgYuP/UVTf2yYmXRlFSNj1UlXV0wAAABc4OrKTT1Lq/1hGgW9OOVFpbGmsw3x81eFrbeT7UFPl+yws
+ cR89P8rNUlXk8RsbQRs/Qb23RUjd+z0/q1dMT+b9REe7oQAAABMlJ2k5bG/k6VJW4fknKXFrNTecU01Q
+ 5v9nat3laWzXv19h2+1MT+L3MjWGMUZJ3flTV9XRAAECIQAAABH///8B////Af///wH///8B////ATc5
+ ig9qaNHfVVXF0VFPi5FPUdv3UVPczSsraRdMT931a27r+URElJtYWMnXUFPo/2dPe2doYr7FY2HP6VVK
+ d6VWVcrpUVTj8ystaw9DRs7NWVzm8SQlXDtKTNv3TE7Xxzg5iAdIS9fXWFvg6zg4f3dcWauvXly9z4OE
+ 9f9VWN/zMjOFSWJk6e9YWtjjTkyMlVhY2/FIS9XJMDF6G01Q4PljZu37XFqzuUJCl2kAAAAD////Af//
+ /wH///8B////Af///wFtb9V3m53s7YiJ8fddX+fpR0rKWTg5jQ9madzjXmDWy5CR6+N1d+73Uk/Gu5ph
+ PENxXJJ5nJzl6Y2O7/lnaejzSUvMiQcHDgNKTNLNYWPo8URFrHNzdefvSkzIb////wFNT8qDd3rq70lL
+ vceDhObzhojn84eI5/OAg+rxRke0R2Nmz0+dn+zjgoPw91JU389GSL8vPT6eEWhr3+lcXtbZj5Hv9VVX
+ 1aX///8B////Af///wH///8B////Af///wH///8BOjmpDz9Arx0/QqgN////Af///wE5PZsLOj2cBzk8
+ qAtAQq0bmmM6G6FjMUWhZDFFmGA6SYVZVVePXkhNoGs8DwAAAANPUtXNaGrq7ywtbxc3O5gLQEKjA///
+ /wE9QaAFNzuZC45eSyeXXzlJl185SZdfOUmYYTtHoGY5M6l2QAc5O6YLP0GuGUFCowX///8B////ATk8
+ mgs8P50HPT6tF0JDpgn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BnmM0CaBjMkWgZDJLoGQyS6BkMkugZDJLoGc2MX9iQwNlaNrJeXzl7TQ0
+ gw3///8B////Af///wH///8Bom0/B6BkM0GgZDJLoGQyS6BkMkugZDJLoWYzPZxkKgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaBlMzGfYjFTn2IxU59iMVOfYjFToGMyUaNn
+ OCVAPZIPNjeXEf///wH///8B////Af///wGpckMFoGY2NZ9iMVOfYjFTn2IxU59iMVOfYjFToWY1Jf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaBlNg2fYjNRn2ExW59h
+ MVufYTFbn2ExW59iMlmfZTY5omg7E6VtRgWecUcDpnBIBZ9nPhWfYzVBn2EyWZ9hMVufYTFbn2ExW59h
+ MVufYzNPoms8Cf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGeZDQjnWExX51hMGGdYTBhnWEwYZ1hMGGdYTBhnWIwX55jMlWeYzJPnmMyVZ1iMF+dYTBhnWEwYZ1h
+ MGGdYTBhnWEwYZ1hMF+gZTYl////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BnWM0L5xhMGWcYTBpnGEwaZxhMGmcYTBpnGEwaZxhMGmcYTBpnGEwaZxh
+ MGmcYTBpnGEwaZxhMGmcYTBpnGEwZ55kMzunazID////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wEAAAADAAAAA////wH///8B////AZ1jNCmaYDFlmmAwcZpgMHGaYDBxmmAwcZpf
+ MHGaYDBxmmAwcZpgMHGaYDBxml8wcZpgMHGaYDFtnWQ1O6JlOAX///8B////Af///wH///8BAAAAAwAA
+ AAMAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAMAAAAXAAAAHwAA
+ AB0AAAAL////Af///wH///8B////AQAAABEAAAAfAAAAHwAAABMAAAAD////Af///wGfZTgRnGEzRZpg
+ MW2ZYDB3mWAweZlgMHmZYDB5mWAweZlgMHmZYDB3mmAwc5thM1WeZDcdrV4xA////wH///8BAAAABQAA
+ ABEAAAAhAAAALQAAADEAAAArAAAAIQAAAA8AAAAD////Af///wH///8B////Af///wH///8B////AQEB
+ AwktLGpnMjBthTMxcX8fH1Ar////Af///wH///8BAAAAAygnX0cyMW6DMjBtgyopYU8AAAAF////Af//
+ /wH///8B////AaJmPBGiaztXqG4+ma5zQrW1eEa/unxKubt+TKO1eUhro20+IZtjPQP///8B////Af//
+ /wEAAAAJAAAAKxQULFlAPXiNTEmcpUhGpK09O5ilKChshQoKGlEAAAAlAAAAB////wH///8B////Af//
+ /wH///8B////AQUFDQk1N8XZOTna/0RF5v8yM6JZ////Af///wH///8BAAAAAzEzs5E4Odr/Pz/g/z5A
+ x6UAAAAF////Af///wGjbD8NoWg5d6BmNtehZjb9oWY2/6FmNf+iZzb/pmo5/61xP/+9fkr/yIlU6cyN
+ V5W2fU0h////AQAAAAUDAwgtTEqdo1lW2/U9Pdr/LS/U/ygr0v8pLNP/LjDV/zEzx+0lJ3yNAQECIQAA
+ AAP///8B////Af///wH///8B////AQUFDQkvMsHZKi7Q/z9D5f8zNaJZ////Af///wH///8BAAAAAy4x
+ sZEqLtD/Njrc/z5ByKUAAAAF////AaFpOkOdYzPdmmAw/5pgMP+aYDD/ml8v/5pfL/+aYDD/ml8v/5pg
+ MP+aYDD/nWMy/6drOf+1d0TvsndGYwcEAxM8PKCbOzzZ/ykt0P8sMNP/SEzo/3J27/+Hi/L/U1fk/ysv
+ 0f80ONb9Jyl9cQAAAAn///8B////Af///wH///8B////AQUFDQkyNcPZLjLT/0RH5/81N6JZ////Af//
+ /wH///8BAAAAAzE0s5EuMtP/Oz7f/0FEyaUFBAIFomk5XZxiMfmbYC//m2Av/5tgMP+bYC//m2Ew/5xh
+ MP+cYjH/nGIx/5thMP+bYC//m2Av/5tgMP+cYTD/o2c2/YhbQpk4O9D1LjLT/zA01P82Ocm5Pj+5RTs8
+ sC1JS8JReX3k0UNH5P81Odn/REfS1QgIFBP///8B////Af///wH///8B////AQUFDQk2OcXZMzbV/0lM
+ 6v83OKNZ////Af///wH///8BAAAAAzQ2tZEzNtX/QEPh/0VHyqWcZjdJnmMx+ZxhMP+cYTD/nGEw/5xh
+ MP+cYTD/oGUz/65xPfm+f0rxxYVP+bd5RP+jZzX/nGEw/5xhMP+cYTD/nWEw/51jNP9gVLP/S0/i/zxA
+ 1N09Pp4P////AQAAAAMAAAAJJSZqRTo91/01ONf/TFDk9SYnZB3///8B////Af///wH///8B////AQUF
+ DQk5PMfZODvY/01Q6/8wMoxnAAAAGwAAABsAAAAbAAAAHTM2q5k4O9j/REjj/1FOvrefZDPlnmIw/55i
+ MP+eYjD/nmIw/55iMf+gZjXNp248V6p1Qx2pdUcRtn1MIc+PWWO7fEjdomY0/55iMP+eYjD/nmIw/55i
+ MP+hbk39iovfv0tNx3UAAAANAAAAGwAAACsAAAFBNDNzgz9B2v04PNn/Sk3j9TMzghX///8B////Af//
+ /wH///8B////AQUFDQk8QMjZPEDa/1FV7f83OIijKilWeSopVnkqKVZ5KilWeTk7pb88QNr/SEzm/4Fg
+ gfufYzD/n2Mw/59jMP+fYzD/n2Mx/6JnNpmhckMJ////Af///wH///8B////Af///wGqckIVqGs6x6Bj
+ Mf+fYzD/n2Mw/59jMP+fYzH/lF8zaQAAAC8CAgdJKytQdWJem6VwbMjTYGDj+zxA2v89Qdv/REfVyTEx
+ eAP///8B////Af///wH///8B////AQUFDQlAQ8rZQUTd/0xP5v9ZWuf/Wlrn/1pa5/9aWuf/Wlrn/1ZX
+ 5f9BRN3/UVHZ/51lQP+gYzH/oGQw/6BkMf+gZDH/omc1wZ9wQwX///8B////Af///wH///8B////Af//
+ /wH///8BpWs8H6JlM/GgZDH/oGQx/6BkMf+gZDH/lF8222dipa1zcNnramjp/01P4/9BRd3/QUXd/0JG
+ 3v9BRdn3QUS/R////wH///8B////Af///wH///8B////AQUFDQlERszZRknf/11g7P96ffL/en3y/3p9
+ 8v96ffL/en3y/3l88v9PUuT/aFaq/6JkMP+hZDD/oWQw/6FkMf+iZDH/o2s6R////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaNnNpGhZDH/omQx/6NlMv+maDX/nWhN/1hV2v9GSeD/SEvh/01Q
+ 5v9UV+3/VFfr/UpN2MtDRb1FBgYTA////wH///8B////Af///wH///8B////AQUFDQlHSs/ZS07i/2Fk
+ 8/9YWsmdY2bVa2Nm1mtjZtZrY2XUbVRXzr9LTuL/gl53/6NkMP+jZDD/o2Qw/6NkMP+kZjPlonJACf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRsOzmoaTX7qm0526RpOZlpWqfdTk/f/0pN
+ 4v9QU+j/Wl3r81td5MFPUtJ9MjOISwYGDy8AAAApAAAAFwAAAAP///8B////Af///wH///8B////AQUF
+ DQlKTdDZT1Ll/2Rn9P9AQqlZ////Af///wH///8BAAAAA0RHvpFPUuX/k2NZ/6RlMf+kZTH/pGUx/6Rl
+ Mf+laDS3////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNwQgWpcUEvpXJFBRob
+ QxNOUNrzUFPl/1RX6P1ER72LOjuYGwsLGAUAAAAPNzd4Z1tYoKdWVJafRkWKYQAAAAP///8B////Af//
+ /wH///8B////AQUFDQlOUNLZVFfn/2ls9f9CQ6pZ////Af///wH///8BAAAAA0dJv5FUV+b/n2ZC/6Zm
+ Mv+lZjH/pmYy/6ZmMv+maTaR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ASwtbg9RVN7zVVjp/2Nm6vcTEzBZAAAANQAAADMCAwdFUVLI01ha6v9fYvD/V1rWl///
+ /wH///8B////Af///wH///8B////AQUFDQlRU9TZWFvp/21w9/9ERatZ////Af///wH///8BAAAAA0pM
+ wJFbXOT/o2c8/6ZnMv+mZzH/pmcy/6ZnMf+naTaB////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////ATAxcwNdX9+7Zmny/11g7/9aW9nrXVyzu2torrOAfNHbZ2jt/1da
+ 6f9aXev/Sky+Rf///wH///8B////Af///wH///8B////AQgIEwdWWNfXZGfx/3V4+f9ISbJV////Af//
+ /wH///8BAAAAA09Rx41kZef/pWk8/6hoMv+oaDL/qGgy/6hoMv+oazd3////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFPUMItnZ/x65OW+f9oa/L/YGPv/2Nl
+ 8P9hY+//YWTw/15h7f9TVdOfODiMA////wH///8B////Af///wH///8B////Af///wFoa9W3m57q35CS
+ 6t9OUMBB////Af///wH///8B////AVVXzHGVluffsnVL/bZzRP+2c0T/tnNE/7ZzRP+yc0R7////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BVVjBJ5uc
+ 4qWys+/pqqz1+ZeZ9fuDhvD1bG7oyVNWz2tDRKQH////Af///wH///8B////Af///wH///8B////Af//
+ /wEwOYsDKTqAAy46ggP///8B////Af///wH///8B////Af///wE4PHoFuHhM47t5Tf+7eU3/u3lN/7t5
+ Tf+1eEuL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEwMZkHPj+vGUFDrR09P6cNNzeIA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BuXlMvbx6
+ Tv+8ek7/vHpO/7x6Tv+4eUyv////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bt3lNk718Uf+9fFH/vXxR/718Uf+6e0/fp3FDB////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Aax2Rwmxfk4T////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8Bs3dLTb59Uv+9fVL/vX1S/719Uv+9fFL9sXdLP////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AbZ5TV/cn3Dz5Kl5yeStfI/WonJRu4hZGf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqXBEDbx8UuW+flT/vn5U/75+VP++flT/un1Ru6Bt
+ QgX///8B////Af///wH///8B////Af///wH///8BpHVFBbt8Uce/f1X/xYRZ/8+MYP/bmm3/zpNl46Jw
+ Qgn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Abh7UIO/gFf/v4BX/7+A
+ V/+/gFf/wIFY/8OFWpWicUIH////Af///wH///8B////Af///wGkcEMDuHxQh7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/un1Sm////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Aat0
+ SRO9gFbhwIFY/8CBWP/AgVj/wIFY/82MYv/eoHLH1qR0UbJ/UBmndEYLqnNGE7h9UUe8f1W7wIFY/8CB
+ WP/AgVj/wIFY/8CBWP+/gVf7sHdKLf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wG2e1FFxYdd+cKEW//Ag1r/wINa/8GDWv/Ki2H/3Z5y/+SnevffoHTt0pJn88WG
+ Xf/Bg1r/wINa/8CDWv/Ag1r/wINa/8CDWv+4fVKT////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BwYVZVc2PZvfFh2D/wYRc/8GEXP/BhFz/wYRc/8KF
+ Xf/DhV3/wYRd/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/7uAV72pc0QJ////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AcSIXUHbnHLb15hv/8iK
+ Yv/Dhl//woVe/8GFXv/ChV7/wYVe/8GFXv/ChV7/woVe/8KFXv/BhV39un9Wn6t1SQv///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGueUwN2qV4c+WugtXkq4D92p51/9GTa//Mj2j/y45n/8uOZ//Nj2j/yItk+cCFXLuzfFBD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaJtQAXElGcv2qx/Y+OvgoXhpnuT255zjdWXbX3DiV9VsXtQHaBu
+ RAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAAAAP//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//AAAAAAAA//8AAAAAAAD//ygA
+ AABAAAAAgAAAAAEAIAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAD///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcAAAALAAAACQAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bx3Q+A9iFSwPYhUsD2IVLA9iF
+ SwPYhUsD2IZLA////wH///8B////Af///wH///8B////AQAAAAUJCRgzDxAmVQkJFkcAAAAjAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Aa9q
+ OweydkAJtHhACbJ2QAmuckAJrnJACbV2QwnjmYYD////Af///wH///8B////Af///wEHCBMHNzW7uUlE
+ 3PMsKsnpICGIkwICBRv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAAAwAAAAsAAAATAAAADwAAAAkAAAAPAAAADwAAAAcAAAALAAAAEQAA
+ AAv///8BAAAAAxMLBQ9UNB0dgFQwFbJxQQ90Sy0XTjQdH1E0Hh9wSi0VFxMQDwAAABEAAAAJAAAABwAA
+ ABEAAAANHB5KBzAyxMttbuXvU1Tr/yQl2PskJHNdAAAABf///wEAAAALAAAAEQAAABEAAAARAAAAEQAA
+ ABEAAAAPAAAABf///wEAAAAHAAAAEQAAABMAAAANAAAABf///wEAAAADAAAADwAAAA8AAAAF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAR0PECxTIiFRbxUWNV0DAwg/EhIvXRQU
+ NFkKChoXFBQyPxESL2EQEi07AAAAAwYGDQ0WFTBVIRsxaUUuLzVgPSkjJRkZTyolSXcpIj9xIBURTRIS
+ LFUSEzFfEhMtKQ0OISMSEzBfFBQzUwcHEQ1ERqMPNjiWIS8yy90wM+b/LjCztwEBAg8AAAAFEhIvOxES
+ LmEQEi1jEBItYxASLWMQEi1jEhMxXQwNIBsAAAATAwQLPRYXPWUkI1NzFBQyWQEBAikAAAAHBwcRDxMU
+ MlMSEzFdDg4iH////wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAk7Oo+DZF/f91hW
+ 6v9dXt/7NTiq0UxL2vtOTdT3MjJ7Hz09u7NWU+P9QULAsQAAAAMpK2kbQ0PK7VRT4/1FPpF3QDRWW2Fc
+ 0eVaV+f/X1/n/T9At91DQ8nxU1Hg/T4+qmE3OKVpT03b/UxM0uklJV0X////AQkKGBUwMrrPLzLc/z1B
+ 2vUaG0MvAAAABT0+uatZVt/9Xlzg/VtY3/1YVt/9WFbf/VRS4P0yNJFVLSxpX2dizd1kYOn/cW/u/0lL
+ 2PktL56zDAweJScqbyFJSNP1U1Lh/TIzkU3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEcHkYROjzL6TE01/82OcTVXF7Op1RY3/c1Odz/P0LR2xERJg0xM7i1Oz/i/zw/xbUAAAADKixtGy4y
+ xO9DR+j/QzyNez89s7cyNtf/MjXI8VdVvaVhY9jlMjbY/0JF4PsyM4UxNDeoazA01/9FSNvrJiddFwAA
+ AAMmJ2dFNDfP+TU52/9GSuv/MDGOewAAAAc6PcGdYGTs/2xw6/90d+P7cnbl+XF15/dZXeL1MTOMX0JD
+ yd8zNtj/NjrL41lczLdsb+n7Sk7n/zY4pHUoKm4jLjLL+UZK5/8xM5JP////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BNjd/DTs+0PFMUO7/LjCKnwUFDkMwM6axPkLi/0VHz80GBg8JNTi7tUNH
+ 5v8/Qse1AAAAAyosbRs0N8fvSk7s/0lAjn0+Pry/SU3q/z49stMuIB9nNi9jiTY62f9KTeH5KytuJzc6
+ qWs3O9v/Sk3d6yYnXhcAAAALNzmmmzk93P86Pc39RUnn/0BCxMkICBIVQEKpHV1g3tlfY+//Oz7I7SQm
+ X2UqLGcjP0CXGTI1kFc3Otb9PEDY/R0fVW8KCyJNMDKRqTM1mbMrLXxrJSdnJTQ3zvlNUOv/MzWWUf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFOT8iNmpzy+3h56P1cXdTnSEnG50NG
+ 5P9JS9PPBgYRCTk8vrVJTen/Q0bGtwAAAAUpK2sbOTvK71BT7/9OQ45/W02QaYqM6vWGiO3/Y2PZ8VJQ
+ veE8P9v/UFPj9yoqZyU5O6prPkHe/09S3+smJ1wZERIsIT9ByeVBROH/PT+xpz9C2vtSVeb5JidmRQAA
+ AAM/QrMxaWzo6V1h7v89QMThFRY3RwAAAA04OqlvPUDc/2pq7f9+fOXzfnvl83585fNtauDzUlLGwykr
+ byU5PdH5VVnw/zU2mFkAAAAD////Af///wH///8B////Af///wH///8B////Af///wEAAAAFCAgSJygq
+ bXlZW7Sren3V1YSF5vdSVej/TVDUzQYGEAk8Pr+1Wl7u/0dKw8cAAAAdGhtEMT5B0PNWWfD/UkWNg2c9
+ G0M7LEZ/UUyUtXV0xtGEhd/zW17l/1VY5vkvL3kpPD2sa0RH4f9UV+DrISFPHTEygmNER939R0rc+Ts8
+ nCtBRM/XWFvx/zk8oY8AAAAXAAAAIS8xf11zd+r5XmLu/zw/tssLCxo3ODulY0RH4P9gZOv9VFbAtVZZ
+ xqtSVczfSk3l/0ZJz7stL3cjP0LU+WVo9/8yNZGFAAAAJQAAABkAAAAD////Af///wH///8B////Af//
+ /wH///8BABcXA1dWt599edztPT6gsx4eQWdHSLPJT1Lq/01Q0sMFBQ0FQELBtWFk8f9iZeD1KSpqgzc3
+ cYlLTd39Vlnu/1xLi3tiUo2De3bR61dUut06LDyJSEF7s0pN5P9UV+T1MTR8FT1ArGtKTuX/WVzh6xgX
+ OydERry7S07m/0hLzsE6On8FQkTBiVVY7v9RVNPdICBLU0VCgpNFQoGVT06ry4aI9P9gY+7/P0GyuS4v
+ ejdUV+T1Y2b0/zU2ip8nJ1B1WVjR5UpN5P9CRb57Li93IURH1/lrb/v/TE7H31FOjJ0+PYZ1AAAAB///
+ /wH///8B////Af///wH///8B////Af///wFGSMFplZf0/YaI7/+Jhu35e3ry/09S5/9HScZ/AgIFA0dJ
+ x7F4e/X/YmTf+5CQ8v2RjvD9WVzs/01O1vF+V15Td1RpWXl75fWXmfP/g4Hr+4uI8v1TVur/SkzSxSgr
+ WAVAQq1rUVTo/15h4usjJVk3XF7c82hr7/9ERrxv////AT9BpTdcX+b9dnnx/Tw+oq17e/D/kpL2/5OS
+ 9f+Rkvb/lZj3/2dq5/cyM3whWVzPg6ut9/2Ehe/9h4Xu+15f7P9IS9TXQEKnFTY4ix1XWt73bnHw/3d5
+ 6/+Ojvb/WFrV0xsdQQv///8B////Af///wH///8B////Af///wH///8BQECgA1NWxFWHid+xgYPixWNm
+ 4LVKTMhvQkOqB////wFNUMJraWzWo0hKumFoatGFhIbhw1da2K1tVYBXpGQwP6RlLz92V3RngHrEt4yK
+ 1tFwbdLNV1K9n0RFqh3///8BQkOva1da7P9jZuTrOjyWS2Bj1KNeYdGfQkOoHf///wE7O5EDVVjIlWVo
+ 1qFHSLOLbWjBtXNtwbdzbcG3c23Bt3Rvw7VjYMKnZFKCEVdOkAVWV8hhi43js21w4rtPUtOBQUSuGf//
+ /wFCRKsPWl3OnV1gz51VV8B5foDiv1FS0ZFARaMH////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BOjOVAz09lAU6OpID////Af///wH///8B////Af///wH///8B////ATo9lAU/QpQDoGU0H6Fj
+ MUWhZDFFoWQxRaNkL0WhYzFFoWMxRaNmMjumcUMJ////AURGsWtdYO7/aGrm6ycnYRf///8B////Af//
+ /wH///8B////Af///wH///8BpWc3GaNlL0OjZC5Fo2QuRaNkLkWkZS5FpGUwQ6JnNTmncz8J////ATY6
+ hQM9PpAD////Af///wH///8B////Af///wH///8B////ATo8lAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZ1jNA2gZDJFoWQyS6FkMkuhZDJLoWQyS6FkMkugZDJJoWo6I////wFLTb1lio32/3d6
+ 6OkyMn4T////Af///wH///8B////Af///wH///8BpHQ9BaBkNTmhZDJLoWQyS6FkMkuhZDJLoWQyS6Fk
+ MkuiZzQ7nGQpBf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGobywDoWQ0NZ9jMVGfYzFRn2MxUZ9jMVGfYzFRn2MxUZ9l
+ NEelbDwTSEqzJ1VWw2tQUr5dQECiA////wH///8B////Af///wH///8BsH1OA59mOSWfYzJPn2MxUZ9j
+ MVGfYzFRn2MxUZ9jMVGfYzFPpGg2Jf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNrMxefYjJRoGMyVaBj
+ MlWgYzJVoGMyVaBjMlWgYzJVoGQ0SaJtPxethGUD////Af///wH///8B////Af///wH///8Bn3VUA6Jp
+ OSOfZDNRoGMyVaBjMlWgYzJVoGMyVaBjMlWgYzJVn2IzTaRwOA3///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGnZjQDnmM2NZ5gMVufYDFbn2AxW59gMVufYDFbn2AxW59hMVufYzNVn2Y3NaRpPBWlbUcHonJFBaJx
+ TAWlb0YHn2hAF59lODufYTJZn2AxW59gMVufYDFbn2AxW59gMVufYDFbnmExW6BnNy////8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaJsNQ2eYjJNnWEwYZ1hMGGdYTBhnWEwYZ1hMGGdYTBhnWEwYZ1h
+ MGGeYjFbn2MyUZ9lM0meYzNLn2MyUZ1iMV2dYTBhnWEwYZ1hMGGdYTBhnWEwYZ1hMGGdYTBhnWEwYZ5j
+ M02jaDoN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BoGU6F55hMlWcYTBlnWEwZZ1h
+ MGWdYTBlnWEwZZ1hMGWdYTBlnWEwZZ1hMGWdYTBnnWEwZ51hMGWdYTBlnWEwZZ1hMGWdYTBlnWEwZZ1h
+ MGWdYTBlnWEwZZ1hMV2gZjcb////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGcZjcZnGEyWZpgMGubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5xhMmGfZjYn////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAMAAAADAAAAA////wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAMAAAAD////Af///wH///8B////AaFmNxOcYjJNmWAvb5pgMHGaYDBzmmAwc5pgMHOaYDBzmmAwc5pg
+ MHOaYDBzmmAwc5pgMHOaYDBzmmAwc5pgMHOaYDBzmmAwcZxhMmGeZjgjqFU2A////wH///8B////Af//
+ /wH///8BAAAAAwAAAAMAAAAFAAAAAwAAAAMAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAsAAAAVAAAAFwAAABUAAAAPAAAAA////wH///8B////Af//
+ /wH///8BAAAACQAAABUAAAAXAAAAFQAAAA8AAAAD////Af///wH///8BnWY6B51jNi2bYTJdmmAxc5lg
+ MHeZYDB3mWAwd5lgMHeZYDB3mWAwd5lgMHeZYDB3mWAwd5lgMHeZYDB1m2AyaZxiNUOhZjoR////Af//
+ /wH///8B////AQAAAAMAAAAJAAAAEwAAAB0AAAAjAAAAJwAAACUAAAAfAAAAFQAAAAsAAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAUAAAAhAAAAQwAAAEsAAABHAAAALQAA
+ AAn///8B////Af///wH///8BAAAAAwAAAB8AAABDAAAASwAAAEkAAAAzAAAAC////wH///8B////Af//
+ /wH///8Bn2k7CZ5iNyebYzRLmmEyY5hfMW+YXzJ5mWAxgZlhMoOYXzF9mF8xc5lgMWuaYTNXnWU1N5xl
+ OROndDMD////Af///wH///8B////AQAAAAcAAAAZAAAANQAAAEcAAAJPBAQLWQkKGmEFBg5bAQEDUQAA
+ AEkAAAA3AAAAHQAAAAn///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFMzSLY1FO
+ wM1VUcDPVVHBzUFAqZcEBAsJ////Af///wH///8B////AQAAAAUuLoJVUk/AzVVRwM9VUcDPREOsowMD
+ BQ3///8B////Af///wH///8B////Af///wGjbj8np24+c6xyQLGvc0LjtHdG87p8Sfm/gU35xYZS98mL
+ VuvQkFvH0pNeh8CGVEGhbkAH////Af///wH///8B////AQAAAAcAAAAjBQUOSzw6do1jXbbDYl3R6VtX
+ 2vNTUdz3TErY9UZFzus8PLLJKClxjwcHEU8AAAAnAAAACf///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABTEzoX0oK9L/KizS/zY53/87PcfDCAgSCf///wH///8B////Af///wEAAAAFLjCYayks
+ 0f8qLNL/NDfd/zw+zdUKCg4N////Af///wH///8BpXFFA6JrPTehaDmzn2U0855kM/+eYzP/nWMy/51j
+ Mv+eYzL/nmQz/6BmNf+jaDf/qm48/7l7SP/KilT7zo9Yz8CEUmejb0UH////AQAAAAMAAAAbFhc2WWBc
+ ws9aV+T9NDbX/ycq0P8lKdD/JSjQ/yQoz/8lKM//JyvR/y4x1P0xM7fbGRpJZQAAAB0AAAAD////Af//
+ /wH///8B////Af///wH///8B////AQAAAAUyNaJ9KS3Q/ykt0P87P+L/PUDIwwgIEgn///8B////Af//
+ /wH///8BAAAABS8ymGsqLtD/KS3Q/zk94P8/Q8/VCgoODf///wH///8BpG1AD6BoOJOcYjH5mmAv/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+bYTD/n2Qz/6hsOv+4eUb/un1Kvalz
+ RCcAAAAJEBApP05Nxts4Otn/KS3P/ykt0P8vM9b/Sk7p/3J28v+Dh/L/aGvr/zU52v8pLdD/LjLV/zQ4
+ wuUSEzJDAAAAC////wH///8B////Af///wH///8B////Af///wEAAAAFNDaifS0x0v8tMdL/P0Pk/0BD
+ ycMICBIJ////Af///wH///8B////AQAAAAUxM5prLTHS/yww0v89QeL/QkXP1QoKDg3///8Bo29AH55l
+ NcubYTD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/nGIx/6RoN/+scD7lhlgzSTg5nps2Odf/LTHR/y0x0f8uMtP/Oz7T5UlM0aVSVc+NY2XUo4yP
+ 5NuQlPf/Oj7d/y4y0/9BReX/NDanoQAAARP///8B////Af///wH///8B////Af///wH///8BAAAABTU3
+ o30wNNT/MDPU/0NG5v9DRcrDCAgSCf///wH///8B////Af///wEAAAAFMTObazE01P8wM9T/QUTk/0RH
+ 0NUKCg8No24/H6BlNNWcYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/nGEw/55jMf+hZjX/o2c2/6Fm
+ NP+eYzH/nGEw/5thMP+bYTD/m2Ew/5thMP+cYTD/nmMx/6FnNutJQ7btMDTU/zA01P80N9f/ODvFwT9C
+ pxn///8B////Af///wE4OJMPUFPLtVBU7f8yNtX/P0Pi/0lM1uETFDId////Af///wH///8B////Af//
+ /wH///8B////AQAAAAU3OaR9NDfW/zQ31v9HSuj/RUfLwwcHEQv///8B////Af///wH///8BAAAABTI0
+ m2s1ONb/NDfW/0VI5f9HSdHVVzsnF6BnNcOdYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nWIw/6Jn
+ NP+vcj73v4BK78qJUu/OjVX5woJM/61wPP+gZDL/nWIw/5xhMP+cYTD/nGEw/51iMP+dYjD/iV5e/11g
+ 4/9RVOX/PkLZ9T0+pSn///8B////AQAAAAMAAAAHAAAAEx8fVEs4O9L7NDfW/zs/3f9PU+T1KittJ///
+ /wH///8B////Af///wH///8B////Af///wEAAAAFODqlfTg72P83Otf/SUzp/0ZIyMUDAwYZAAAAEwAA
+ ABEAAAARAAAAEQAAABUvMpFzODvX/zg71/9IS+f/SUzS1ZliNo+eYjH/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nmIx/aJoN8+obz5hq3VDK6l0RResd0gXt35NL86PWXXKiVPbrnA9/6BkMv+dYjD/nWIw/51i
+ MP+dYjD/nWIw/55iMf+chJz1jJDo701QzsEcHDUHAAAACwAAABUAAAAfAAAALwAAAEEmJmB9QELZ/Tc7
+ 1/89QN3/TVDj8zMzgyH///8B////Af///wH///8B////Af///wH///8BAAAABTg7pX06Ptr/Oj7Z/0xQ
+ 6v9ER7/PAAACSQAAAEcAAABHAAAARwAAAEcAAABJKCp3jTs/2f86Ptn/Sk/o/19Xuu2fZDL3n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+fYzH/oGQy9aNrO22keEYH////Af///wH///8B////Af///wH///8BpXBDEbF1
+ Q5+laTb/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/oGU042RJWR0WFTMbAAAAJwAAADkAAABHBgYRWSMi
+ R3VdWpepb2zf8T9C3P86Ptn/QETf/0VI1tszNH8L////Af///wH///8B////Af///wH///8B////AQAA
+ AAU6PKZ9PkLb/z5C2/9PU+v/YGDZ72JetcFiXrXBYl61wWJetcFiXrXBYl61wV9dwNdBRdz/PkLb/05S
+ 6v+JZXr/oGMw/6BjMf+gYzH/oGMx/6BjMf+gYzH/oWQy+6NqOlv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGncUIHp2s6oaFkMv+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+EVi99AAABRRER
+ JmFEQ3aRdG+3xX562Ot6dun7X17o/0FF3f89Qdv/PUHb/0FF3/9BRMOH////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAFOz2mfUFF3v9BRd3/R0vj/0lL4f9JTOH/SUzh/0lM4f9JTOH/SUzh/0lM
+ 4f9JTOH/Q0fe/0FF3f9ZVdL/nmY9/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6NpOJeZgEwD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaVtPxmiZjTloGQx/6BkMf+gZDH/oGQx/6Bk
+ Mf+gZDH/kl873XBrsb2CfuLzcW7s/1FT5f9DR9//QUXd/0FF3f9CRt7/Q0ff/0JG3v9BRM3NQkSoE///
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABT0/p31GSeD/Rkjf/1FU6P9kZ+7/ZGju/2Ro
+ 7v9kaO7/ZGju/2Ro7v9kaO7/ZWju/1te6v9GSeD/blmi/6FkMP+hZDH/oWQx/6FkMf+hZDH/oWQx/6Jm
+ M/OkbT4l////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpGk5f6Jk
+ Mf+hZDH/omQx/6JkMf+kZjL/pmc0/6VrPv9jXdb/R0rg/0ZJ3/9GSeD/SEvi/0xP5v9SVev/VFju/01P
+ 4fdFSMqnQEGqGf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAU+QKh9SUzi/0lM
+ 4f9dYPH/goTs94WH5eGGiOffhojn34aI59+GiOffhYjm34GE5O1dYOb/SUzi/4phaf+iZDD/omQx/6Jk
+ Mf+iZDH/omQx/6JkMf+kaDW7onRBA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaNtPiekZjP3pGYy/6dpNP+qazj9oGg/44Nmkv1cVMP/SUzf/0lM4f9NUOb/Wl3x/2Jl
+ 9v9dYOz9VFbd1UdJwpU0NYtBBgYQEQAAAA8AAAAH////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAFP0GpfUxP5P9MT+P/X2Ly/1RW0MMbGkINNTWQBTU1kgU1NZIFNTWSBSYmYgc7PaFtTE/j/01Q
+ 4/+dZUP/pGUx/6RlMf+kZTH/pGUx/6RlMf+kZTH/pGo4cf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqGw5u61wPMGscT9zkmE5L0JCpolQUub/TE/j/01Q
+ 5P9QU+f/VVjk7VFU16lISsBhQkOpIxERKgsAAAAvAAAASQAAAEcAAAA/AAAAIQAAAAX///8B////Af//
+ /wH///8B////Af///wH///8BAAAABUBCqn1QU+X/T1Ll/2Jl9P9WWdHDBwcSCf///wH///8B////Af//
+ /wEAAAAFOz2ga1BT5f9YVdX/pGc1/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6NtO0X///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNwQg2jdkgF////AQAA
+ AAdISsOxUFPm/1FU5v9ZXO7/RknCvzEzgCcLCxsFAAAABQAAAAkAAAAfRUWWk2hlucVlYrC9YmCss0RD
+ k10AAAAD////Af///wH///8B////Af///wH///8B////AQAAAAVBQ6p9U1bn/1NW5/9laPX/WVvSwwcH
+ EQn///8B////Af///wH///8BAAAABTw+oWtTVub/ZVvC/6ZmMf+mZjL/pmYy/6ZmMv+mZjL/pmYy/6Zn
+ M/2lcUEd////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAEDSk3Jr1NW6P9VWOn/a272/y4vd4cAAAA5AAAAKwAAACkAAAAzCQkXT1RV
+ 1OlZW+r/W13s/2hq9v9LTsF9////Af///wH///8B////Af///wH///8B////Af///wEAAAAFQkSqfVZZ
+ 6f9WWen/aGv2/1td0sMHBxEJ////Af///wH///8B////AQAAAAU9P6FrVlno/25ftf+mZzD/pmcy/6Zn
+ Mv+mZzL/pmcy/6ZnMv+maDT7o2w/C////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUpNxYFeYfD/WFvr/2Nm9P9SVdHnLy9tjRUV
+ LmkNDR5hKChNe3NvuMlkZe7/Vlno/1da6v9dX+39Q0WrQf///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABURFq31aXev/Wl3r/2xv9/9eX9PDBwYRCf///wH///8B////Af///wEAAAAFP0Gia1pd
+ 6v9yYrL/qGcx/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2g186hzRgf///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wFERq8ndHfs73d6
+ +P9cX+7/W17s/2pq8P90cun7g4Dp+Y2K8P1xcfL/Wl3r/1lc6v9aXez/UlTUwTU1fQX///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAANISrN5YGPu/2hr9P90d/r/YWPWvwgJGAf///8B////Af//
+ /wH///8BAAAAA0RGrGVfYu3/fGy3/6loMf+paDL/qWgy/6loMv+paDL/qWgy/6lqNe2idkQH////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AVdYxlmvsfP1r7H9/3l89/9kZ/H/YGPv/19i7v9gY+//YmXw/2Nm8v9hZPD/V1nc30ZI
+ sSf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BTlC+cZCS8P+rrvT/p6n1/2Zo
+ 2LsfIFkD////Af///wH///8B////Af///wFJTLpdiozu/6qcw/+zcT//tHJB/7RyQf+0ckH/tHJB/7Ry
+ Qf+yckHxpHdEB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BVlnCQ5SW4cvAwfP9ysz+/7y//v+oq/3/mp39/4eK
+ +v9rberzVVfSp0ZIsCH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AUJE
+ qBFAQ60vPkKtLz5CrS9DRa0d////Af///wH///8B////Af///wH///8BREWqCz9DrS+CYG1dvHlN/7x5
+ TP+8eUz/vHlM/7x5TP+8eUz/uHhL+aN1RQv///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEuJYADPUCsJVJU
+ wVdbXc1xWlzLd1JUx2VISrZHP0CnD////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bp3FCJ7t5Tf28ek7/vHpO/7x6Tv+8ek7/vHpO/7p5Tf2mckYh////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaByRwW6eU3xvXtP/717T/+9e0//vXtP/717T/+9e0//q3NFRf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BuHlNzb18UP+9fFD/vXxQ/718
+ UP+9fFD/vXxQ/7R3S3v///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZ5uQQP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbZ4
+ TI29fVL/vX1S/719Uv+9fVL/vX1S/719Uv+4ek/FonNBBf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AahxRRPRmGi94K17k9CdbVetekwjnV8/A////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGudEg/vX1S/b59U/++fVP/vn1T/759U/++fVP/vH1S+653Sjf///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGyd0tXwoFW/dmWaf/mpnf/665++eat
+ fd3jrXyhzJloY6JuPgf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bp3BBC7p8UdO+flT/vn5U/75+VP++flT/vn5U/75+
+ VP+5fFG9oG1CB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wGkdUUJunxRyb5+
+ VP+/f1X/woFX/8eFWv/Oi2D/1JJm/8WJXNujcUQL////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGzeE1vv4BW/79/
+ Vv+/f1b/v39W/79/Vv+/f1b/wYJY/7+CV5mmcEYH////Af///wH///8B////Af///wH///8B////Af//
+ /wGmbkIFtXpOi7+AVv+/f1b/v39W/79/Vv+/f1b/v39W/7+AVv+3e1CN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bp3JGDbt+VNnAgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/NjGL91ZZps7eCVSn///8B////Af//
+ /wH///8B////Af///wGrdEgbuHxRp7+AV/3AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP++gFb1qnRGKf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGyeU1LwYNZ98CCWf/Agln/wIJZ/8CCWf/Agln/xIVb/9WU
+ af/nq3z15K+Ar9emdnPNmWpTyI9hTcSHW2HBhFihwIJY68CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/uH1Snf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bn2U1A7t/VInIiWD9w4Vc/8GD
+ Wv/Bg1r/wYNa/8GDWv/ChFz/y4xi/9eWbP/jo3f/5KR3/9+ecv/QkGb/xIZd/8GDW//Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/vIBW4ap1Rx3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGncUIFwoZakc6PZv/FiGD/wYRd/8GEXP/BhFz/wYRc/8GEXP/BhFz/w4Vd/8OGXv/DhV3/wYRc/8GE
+ XP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/voJZ9bB4Szv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AZlpOAPEiF2B2Jhv9c6QaP/HiWH/woVe/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/vYFZ47J6T0P///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AciOYT3eonXT5qh+/9aX
+ bv/LjWb/xYhh/8OGX//ChV7/woVe/8KFXv/ChV7/woVe/8KGX//Dhl//xIdg/8OGX//Chl79un9Wua11
+ SSf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bm2g7Cc2ZbFvms4a76rWI9+mwhf/go3n/15hw/9GTbP/OkWr/zpFq/86Raf/Qkmr/zpFp/8iL
+ ZPO/hVy3sHlNR59rPAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bnmo+A7uJXCHLm29Z3a6BjeSwg63kq37B3qJ3x9ue
+ c7nWmW6ry5BlhbuCV1eveU4doG5EA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AVw3AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABACAAAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAA////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAMAAAADAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAkAAAAPAAAAEwAAABUAAAARAAAACwAAAAUAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAHAAAAGQAAAC8AAAA7AAAAOwAAADcAAAArAAAAGwAA
+ AAsAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaNfKwPaf0gF34BJBd+ASQXfgEkF34BJBd+ASQXfgEkF34BJBd+ASQXfgEkF34BJBd+A
+ SQXfgEoF9oxkA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAsMDB0tEBEqUxYXN20aGT5zEBAqZQoLF1UBAQE/AAAAJQAAAA8AAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BqksqBbRgRQe2YUYHtmFGB7Zh
+ Rge2YUYHtmFGB7ZhRge2YUYHtmFGB7ZhRge2YUYHtmFGB61sRgfumIkF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAgIGCy8whXNST8PbXFXU51VP1OtFQsjlMjGdxSIi
+ YYUFBQtBAAAAHwAAAAf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZlgLwOyZzcHrH89CauAPAmziDwJs4g8CbOIPAmziDwJrIE8Cap+PAmqfjwJqn48Cap+
+ PAmrfzwJxYNFCdeYfwX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wENDiENLS+kmykl2f1BPeX/NTLi/yAd3f8cG9n/IyPF9ScneZEFBQozAAAADwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAUAAAAFAAAABQAAAAP///8BAAAAAwAAAAMAAAAFAAAABQAAAAUAAAAD////Af//
+ /wEAAAADAAAABQAAAAUAAAAFAAAAA////wH///8B////Af///wEAAAADXycUB5lRLA+XWzQRoGE3D7Fn
+ QA2+akQNwW5EDbJpQA2dYDYPklcwEYNPLxOFUC4Tk1cyEZ5gNg+sdEANgmhnBwUFBQUAAAAFAAAABQAA
+ AAP///8B////AQAAAAMAAAADAAAABQAAAAUAAAAD////ASMkWAkwMbCxKive/3p79v+lpvn/dXbx/yMj
+ 2/8bHNv/JifE7yYmZ28AAAAbAAAABf///wH///8B////AQAAAAMAAAADAAAABQAAAAUAAAAFAAAABQAA
+ AAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAA////wH///8B////Af///wEAAAADAAAABQAA
+ AAUAAAAFAAAABQAAAAUAAAAD////Af///wH///8B////Af///wH///8BAAAAAwAAAAUAAAAFAAAAAwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABwAAAA8AAAAZAAAAHwAAACEAAAAdAAAAFwAA
+ AA8AAAAPAAAAGQAAAB0AAAAdAAAAGQAAAA8AAAAHAAAACwAAABcAAAAdAAAAHQAAABcAAAANAAAAA///
+ /wH///8BAAAABwAAABUTDQYfNSMTKUAsGidXPCIfiGE2FbR7RBGdbjsTbU0uGU80ICM5KhgrNCYVLzYn
+ Fi0/KhgpVDkiIVw/KxkaFw8VAAAAGwAAAB0AAAAdAAAAFQAAAAkAAAAHAAAAEQAAABsAAAAdAAAAGwAA
+ ABUAAAAJOz6bBzg8s6syNMTPPD3H1U5P2elsbfL/R0jw/ygp5P8nKNv/LS6gvQwMGi8AAAAL////Af//
+ /wEAAAADAAAACwAAABkAAAAdAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHQAA
+ ABkAAAAPAAAAA////wEAAAADAAAACQAAABEAAAAbAAAAIQAAACMAAAAhAAAAGwAAABMAAAALAAAAA///
+ /wH///8B////AQAAAAkAAAAVAAAAHQAAAB0AAAAZAAAAEQAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAcAAAAZAAAALwAAAD8AAAFFAAACRwAAAEMAAAA7AAAALQAAAC0AAAA7AAAARQAAAEUAAAA3AAAAHQAA
+ AA0AAAAdAAAANwAAAEUAAABFAAAANwAAAB0AAAAH////AQAAAAMAAAATAAAALwoGAUcXDwdRIBMLSzUg
+ ETdwRy8fnWdBF2dDKh87JRczJRYORRwRC08bEQhVHBAHUyASCk0oGQ5DLBsRNQoGAzUAAAA/AAAARQAA
+ AEEAAAAtAAAAEQAAAA8AAAApAAAAPwAAAEcAAABDAAAALwAAABMYGD8DQkOoHUdJnx1FSJwfNjijVTEy
+ w+s0Nuj/Ky3h/zQ37P8uMMTxISFSVQAAABMAAAAD////AQAAAAcAAAAbAAAANwAAAEUAAABHAAAARwAA
+ AEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABFAAAAOwAAACEAAAAHAAAABQAAAA8AAAAhAAAANQAA
+ AEEAAABHAQEESQAAAUcAAABBAAAANQAAACUAAAARAAAABf///wEAAAADAAAAFQAAADEAAABDAAAARQAA
+ AD0AAAAlAAAACf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAFAAAAGQAAAjcQEi5fHB1QfS4ucpM0NHmdKClkjxYX
+ NGsBAgRPCAgUUxwcRnUbHEl/GxxJeyMiWGkZGT8nAAABDxkZPTUgIlNvGhxJfRscSX0eIE9rEBIvLwAA
+ AAf///8BAAAAAwoKFxsfH0pdHh1KgSIfRYcnI0qBNSlEV146LCVvSDIhOyQZNyAUClEeGCxzKCVckTo3
+ d6c1MWufKiVLhx4WHGkUCwZVFxg2ZxscSnsaHEl9HR5OdyIjVVMGBg0RAAABDxocQkceHk53GhxHfxwc
+ S3siIlNdCwwaGwAAAAP///8B////Af///wEWFzUNNDaXjygr0/8pLN3/Oj3u/zM13P0uMIaZAQEDHQAA
+ AAf///8BAAAACRETLisfIFJtGh1JfRocR38aHEd/GhxHfxocR38aHEd/GhxHfxocR38aHEd/GhxHfxsc
+ SH0eIE5xFxg8OwAAAQsAAAARAAAAKQAAAkMJChxdGx1QgScoZ402NnqfMjF1myYnX4kUFC9nAwIFRQAA
+ ACsAAAARAAAAAwAAAAUNDSAhHiBOYRsdS3saHEh/HiBQdxobP0MAAAAN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AA0FBQwxLS5rg2ljxuOHfuf9fXXz/2Re7v9JR+L/OjrE7TIzjbUtMHWhWVbU925o4/trZeL7VFLL+T09
+ mU8FBQ4JNjaTa1NQz/dtZ+P7bWfi+1NQ0PczNI5nAAAABf///wEAAAADKSpmMUFBtddmYN/7bmfi+2Je
+ 3ftFQ6u3XT0rLVM2HS8sHyNVSkWNr3x01euGfe//c2zw/1ZT6v9AP9b5OTmx3y4saZ85O6DRZmHe+21o
+ 4vtlYd37RES30ykpaRMaGj0VPz+ttWRf2fttZ9z7aGLc+0NEtdMlJmArAAAAA////wH///8BAAAABQEB
+ AxcuMHyBLzDM/SUo1f82OOX/QUTu/zI1st0UFC83AAAADQAAAAMAAAAHMzWEX1NSy/VsZt37bGbc+2xm
+ 3PttZ9z7bWfc+21n3PttZ9z7bWfc+21n3PttZ9z7bWbc+1tY1Pk5O5+RAwMKDwAAACUODiRPOTd2mXBq
+ w+GIf+X9gHjw/21m7/9ZVe3/SUfg/Ts9wOsvMYuvExQtWQAAACkAAAALAAAABSotdzlQT8jpbWfj+21o
+ 4/taWNb7NziaiwYGBg3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAADAAAAEyorbGlUU8ztYVzr/z9A4P8xNNr/T1Ls/4OG
+ 7/9tb+X/PT/S/TY5ufMxM9T/Ozzf/0FD5/84ObvnLS1pHQAAAQkzM5NvLzLK+zY32/9HSOz/Oz7Z/TQ2
+ k20AAAAF////Af///wEqLW8zMjS23zM02f8+PuL/RUfq/zs7rcFXOCIzQysZPUNAk61lYOb5U1Ho/zY3
+ 2/85POH/Zmnw/3+C7P9ZW+D/NTfF+zY5xf00Ndr/QUHm/zk72/04OaKVIiJCBSAgSBc0NrPBLzLX/zs7
+ 3/9JS/D/ODu91ycnYC0AAAAD////Af///wEAAAAJERIrLTY4pcMuMNb/LTHY/zM33v9ITPP/Oj3P/SYn
+ ZGMBAQIXAAAABQAAAAU3OZBhLTDM+zo63f9SU+T/VVbm/0tM4v9JSuL/R0ji/0RF4f9EReH/REXh/0RF
+ 4f9JSen/QEPm/zc6pJkCAgYXFBY4S0tKq8F6c+r7aWXt/0JD4v9GSOv/bG/x/5KU7f9tb+P/NDfa/zE0
+ 0PsxNKHHFxc4TwAAABUAAAAJLS9/PTI0xfE0Ntv/RUbp/0JE4v8zNZ6PDQYGDf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAMHBxIXPj+vvURE4P8uMdT/LDDU/ywv0v9FSNjxYWTe53d65/eBhPD/OTza/ysu0f85PeD/Q0fp/zY4
+ sL8gIEMTAAAABzQ0k28uMcj7KS3R/0lN8f8+Qdn9NTeTawAAAAX///8B////ASosbzMzNrbfKCzQ/zo+
+ 4v9ITOz/PT2swVE1HjdDN11hRkbN8zo73P8rL9L/Ky/T/zM30v1SVNvram3f7YOG6vtfY+b/MDTU/ysv
+ 0v9DR+v/Oz7T9zU3jmcHBw0DICBIFzY5sr8pLdD/Mzfb/0xQ8/85PL3XJyhgLQAAAAP///8BAAAAAwAA
+ ABEkJVxTOj3C7Swv0/81Od3/Mzfa/0VJ6/9DR+b/NDaVpwsLGSUAAAAJ////AT0+nFswNMv7RUrf/2ds
+ 6v+OkvL/nKD2/5qf9v+YnPf/kpb3/5CU9/+Pk/f/j5P4/4SI+f9LTuj/OTynlwYGDiE4OZWjUlHf+0JC
+ 3/8sMNP/LDDV/0JG3/1YXOLxe3/o+6+z9/9eYuv/OT3f/zk90/s1N5ijBgYJFQAAAAkuL309MzfE8Scr
+ z/9ESOv/Q0fi/zU2no8IBgYN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////ASstaSU5O8DpLjHU/zI22P82Otz/NTe98TEy
+ iHUrLIFBNzmlfUxPyd1LT+f/MTXW/0FF5/9ITOv/ODqsrRAQJg8AAAAHNDWTbzE0yvsuMtT/TVLz/0FE
+ 2v00N5NrAAAABf///wH///8BKixvMzQ4t98sMNL/P0Pl/0tP7v8+PqvBWj4fN0U/i4szNtP9LTHT/zY6
+ 3P8yNtP/Ojmhx0U2Y1tIO3VfRUOjo1JU2/c9QeH/MjbX/0tP8v8+QdHzMTGBVQMDBQUgIEgXNzqzvy0x
+ 0/84PN7/T1P0/zs+vtcnKGEtAAAAA////wEAAAAHAQEDHTQ1jZM6PNH9MDTW/zo+4P8xNdf/PkLk/1BU
+ 9v86PLTZGRtAQQAAAA8AAAADP0GiOUFEzelydvb/YGTx/0FE4v9FSeH/Sk7R/U9SzfVRVNHzUVTT8VJV
+ 1e9RVdXtUVTV7UJFzus6PKSBIiRYQUFDwuE4Otr/LzPV/zE11/8zNsTvNzmmnzI0kmc2OaCLREfM8Vtf
+ 8/9lavj/UVXw/zs/xOsxMnAvAAABCS4vfD01OcbxKi7S/0lN7v9GSuP/NTeejwYGBg3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BNziEJzc6wu0wNNT/QETk/0dL6v8zNZrBBQYORwAAADUCAgYpLzF9eTU5zf0zN9j/R0vr/0pN
+ 6v84OqWdCwsbCwAAAAk1NpRvNDfM+zE01f9RVfT/Q0fb/TM1lGsAAAAF////Af///wEqLG8zNjm33zAz
+ 1P9DRuf/TlLv/0A/rMNoQSI1SEKUjzI20/0zN9j/S07u/z1A0PszK1GJLx4KVTskD0tBKiBPOzqgxTU5
+ 2f84PNz/UVX0/0BDzvMuLnlPAQEDBSAgSBc5PLS/MDTU/zs/3/9TV/X/PD+/1ycnYS0AAAAD////AQAA
+ AA0TFTA1Oj2tyzc62f84PNz/Oz/b/zM2z/84PNz/Vlr4/0BE1P0qK3JvAQEBGQAAAAX///8BP0Gqa05S
+ 2e+AhPv/X2Pw/zs/4P85PMz9NTaPvyAhTmMqLGdHPT+TMT9CnC9AQ50vQkObLSkpah0zNo9/PD7V+TI1
+ 1v88QOD/ODvW/zEzi6MICBE5AAAAMwICBjM1NpGlQUTV+0RHzvE/QsHjPD6xzS4vck8EBAgNLjB+PTc7
+ x/EuMdP/TFDv/0pO5f83OJ6PBgYGDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEzM2wLPT+92UdK5/9YW/T/U1b0/z1A
+ ve0kJFyJDg4kYwAAAE8ODiNbODvB9zI21v9MT+7/TVDr/zk7opsKChgLAAAACTU2lG82Os37NDjY/1RY
+ 9v9GSd39MzSUawAAAAX///8B////ASosbzM3OrnfMzfW/0ZK6f9RVfH/QUCsw25BIjdTSIdzPUDU+09T
+ 7f9YXPf/Rkjk/zs5kMcrJECJJxoQcSQUA2c1NHWrNDfV/zo93P9VWfb/QkTN8SsrbEUAAAAFICBIFzo9
+ tL8zN9f/P0Pi/1db+P8/QcDXKClhLQAAAAMAAAADAAAAFy4wfHVBQs33NTjY/0JF5f88P8/9PD66+Tg8
+ 2v9NUe7/T1Lu/zc4pLkODiIrAAAAC////wFLS6EHP0Cwf1VZ3feHi/3/W1/w/0BD5P88P9L5MTSJqQUF
+ CUMAAAAjAAAACwAAAAMAAAADAAAAETc6pK02OdX9Nzva/0VJ6P84PMP7GRxMew4QMWcOEDFnDhAxZxYY
+ QnUgI1iNGhxGgRMVOHUSEzdfEBAtMQEBAxEsL3s/ODzI8TE11f9QU/H/TVDp/zc5ppkPDyEP////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AUBAdQM/P7B/XV/j962x/f+Qkvf/T1Hj/0pK1vVJScHdQ0SlvzU1gak7PcH5NjjX/05R
+ 7/9QU+3/OjynnwsLHAsAAAAHNjeVbzk8z/s3O9r/WFv4/0lM3v0zNZFtAAAAB////wH///8BKixvMzk8
+ ut82Odf/SUzr/1RX8v9DQazDckcmOX1YUDtFRsDZgob2/7O1+/9wcu//SUve/UxL0vNJSLDXQj6Kvz08
+ js02OdX/PD/d/1hb9v9ER87xKipnQQAAAAUgIEgXOz60vzY52P9CReP/WV34/0FDwdcpKWEtAAAAAwAA
+ AAkFBg4lOj2jsz9B2v85Pdv/RUjn/z0/wOE9P6rBOj3V/UVJ5/9cX/n/QUTD5yUmX1cAAAARAAAAA///
+ /wE/QaQTQEO5l15h5/2Kjv3/WFvu/0JF5P8+Qc73LzGAnQMDCD0AAAAdAAAACQAAAAMAAAAPOjywyTc6
+ 1/8+Qd//TE/t/2Rh3P9uas/pbmnP5W5pz+duac/nbmnP525pzuVwa8/ncWzP52ZizeU6PZWJDRAkDy0w
+ fD07P8nxNTjX/1RX8v9RVev/OTunnRERJRH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAzs7iRVGR7indHbe87S2
+ 9f+srvT/l5nw/3d47f9nZu7/X1/j+0xM2/84O9n/UlXw/1RX7v86PKifCwscCwAAAAc3N5VvPD7Q+zs+
+ 2/9cX/n/TE/f/TI0jHEAAAALAAAAAwAAAAMqLG01Oz273zk82f9MT+v/V1rz/0RCrMVzSCk7mmErLVxM
+ emNVVcfblZjt/bu99/+kpvH/hYft/21v7v9mZer9W1re+z9B3P8/Qt//W173/0ZJ0fEtLnFHAQEBBSAg
+ SBc8P7W/Oj3Z/0VI5f9dYPn/QkTC1ygpYS0AAAADAAAADxwdSUlCRL/fP0Hd/0JF4v9FSOL/PkCvqTo7
+ mk8+QMzxQETh/11h+f9MT9/9MjSKjQEBAx0AAAAF////AQAAAAM9P6IbQUO9qWxw7/2Hivv/VVjs/0RI
+ 5P8+QsPxKSpqiQQECjsAAAAbAAAACQAAAA09P7fXOTzY/0RH4/9rbvT/i4v3/42M+f+NjPn/jYz5/42M
+ +f+NjPn/jY35/3Jx8P9gYPD/Wlvx/zs+op8aHTwLLjB+PT1AyvE5PNr/W1/3/1ZZ7f85O6ehDQ0ZGQAA
+ AAUAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHAAAAExsbQC8uMIB7QkSswWBj0OuChOf3mJvv+7Cy9v+nqfb/jIzw/09S
+ 3/9UV/H/V1rv/zo8qJ8LCxwLAAAABzc4lW89QND7Q0fg/2Vo+/9QU+H9MDKGfwAAABcAAAAJAAAACyYo
+ ZD09P7/jPD/a/09T7P9aXfP/RUOrxXRJKj+ETyg3Zj0aQ0g0SmtBPIyzUVK4321v1feLjer5o6bz/6+x
+ 9/+am/P/d3jq/0ZJ4f9eYfj/SEvU8zAwfE8BAQMFICBIFz5Atr89QNv/SEvm/19j+f9CRcPXJyhhLQAA
+ AAcAAAAZMDJ+f0dJ1/k/Qt3/Sk3o/0NG1f89PqVjOzyWIT5Av89BReD/VVjw/1pd8f88P67HEBEoMwAA
+ AA8AAAALAAAADQAAAA0rLW0lQ0a7xXl98/2Fifr/VFjs/0dK5P89QLnnHR5ObwEBAjUAAAAZAAAADTxA
+ tMU9QNn/SUzm/2xv+/9mauj/Z2vk+Whs5vdobOb3aGzm92dr4/lkZ+X/SUzf/01R7P9OUen/Oz2hhx0g
+ QQkvMX09P0LL8TxA3P9kZ/n/XmHy/zs/rbsMDR0tAAAAFQAAABMAAAATAAAACQAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkAAAAfAAAAOwAA
+ AkkLDCVhGRo/ZyIka2EzNZmZRUi4w11gy+N6fOb/TlHf/1da8v9ZXO//PD+omwsLGwsAAAAHNziVb0BC
+ 0ftHS+P/eX39/1hc5/8yM4ufAAAANQAAACMAAAAlHyBRVz9Cxu0/Q93/Ulbt/1xe8/9HQ6zFeEgsQXZF
+ JD9LKwxVNBwFZywaDnMxIzGHOys9fT80cpFDQJy/UlK42Wxt1fNqbeb/R0rh/2Bj+P9KTtPzMTF/SwEB
+ AwMiIkwVP0G3v0BD3P9LT+j/Y2b5/0VHw9coJ2AtAAAADQoLGS1AQazDR0ne/0RH4f9OUuv/QUTE6To7
+ kSUjI08FP0KtjUNH3P9NUOn/ZGf6/0lMy+siI1dZAAAAHQAAACMAAAAxAAAANwAAADUgIExXSErB5YKG
+ 9v+Jjfv/VVjt/0lN5f89P7LZGBk6YwAAAC0AAAARPUCvp0FE2v1KTeX/aW37/0ZJzfspKnGDJihuYSkr
+ d1smKW5jLS95j0FEyvVBRN7/UFTt/0lM3f87PqJlGRk2BzAxfj1CRMzxP0Pd/2pt+f9pbfn/QEO42wwN
+ H00AAAA5AAAANwAAADEAAAAZAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAwMBTc4h1lSUZurY1+tz3p2x+VAQZ2/CQkYVwEBBEcDAwpFGx1HdURG
+ x/lER+D/WVz0/1da7f8+P6SPEBAlBQAAAAc4OZZvQkXT+0lM5f+BhP3/c3f0/z9BsdkQEiljAAAASQAA
+ AEsgIVZ7RUfP90JG3/9VWO//W17y/0pGrcGFUi0/fVE7RVZMhp9fWZnLcGq04Whkvus4MV2lMx0FbTYf
+ BmkzIBVzOziBw0ZJ4P9JTOT/YGT5/0lN0O8yNIA5AQEDAyAgSBdAQre/Q0bf/09S6v9mafr/R0nD1ycl
+ XS8AAAAVJyllX0pMz/NGSOH/TE/n/05R6f9BQ66nPT2HC////wE9P6FFQ0fP9UpN5v9jZvj/WFvo/TY4
+ kZ8BAgQvBAQLPQMDDlUCAgxdAgIMXwMDDVshIVeJSk3D64qN+f+Lj/v/Vlnu/0xP5P9AQbHRGxtBVQAA
+ ABs9PqRlSUzc91FU7f9oa/v/U1ji/ywtdJkBAQRNAAAASQEBA000NoapUlPi+0dJ4v9QVOz/REbK9Tk6
+ kCcFBQoFMDF9PURGzfFDRuD/aGz6/3R4/P9NUNX3JilplwMDDFsLDCxnICBMawkIEi0AAAAL////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAPz8DRkesg25s
+ 4fmRi/f/gX34/05Q2vs6O5K3KChahy8vYotNTZa5Wlrl/UhK4v9YW/L/VFbo/T5Aon8ZHEEDAAAABzk5
+ lm9FR9X7TE/m/29y+/98f/n/VFbd+0BCrdMsLmmRMTJmkV5css9eXuf/RUjf/1VY7v9TVuj/Tkmlr5Zd
+ LjuEVklHWFa/34iD8f+Oifj/amny/0dHuOk+N2mvPTNToUc/Zq9eW7jnUFHn/0xP5v9cYPb/SUvO5TM2
+ fBv///8BHiBIF0FFuL9GSeH/UlXs/2pt+/9JSsTXIyJXMwMDCCE5O5OfT1Hi/UhL4v9TV+7/S07a/T0+
+ n2M0MWsD////ATg5kBVDRb/VS07m/1te8v9mafj/REe/2w0OIEU8PY2bX121y2Ngtc1jX7XNYV+1zWFf
+ tM1dXL3taWnf/5qc/P+Hivj/WFvv/0xP3/0+P6i/GxtDLTw9mS1JTMvfbG/5/3J1/f9cX/X/SkvI6zc4
+ hKctLmWPREKDq3Zx1fNcXOz/SUzi/0lM4v9DRbvDNDR/CwAAAAUxMn49RknO8UZJ4v9oa/v/am35/2Bi
+ 7f9NTsztXlq1zYR+xeFfXsXhJidlWQAAAA8AAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wFAQqUzSUvO43h69v+KjPf/XV/s/15d6Pt6duXzlY7o86Ga
+ 8ftiYu7/Sk3j/09S6f9LTdjzPj+jUf///wEAAAAHOzyaa0hL1/tRVOj/bG/7/2Fk6f98fvL/dnfy/3Fu
+ 5vWSi+b1k43y/V1e7P9JTOP/TlHn/0tN1PdbTIyFomMuOaZkLDlSSZmXWVvk+4uO+P96ffX/VFbp/2lm
+ 5PmGgOH1nJTn+ZOM9P9PUeb/TE/l/1BT6P9FR8O7MDRqC////wEdHkgXQ0a4v0lM4v9VWO3/bXD7/0pM
+ xdchIVI1Dg4kLUhKvtdOUOX/UFPn/1da8P9HSsftMziAG////wH///8BMzR9BUBDq4lLTuH/Vlnt/25x
+ +/9TVtr3JylldUFEsM1ubO3/f3v1/4B89f+AffX/gH31/4F98/+AfPP/enn2/5GS+P96ffb/YmX0/01Q
+ 0fEwMHRBLS1zBURGtnNucejztrj+/4yP9v9aXO7/YWHn+4J95PWfluz7fXn0/01Q5f9KTeP/R0rU60BC
+ qE3///8BAAAAAzM2hTtIS9DxSkzj/21w+/9aXez/bG/x/21v8f94dfT/iYX5/2Fi5/03OpaJAwMGEQAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AURE
+ mQVERraJeXvm99na/P/Jyvf/lpjw/42N8v+IiPX/f4D0/2ls9/9XWu7/TU/h/UZIwbE9PJsL////AQAA
+ AAM/QKZlT1LZ+5OW8/+Qk/3/T1HR+Vtdz/Ooqvj/rq/3/52d9v+DhfP/a271/1VY7P9MT+L/TUq2zYBY
+ VlGmYy47qGIxO3dVY1tUU77Zp6rz/+Hi/P+sr/L/kJHx/42M9P+EhPX/eXr2/2Jl9v9QU+j/Sk3T8URF
+ smslJUcD////AR0dSBdERrm/TVDk/1lc7v9wc/z/S07F1yMkVzMzNX9JV1ja93+C7/+ZnPj/YGPt/0RF
+ uK8oKHQH////Af///wH///8BPT+eT0pN1fmFh/T/pqn+/29y8v8/QaSrQEO1yWNm5/+doPX/pKf3/6Sn
+ 9/+kqPf/paj3/6Wo9/+mqff/oaT2/6mt+P+Vmf3/VVfY8TY3hjv///8BQEKfD0tNvpWJjOr53+D8/7+/
+ 9f+XmfH/hof0/3d59f9dYPL/T1Lm/0pN1fFER7V9RESQBf///wH///8BOz2aM0xO0+9+ge//mp3+/1lc
+ 3f1WWND7rbD5/7S29f+FiPj/bW/2/0hKwcUwM3IX////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUBAoA1ERbNnXmLRz5GT6f2ytPT/rrH4/5OW
+ 9v99gPT/Y2bs/09R1+VGSL6dQkOqHf///wH///8B////AUJErltVWNT5d3rk/3N15P9PUcjfP0CmY1FT
+ xrmHiuf9srX0/5aZ9/9sb/H/UFPb9U1LtbN+WV5VqGctPaZmMz+mZjM/q2krPXlVZV1WUKu5cnTZ86Om
+ 8f+2ufb/o6b3/4aJ9P90d/L/VVjh/UpNyNdCRa1pQECiCf///wH///8BHR1IF0VHur9QU+b/XF/w/3N2
+ /P9NT8jXKitrNURHr51dXt//dnnk/3V45P9XWtX3QUKnX////wH///8B////Af///wE7O5EJR0q92Wxv
+ 4f93euP/aWzi/0hKvtNER7XVZmng/3l75P94e+T/eHvk/3h75P94e+T/eHvk/3h75P95fOT/eHzl/3F1
+ 5f9TVc/pQECfKf///wH///8BQ0GfEUJDtHdlZtnfm53w/7S29v+Tlvb/bG/y/1ZZ4/NKTc7BQkSwV0BA
+ ogf///8B////Af///wFDRK0tUFLO73J15P91eOT/VVfR8UNFrq1qbNbrr7H1/4WI9f9aXef7TE7KyUBF
+ oxv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATo7nAM9P58ZP0CuTURDunVGR76JRUe6i0VHu3tER7ZdQUOlLUBCoQ3///8B////Af//
+ /wH///8BREanFz9CpkM8QKRFPUClRUBCpTk7QaAJOTueDT9CrlFERbp9Rki8jUZIuH1DRKpFkGI9Hadn
+ LjmhYzBBoWMwQaFjMEGhYzBBo2MuQZ1hMkNxUWdlYk6JgVpOn5tYTaOnV0yeo1xOmJVmUH51bVVvM29j
+ fQX///8B////Af///wEdHUgXR0i7v1NW6P9fYvD/d3r9/09RyNcoKmcvPkCgLz5CpEU8QKRFPECkRT9C
+ pUFHSK0R////Af///wH///8B////Af///wFAQ6Y5PUCkRTxApEU+QaVFQkOnPVJKlEdlT3dnaE5wb2hN
+ cG9oTXBvaE1wb2hNcG9oTXBvaE5wb2pQcm1nT3ZpY1B8Y2NPf0+XaVgVpHpVCb6WPgP///8BOzyZBTw+
+ oiVCRLZVRUe9eUVIu4lFR7ljQ0WtRUNFsg1AO54D////Af///wH///8B////AUBEpw1AQ6ZBPECkRTxA
+ pEVAQ6ZBQUOjFz8/pDVFRr11Rke6hUVGs1lDQqQhQESmA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BOjOVBTw8
+ kwk9PpYJPz+UBSIiiAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATo9lgc6PJMJP0KUB////wGebTEPoGQ0NaJjMUOgZDFFoGQxRaBkMUWgZDFFoWQwRaRl
+ K0OkZStDoWIvRZ9iMUWfYjFFomMvRaZmLUGjajEroHg5Cf///wH///8B////AR0dSBdISry/Vljq/2Jl
+ 8v96ff3/UVPJ1ygoYi0AAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wHMd1MDqGYzIaVoLD2lZipBpWUqQ6VlKkOlZSpDpWUqQ6VlKkOlZCpDpmYrQaZm
+ K0GmZys/qGYvO6VqNzehbDwrp3pBEf///wH///8B////Af///wE5PIoFPj+TCTs7gAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ATU1kQU9QJYH////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaFf
+ NAmhYzQtoWQxQ6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6Fl
+ Nzuma0EVyIl/A////wH///8BHh5JF0lMvb9YW+v/ZGfy/3x//f9SVMrXKSlmKwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AapwQA2hZDU1oWMyRaJk
+ MkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6FkMkehZDJHomUyR59kMzulbToT////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Blnw3A6FkNyGgZDJBoWQxSaJkMUuiZDFLomQxS6Jk
+ MUuiZDFLomQxS6JkMUuiZDFLomQxS6JkMUuiZDFLoGMzRaFoOSmceksJ////Af///wEnJ10RS07AvVxf
+ 7P9+gfb/g4b+/1RWzNUtLXInAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGbdkIDomI5H59kM0OhZDFJomQxS6JkMUuiZDFLomQxS6JkMUuiZDFLomQxS6Jk
+ MUuiZDFLomQxS6FkMUuhZDJJpmk0M6JrKQ3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BlGExEZ1jMTugYjJLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6Bk
+ M0ugZDNLoGY2P6N1Qhmvj4gD////ATs7iQ1PUsa7iYz3/8fJ/v+hpP7/WVvR0zk5kh////8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaZyPA+jZjg3n2MzS6Bk
+ M0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BmM0efazgljlMpB///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGmaDEHomQ1K6BhMkufYzFPn2MxT59j
+ MU+fYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fZDJLnmc3N5xuPxH///8BQkKXBUhL
+ tolXWcjFWFrHw1dayMVLTbmRQUGjDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGaak4JoGc5KaBjM0mfYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fYzFPn2MxT59j
+ MU+fYzFPn2MxT59jMU+fYzFPoWQ0QaR2PBeidjsD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbGNFgOiaDUZomU1Q59iMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9j
+ MlGfYzJRn2MyUZ9jMlGgZjVLomk3MbtyTAv///8BOz2eDTY2lRM1NZUTMzWVEzs8nQ3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BsHtOBZ5pPSGfZDZDn2MyUZ9j
+ MlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9iM0+kZjY1tXIwC///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaJyMguhajYznmExUZ9j
+ MVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWhZTNNomM3L6R0
+ SA2kgFYD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbGASAehbDwfoWc2Q59kMlOgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBj
+ MVWgYzFVoGMxVaBjMVWgYjFVn2I0S6JsOSGvgB8D////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BwoISA6NpMhugYzNJn2EyVaBjM1egYzNXoGMzV6BjM1egYzNXoGMzV6Bj
+ M1egYzNXoGMzV6BjM1egYzNXoGMyV6BjM1egZDVPoGk6NaVyQhWtf1wF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGedVEJo2g9JaBnNUWfZDNVn2MzV6Bj
+ M1egYzNXoGMzV6BjM1egYzNXoGMzV6BjM1egYzNXoGMzV6BjM1egYzNXoGMzV59iM1WdYzc9qnk5Df//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bq2Y0CZ9l
+ OS+fYTJTnmAxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9i
+ MVmfYzJXn2c3RZ5rOimjcEoRrnBFBaBeSwP///8B////Af///wH///8B////Af///wH///8B////Abea
+ bgOXb0oJom5DF59mOzOgYzRPnmExWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9g
+ MVmfYDFZn2AxWZ9gMVmfYDFZoGQzT6FrOyOvXkQD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bm2U9E55kNkGdYDFZn2AyXZ9gMl2fYDJdn2AyXZ9g
+ Ml2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYjJbn2M0U59kNkOjZzsto208G6hr
+ QhGfcU8LpnJEB5xzRgedbEcHp3VRB6VySAmlbUMToGlAH59kPTOeZDdJn2M0V59gMl2eYDJdn2AyXZ9g
+ Ml2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdnmAyXZ5hMlmfZTc9n3g6D///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGlehwFn2c2I51hMk+dYjFdnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51i
+ MV+dYjFfnWIxX51iMV+dYjFfnmIxXZ1jMlmgZjZPn2U3R6BmOD2iaTo5n2k6M55mOTOgZzo7oGc5PZ9l
+ NkebZTRTnmMyWZ1iMV2dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51i
+ MV+dYjFfnWIxX51iMV+eYjFdoGQzTaJnOyOXaCgD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGsezwJnWQ0L55jM1WdYTBhnWAvY51g
+ L2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OcYC5jnWAuY51h
+ L2OeYS9hnmEvYZ1iL1+fYjBdnWIvX51iL1+eYS9hnmAvYZ1gL2OdYC5jnWAvY51gL2OdYC9jnWAvY51g
+ L2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvYZ1iMVmfZjgzq2w8C///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGdZzwNn2U3N59hMludYTFjnWExZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1i
+ MWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1hMWWdYTFlnWIxZZ1i
+ MWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1i
+ MWWdYjFlnWIxZZxiMWWeYjJhnmU2QahlPRH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGlZUARnmU1O51h
+ MV2cYTBnnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51g
+ L2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51g
+ L2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYS9nnmExY59hM02faDQZp3ggA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AYVaPQOUaDgRnmY2PZxhMV+bYDFpm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrmmAwa5xhMWWfYjNPnm47Ia9/OQP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AZNr
+ KQOdZTkTnWU1PZtgMV2aYDFrm2AwbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtg
+ MW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtg
+ MW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2aYTJpn2U1T6BpOSWcYjcF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGpbDgPnmU2M5tiMlmaYDFtmWAwcZlg
+ L3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlf
+ L3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlg
+ L3GaYDBxnGAwa55kNk+cZzkjqFU2B////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAMAAAADAAAAAwAA
+ AAMAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wGkYDwHn2Q3I55jM02ZYDFpmV8vcZtgMXOaXzBzml8wc5pfMHOaXzBzml8wc5pf
+ MHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pf
+ MHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaYDFzmV8ycZxiM2WfZjlDo2s7F7ByQgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAMAAAADAAAABQAAAAUAAAAHAAAABwAA
+ AAcAAAAHAAAABQAAAAUAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAUAAAAHAAAACQAAAAsAAAALAAAACwAAAAsAAAALAAAACQAAAAUAAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAABwAAAAkAAAALAAAACwAA
+ AAsAAAALAAAACwAAAAkAAAAHAAAAA////wH///8B////Af///wH///8B////Af///wGQTUMDn2o6E6Bl
+ ODebYjRbnGAwbZpgMHOZXzB1ml8wdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpf
+ L3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WZXzF1ml8xc5pg
+ MmubYTVTnmc8LatkNQ2rXi0D////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAUAAAAJAAAACwAAAA8AAAARAAAAFQAAABcAAAAXAAAAGQAAABcAAAAVAAAAEwAAAA8AAAANAAAACQAA
+ AAcAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAACwAAABUAAAAdAAAAIQAA
+ ACMAAAAjAAAAIQAAAB8AAAAbAAAAEQAAAAcAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAkAAAATAAAAHQAAACEAAAAjAAAAIwAAACEAAAAfAAAAGwAAABMAAAAHAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8Bol8xCZ5iOh2cYzU9nGIzWZtgMmuZYDF1mV8wd5lg
+ MHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlh
+ MHmZYTB5mWEweZlgMHmZYDB3mWAxdZthMmmcYjNVoGM3N6FnORelaz0F////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAAAwAAAAcAAAANAAAAEwAAABkAAAAhAAAAJwAAAC0AAAAxAAAAMwAA
+ ADUAAAA1AAAANQAAADEAAAAtAAAAKQAAACMAAAAdAAAAFQAAAA8AAAAHAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcAAAATAAAAJwAAADcAAAA9AAAAPwAAAD8AAAA/AAAAOwAAADEAAAAdAAAACwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFAAAADwAAACUAAAA3AAAAPQAA
+ AD8AAAA/AAAAPwAAAD0AAAA1AAAAIwAAAA8AAAAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZhpMgmhaT4boGU4NZ1jNU+bYjNjmWEwb5lfMXWZXzB5l18xe5deMHuYXzB7mF8we5hf
+ MHuYXzB7mF8we5hfMHuYXzB7mF8we5hfMHuXXzF7l18xe5hfMHmYXzF1mmAxbZphM2GcZDRNnGU4MZxo
+ OhemdTIH////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAUAAAALAAAAEwAA
+ AB8AAAArAAAANwAAAD8AAABFAAAASQAAAE0AAABPAAAAUQAAAFEAAABPAAAATQAAAEsAAABHAAAAQQAA
+ ADkAAAAvAAAAIwAAABcAAAANAAAABwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwAAABkAAAA1AAABSQAA
+ AFMAAABVAAAAVwAAAFUAAABPAAABQQAAACcAAAAPAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcAAAAVAAAAMQAAAUkAAABTAAAAVwAAAFcAAABXAAAAUwAAAEcAAAAvAAAAEQAA
+ AAX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGXWD0Folw7D6Fo
+ PCGaaTg1mmU1SZxjMleZYTJhmF8xZZhfM3OZXzN9mWExhZtjNIubYzSNmmIyh5hhMoWYXzN9mF8ycZhg
+ MGOZYDJfnWEzV5xjNUWcZjgxomk/HaV4OQ2iUUUD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAMAAAAFAAAADwAAABsAAAAtAAAAPQAAAEkAAABRAAABVQEBA1cBAQVZAwMJXwoK
+ H2kQEi5xDxErcQsNH2kICBNlAwMHXQEBA1cAAAFXAAAAUwAAAEsAAABBAAAAMQAAACEAAAARAAAABwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJCgoYHS4ucnM1NYGbNTR7oTUzeqE1M3qhNTR7oTU1fZ83OISVJSZZSQIC
+ BQ8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwICBRkwMHFnNzeCmTU0
+ fKE1M3qhNTN6oTQ0e6E0NHyhODeAlSsqX1cAAAATAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqnNECaRvQy+kbj9NqXFBiapyQ7Oyd0bdtnpJ57p+
+ TOu/gU7vw4ZR88iJVPXKi1Xxy4xX782NWu3KjFnlxIhVy8CDUae6f097qHBFRZRiOhmIVSID////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABQAAAA8AAAAhAAAANQAA
+ AEcAAABPCAkaYRUYRH03N3qjVVOhx2JevOFnYsnlaWXQ621n2e9mYtbvYFzS61lWzelPTsDhQkGmzzIz
+ ha0fIlCFCgwdZQAAAFMAAABLAAAAOwAAACcAAAATAAAABwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkbHEEnQEG11VxX
+ 5vtqZOz7aWTs+2lk7PtpZOz7amTu+1RS4vs2NpKDCAgVDwAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHCwsRGTc4qr1fWub7aWTs+2lk7PtpZOz7aWTs+2pk7ftcWeT7OTqnpQcH
+ DRUAAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGfXVAFoW8/J6Nt
+ P3OmbT6vqG4+5a1xP/Wwc0H7sHNB/a5yQP+vc0H/sHRC/7J1Q/+ydUP/tHdE/7h6R/+9fkr/wYJN/8eH
+ Uv/Qj1j/15Ze/d6bZPnin2fx1pVg0cWKV6O5gE5bom5AG////wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAUAAAAPAAAAIQAAADkAAABLDxAqZTw7gaVpZMDbhXzd84R77/tvaO/9Xlns/1RP
+ 6P9KR+T/QD/h/z083/89PN//Pz7h/0NC5f9EQ+X/R0bk/UdH0vU/QLbdMDB/qRUVMWsBAQJPAAAAPQAA
+ ACcAAAATAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCc0N7PVKSzT/y0v1f8uMNb/LjDW/y8w1/8+P+b/PUDj/zU1
+ k4cKChcPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcMDBEZMjSpvSot
+ 0f8tL9b/LjDW/y4w1v8uMNb/Oz3k/0BD5f8zNKepDAwSFQAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGkcUgPo25BRaRrPZuhaTjXo2o496JoNv+gZjX/oGY1/6BmNf+gZjX/n2U0/59l
+ NP+gZjX/oWc1/6FmNf+hZzb/o2k3/6VqOP+mazn/qG07/6xwPv+wdEH/t3pG/8KET//Qj1j/25lh/d6c
+ Y/PRklvHuX9Pe6lyRjGbbEAJ////Af///wH///8B////Af///wEAAAADAAAACwAAAB0AAAA1BAUMTSIj
+ UntiXrnZhHzp+XJs8P9OTOX/Nzja/yst1P8mKdH/JSfQ/yQnz/8jJs//IybO/yMmzv8jJs7/JCfP/yQo
+ 0P8mKtH/LS/W/zM02f85O9X7Njez4SgqcpcLDBpXAAAAOwAAACEAAAANAAAABf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzU3
+ stUmKtD/JSnP/yUpz/8lKc//Ki3U/0JG7P8/QuP/NTWThwoKFw8AAAAF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAABwwMERkzNaq9KCvP/yUpz/8lKc//JSnP/ygr0v9AQ+r/Q0bn/zQ2
+ qKkMDBIVAAAABf///wH///8B////Af///wH///8B////Af///wGlcUUFpGtAKaFqPJ+iaDjrn2Q0/51i
+ Mf+bYTH/nGEx/5thMf+bYTH/nGEx/5thMf+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/m2Ex/5th
+ Mf+cYTL/nWMy/59lNP+jZzb/p2s6/6xwPv+zdkL/voBL/8+OVv/WlFz7zIxX37V9TYWkcEUV////Af//
+ /wH///8BAAAAAwAAAAcAAAAVAAAALQUGD0kuMXOVamXS7XRt8P9GReH/LjDV/ycq0P8lKc//JSnP/yUp
+ z/8mKtD/JirQ/yYq0f8nK9H/JivR/yYq0P8mKtD/JSnP/yUpz/8kKc7/JSjP/ygs0v8uMdf/NDfF8y4w
+ i7ENDSFTAAAAMQAAABcAAAAH////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkcHEAnNjmy1Skt0P8oLM//KCzP/ykt0P8vM9b/RUnt/0FF
+ 4/81NpOHCgoXDwAAAAX///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAHDAwRGTQ3
+ qr0qLs//KCzP/ygsz/8oLND/LTHV/0NH6/9FSef/NTeoqQwMEhUAAAAF////Af///wH///8B////Af//
+ /wH///8BonNGE6JsPnmhZzblnWIx/ZpgL/+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYTD/nWMy/6Fm
+ Nf+nazn/rHA+/7R2Q//BgU3/yopU+72ATcGmcUVFnWlAA////wEAAAADAAAACwAAACEBAQQ/LC1sjV9c
+ 0vNaV+z/LzLV/ykt0P8oLM//KCzP/ygsz/8oLND/Ki7S/y8z2P80ON3/PkLk/0pN6f9GSuf/QETk/zg8
+ 4P8wNNj/LDDT/ygs0P8oLM//KC3Q/you0v8xNdn/MzfK+y4xhKkCAgQ/AAAAIwAAAA0AAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwc
+ QCc3OrPVKy/R/you0P8qLtD/Ky7Q/zE11/9HS+7/Qkbk/zU3k4cKChcPAAAABf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcMDBEZNTervSww0P8qLtD/Ki7Q/you0P8vM9X/Rkrs/0dL
+ 6P81OKmpDAwSFQAAAAX///8B////Af///wH///8BmWVEA6RtQDmiaTrDnmQz/5pgMP+aYC//mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5lgMP+aYDD/mmAw/5phMP+eZDP/omc2/6ZqOP+tcD7/untH/76A
+ S++rc0SBnm9CFQAAAAUAAAATAAAALSQkW29RUMvtTU3n/y4x0/8qLdD/KS3P/yktz/8pLdD/Ki7Q/y4y
+ 1f87P+H/VVn1/3B0/P+UmP7/rrL+/8DE/v/Gyv7/tbj8/4KG+P9OUuv/Mzfa/yww0/8pLdD/Ky/R/zI2
+ 2f84PN7/NjnH9SYpaX0BAQQvAAAAEwAAAAf///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzc6s9UsMdL/LDDR/yww0f8sMNL/MjbY/0lN
+ 7/9ESOX/NjeThwoKFw8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwwM
+ ERk1N6u9LjHR/yww0v8sMNH/LDDS/zA01v9HS+z/SEzp/zY5qakMDBIVAAAABf///wH///8B////AaJ+
+ VQWhbT9ln2Y225xiMf2aYC//mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+bYDD/nGEx/6BlNP+laTf/rXE+/7N2Q/WsckOljF46IwAAABkHBxE9QUGow0dI
+ 3/0vM9T/LDDR/yww0f8sMNH/LDDR/yww0f8uMtT/NTnb/0NH5P9JTOD7UVXb6VZa1+NZXNrjZmne7Xl8
+ 5Pmho/L/y8/8/6+z/f9kaPL/ODzd/y0x0v8sMNH/MDTV/z1B4v9AROT/Nzqv0xISLkMAAAAbAAAACQAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAkcHEAnODu01S4y0/8tMdL/LTHS/y4y0/80ONn/S0/w/0ZK5v83N5OHCgoXDwAAAAX///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAHDAwRGTY4rL0vM9L/LTHS/y0x0v8tMdL/MjbX/0lN
+ 7f9KTun/NzmpqQwMEhUAAAAF////Af///wGlb0EJo24/aZ9mNeucYTD/mmAv/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5pgMP+aYDD/m2Ew/51j
+ Mf+gZTP/pmk3/6tvPPumbT61UjUhNSkra3VFRtH1NTfX/y0x0v8tMdL/LTHS/y4y0v8uMtL/LjLT/zE1
+ 1P83O8jrPD+7qT4/sGk9PalDOzynNzw8qjc7Pa1JPT6uX0NEv5NcX9DdlJfv/Zmd/P9PU+z/NDjZ/y4y
+ 0/8vM9T/OT3e/01R8f8+Qtf9KCpybwICAx8AAAALAAAAA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCc5O7TVLzPU/y4y0/8uMtP/LzPT/zY6
+ 2v9NUfH/SEvn/zc3k4cKChcPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAcMDBEZNjmtvTE00/8uMtP/LjLT/y8z0/80ONn/S0/u/0tP6v84OampDAwSFQAAAAX///8Bp29BCaNr
+ PXGhZzXznGEw/5thL/+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+cYTD/nGIx/5xiMf+cYjH/nGIx/5xiMf+cYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5xhMP+eYjH/omY0/6hsOfuVYjexQj+ZuTw+
+ 2f0wM9T/LzPT/y8z0/8vM9P/MDTU/zE11v8xNdX/Oz6/3T5BqU9DQ6AP////Af///wH///8B////Af//
+ /wH///8BQ0ORBzs7njFDRr7Jb3Pv/Wlt+v9AROT/MjbW/zA01P82Otr/S0/v/01Q7v83OqGzDxAlJwAA
+ AAsAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAJHBxAJzo8tdUyNdX/MTTU/zE01P8xNNT/ODvb/09S8v9KTOj/NzeThwoKFw8AAAAF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABwwMERk3Oa29MzbU/zE01P8xNNT/MjXV/zc6
+ 2v9NUO//TlDr/zg6qqkMDBIVAAAABah3RQejbT9poWY185xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+dYjH/nmMy/6NmNP+majj/p2s5/6ls
+ Ov+pbTv/qGw6/6ZqN/+iZjT/nmMy/51hMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+cYTD/nGEw/5xhMP+eYjH/oGUz/6NnNf1wVof7NTjW/zE11P8xNdT/MTXU/zI21v81Odn/Nzva/zk8
+ xOlAQp5B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABTU3izU9QL3VTlLs/0hM
+ 6v8zN9b/MTXV/zU52P9FSej/Wl/4/z5AvtUeH081AAAACwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnOz221TQ31v8zNtX/MzbV/zM2
+ 1f86Pdz/UVTz/0xO6P83N5OHCgoXDwAAAAX///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAHCQoRGTc6rr00N9X/MzbV/zM21f8zNtX/OTzb/09S8P9PUuv/OTqqqQwMEhUAAAAFom09UaJo
+ NuudYjD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+dYjD/nmMx/6FlM/+lajb/rW88/7Z3Qv+9fkj/woFL/8KCTP/BgUv/vH1I/7N1Qf+tcD3/qGw5/6Jm
+ NP+eYzH/nWIw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/51iMP+dYjD/nmMx/51m
+ PP9UR6n/NDnZ/zc72/84PNv/Nzva/z5C4P87PtT7PkCrfSIiSQP///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAcAAAAPAQEDGzExhns4PM75NzvZ/zM31f8zN9X/NTnX/0FF5P9cYPv/QEPI5Sst
+ cEMAAAAJAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAACRwcQCc8PrbVNjnX/zU41v81ONb/NTjW/zw/3f9TVvP/TVDo/zY4k4cJCRURAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAcGBhEbODquvTY51v81ONb/NTjW/zU4
+ 1v87Pdv/UVTw/1FU7P86O6upCwsRE5xoPC+haDjRnmMx/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/55jMf+iZjT/qW06/7BzP/u6fEbnwoNN4cmJ
+ U9vQjljb2JZd4d+cYe3fnWP925dd/82MU/+9fkf/r3E9/6ZpNv+fZDL/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nmMv/5RpYv+HheL/gob2/3d69f9dYOv/Q0fl/zxA
+ yNs6Opcj////Af///wH///8B////AQAAAAMAAAAFAAAABwAAAAkAAAANAAAAFQAAAB8AAAAxICBVZzs+
+ yvU1ONj/NTjW/zU41v82Odj/QEPi/1tf+v9DRs/xMjOBSQAAAAf///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzw/ttU4O9j/NjnX/zY5
+ 1/83Otf/PUDe/1RX9P9PUen/NjeQiQcHDxUAAAANAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAA
+ AAkAAAAJAAAADQUHDh84O6y/ODvX/zY51/82Odf/NzrX/zw/3P9SVfH/UlXs/zo7q6kuHxoZomo6v59k
+ Mv2dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+fYzH/o2c2+ahtPNOqckCPq3RDaap3RD+pdEUxqHVGJ6p1SCeud0g1sHhIS72DUHPPkFqz2ZZf49qW
+ XfnEgkz/rnA9/6NnNf+fZDL/nmIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/n2Uz/7OUkP+6vPX/v8L8/7e7+/9bXuj/Oz69qT09egsAAAADAAAABQAAAAUAAAAJAAAADQAA
+ ABEAAAAVAAAAHQAAACUAAAAvAAAAOwAAAEckJWKDP0LO9zc62f82Otf/NjrX/zg72f9AQ+H/WVz4/0NG
+ 0O80NYhFAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAkcHEAnPT+21Tk82f84O9j/ODvY/zg72P8/Qt7/Vln0/1BT6f8zNYiRBAQIJQAA
+ AB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAfAwMJLTc7qsM6Pdj/ODvY/zg7
+ 2P85PNj/PkHd/1RX8v9UV+3/Ojyrq49eOG+hZTT5nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/nmIx/55i
+ Mf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/oWU0+6NrOtOlbkFxpW9AIaqBRQX///8B////Af//
+ /wH///8B////Af///wH///8B////AYZbMQ2sdkYtu4BMg8eHUvG9fEj/qmw6/6NmNf+fYzL/nmIx/55i
+ Mf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYTD/mGND+2NYqtdRVdHXXF/U509S
+ ze0/Qq9tICAuBwAAAAsAAAAPAAAAEwAAABsAAAAhAAAAKQAAADEAAAA5AAAAQQAAAEsAAABRCwwdYUND
+ o8VQUOP/OT3Z/zg82P84PNj/OT3Z/0JG4v9VWfX/QkTM4zY3iDUAAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCc9QLfVOj7a/zk9
+ 2f85Pdn/OT3Z/0BD4P9XW/X/UVXq/y4yfpsCAgQ/AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA
+ ADsAAAA7AAAAOwAAAD0CAgZFNzqlyTo+2P85Pdn/OT3Z/zo+2f8+Q97/VVny/1RY7v9LRJ2/nmY24Z9j
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/6Jo
+ N+2kbj57pHhGGf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGVaTsDpnBDPbN5Rr+0dUH9p2o3/6FlM/+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+gZDH9oGk9oU1Ghxc7OYwbPDuPHx0dPxMAAAAVAAAAHQAAACUAAAAvAAAAOQAA
+ AD8AAABHAAAATQAAAFMAAABVAAABWRobTIFeW6rNd3Ts+0tN5P85Pdn/OT3Z/zk92f86Ptr/RUjk/01R
+ 7f8/QsTJNTaFHf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJHBxAJz5Bt9U8QNv/Oz/Z/zs/2f87P9r/QUXh/1hc9f9TV+r/LS13pQEB
+ A1UAAABVAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQEBBFk2OKLNPEDZ/zs/
+ 2v87P9n/Oz/a/0BE3/9WWvP/Wlzo/39da/ehZDH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/6BjMf+iaDfVo3BAR593Rwn///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpXBBF6xyQaerbjv7o2Y0/6Bk
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+iZzbrnGQ9MwIB
+ AA0AAAAXAAAAIwAAADEAAAA7AAAARQAAAE0AAABTAAAAVQICCFsRETFvIB9Rg0pHhatsaLPXl5De846H
+ 8/9UVuj/PEDb/zs/2f87P9n/Oz/a/z1B2/9ESOP/Rkrk/z5AsaE0NHwJ////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnP0G31T1B
+ 3P89Qdr/PUHa/z1B2/9DR+H/Wl71/1VZ6/88PI/DLi1hiy0sYo0tLGKNLSxijS0sYo0tLGKNLSxijS0s
+ Yo0tLGKNLSxijS0sYo0tLGGLLSxijT5Aq9s+Qtn/PUHa/z1B2v89Qdv/Qkff/1hc9P9pY9T/mmRD/6Bj
+ MP+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+hYzH/o2c326Jt
+ Pj+geEoD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8Bp3FCG6lvP6emaTf7oWQy/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bj
+ Mf+gYzH/oGMx/6BjMf+gYzH/oGMx/6FkMv2cZTqdEw0IIQAAADMAAABBAAAASwAAAFEBAQRXCwwjZyEh
+ S39GRYGlXVqjx4R+yeWYkOHzmpLw+4yF9P9oZ+7/Sk3j/z9C3P89Qdr/PUHa/z1B2v89Qdv/P0Pd/0RI
+ 4v9DRtL7P0GmSSwsYwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCc/QrfVP0Pd/z5C2/8+Qtv/P0Pc/0VJ4v9cX/X/bGz0/314
+ 4/uAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3eXXl/UtO
+ 3/8+Qtv/PkLb/z9D3P9ESOD/Wl70/4JpnP+gZDL/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bj
+ Mf+gYzH/oGMx/6BjMf+gYzH/oGMx/6NnNu2ibD5Pl4VGA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpW5CI6Vq
+ OcOjZjP/oGQx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bm
+ N+cxIRRNAAAASwEBBFcKCx5jKitZh0pJja93c7nXk4za8Z6W7vuVj/b/fXnz/2Vk7f9SU+b/Rkjh/0FE
+ 3f8+Qtv/PkLb/z5C2/8+Qtv/PkLb/z5C2/9ARN3/Qkbe/0FEv8c/QI4T////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0BD
+ uNVBRd7/QETc/0BE3P9ARNz/Rkri/1FU7P9PUeX/UFLl/1BS5f9QUuX/UFLl/1BS5f9QUuX/UFLl/1BS
+ 5f9QUuX/UFLl/1BS5f9QUuX/UFLl/1BS5f9RUuX/SUvi/0FF3f9ARNz/QUXd/0VK4v9hX+H/l2pd/6Bk
+ L/+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+iZjP7pWw9h5mA
+ TAX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BpW0/VaNnNfWgZDH/oGQx/6BkMf+gZDH/oGQx/6Bk
+ Mf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/omYz/18/JIcOECppNzd2oXl1uNmhmeX3pJv0/42H
+ 9/9savD/VFXo/0hK4v9DRt//QUXd/0BE3P9ARNz/QETc/0BE3P9ARNz/QETc/0BE3P9ARNz/QETc/0FF
+ 3f9BRcrtQkSoSUpKlgP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkcHEAnQUO41UNG3/9CRt7/Qkbe/0JG3v9DR9//Qkbe/0JF
+ 3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG
+ 3v9CRt7/Qkbe/0JG3v9DRt7/R0vk/3hiov+gZjb/oWQw/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6Fk
+ Mf+hZDH/oWQx/6FkMf+hZDH/oWQx/6NpOcOlc0MV////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGpbkMJo2o7paJlMv2hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6Fk
+ Mf+hZDD/j2Va8YeAze+on/X9iYT3/2Rj7v9OUOb/Rkjh/0NH3v9CRt7/Qkbd/0FG3f9CRt7/Qkbe/0JG
+ 3v9DR97/Q0ff/0RI4P9FSeH/Rkri/0ZK4v9ESN//QkXL6UBBq1////8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwc
+ QCdCRLjVRUjg/0VH3v9FR97/RUff/0dK4f9IS+P/SEzj/0hM4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hM
+ 4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hL4/9JTOP/Rkjg/0VI3/9JTOX/iGN5/6Fk
+ MP+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+jZjT7o2w8aaSI
+ TwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGlbUJJo2c18aFkMf+hZDH/oWQx/6Fk
+ Mf+hZDH/oWQx/6FkMf+hZDH/omUx/6JlMv+jZTL/omUy/6JlMf+kcE7/hXjY/1xb6/9LTeP/RUng/0VI
+ 3/9ER97/RUjf/0VI3/9FSN//RUjf/0ZJ4P9HSuH/SEvi/0pN4/9MUOf/UVTr/1FU6/9NUOj/SEvc/0RG
+ x9VBQq1XOTmeB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0NFudVHSuH/Rknf/0ZJ3/9HSuD/TVDm/2hr
+ 9P+Ag/j/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE
+ +P+BhPj/fYD4/1xf7P9HSuD/R0rg/1JR2P+WZVL/omQv/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6Jk
+ Mf+iZDH/omQx/6JkMf+iZDH/omQx/6NpONWlckEl////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaZtSAekaTm9o2Uy/6JkMf+iZDH/omQx/6JkMf+iZDH/o2Uy/6NlMv+lZjP/pWcz/6do
+ Nf+qajX/q2w3/6JqRP9kVrP/R0rh/0ZJ3/9GSd//Rkng/0dK4P9HSuH/SEvi/0pN4/9MT+b/TlHp/1NW
+ 7P9ZXPH/XF/1/11h9/9XWvH/TE/h/UdKz+VDRrqTQkOrNTo9igX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAkcHEAnQ0a61UlM4v9IS+H/SEvh/0hL4f9OUef/bXD5/6Sn/f+usfv/rrH7/66x+/+usfv/rrH7/66x
+ +/+usfv/rrH7/66x+/+usfv/rrH7/66x+/+usfv/rrH7/66x+/+Qk/P/UVTj/0hL4P9IS+L/Z1iz/59l
+ Ov+iZDD/omQx/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6JkMf+jZTH/pGs7n6Bx
+ Pgf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNqPGOlZzT3omQx/6Jk
+ Mf+kZjL/pGYy/6VmMv+mZzP/qGk1/6prN/+rbTn9qG5D/5xtZf99YY7/YlW3/0xM2P9HSuD/R0rg/0dK
+ 4P9JTOL/Sk3j/01Q5v9SVer/WFvw/2Fk9v9navr/Z2r7/2Fk9/9ZW+39UVPd9UdKyNtBQ7KRPDyaOyws
+ aQsAAAAHAAAABwAAAAcAAAAFAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCdER7rVSk3j/0pN4v9KTeL/Sk3i/1BT
+ 6P9navn/YmXw/0xNw9tOUMfDT1HKwU9Sy79PUsu/T1LLv09Sy79PUsu/T1LLv09Sy79PUsu/T1HLv05R
+ ycFNT8XFTE7M8UtO4f9JTOH/Sk3i/0pN4/9/YIT/o2Yx/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6Nl
+ Mf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6RnM/+ibj1N////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BpHFCNaRoNuekZTH/pWcz/6doNP+pajX/rG03/65vOv+sbzz1pGo7yX9b
+ V8VtY7/3WVjj/0hM5f9ITOP/SUzh/0lM4f9JTOH/S07j/05R5v9VWO3/YmX4/2ls/P9pbPz/ZGf2/1lb
+ 5v9NUNP3SErEw0RFtZE6OphbJydgKwoKGB0AAAAbAAAAGwAAABkAAAAXAAAAFQAAAA8AAAAHAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAJHBxAJ0VHu9VMT+T/S07i/0tO4v9MT+P/UlXp/2ls+v9iZe//ODiTiR4eSBcvL3YNNTWNCzU1
+ kgs1NZILNTWSCzU1kgs1NZILNTWSCzU1kgs1NY4LLCxsDRcXOiFAQ7LBTE/i/0tO4/9LTuP/TE/j/49j
+ Zf+kZTD/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+kZTH/pWk236Ny
+ Px3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGoaEMFpms4sahp
+ NP+tbTf/r3A8/65xPd+scT+3pW4/dYtbODMpHiYzRUa0wVdY6f9LTuP/S07i/0tO4v9LTuL/S07j/0xP
+ 5P9RVOn/Wl3y/19i9v9aXez/UVTa8UtNystHSLqbQ0SvX0FBoCk4OIkNCgoZBwAAARsAAAAxAAAAPQAA
+ AD8AAAA9AAAAOQAAADcAAAAxAAAAJQAAABMAAAAH////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnRUi81U1Q5f9NUOP/TVDj/01Q
+ 5P9UV+v/a277/2Rm8P83OJWHCAgWDwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAFBgcRGUFEs71NUOP/TVDk/01Q5P9OUeH/nGdI/6RlMP+kZTH/pGUx/6RlMf+kZTH/pGUx/6Rl
+ Mf+kZTH/pGUx/6RlMf+kZTH/pGUx/6VmMf+kajm5oHdCD////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGlbj1prXE+061yQKOqckJfpnNEKaVxQxF2UzIHAAAACyQk
+ WkVNT83nUVPn/01Q5P9NUOT/TVDk/05R5f9OUeX/T1Lm/1JV6P9OUdjzSkzHwUZHu3VERK87QkKmGT4+
+ mgk7O40D////AQAAAAUAAAAVAAAALQAAAEMAAABRAAAAVQAAAFMAAABTAAAATwAAAEcAAAAzAAAAGQAA
+ AAn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAACRwcQCdGSLzVT1Lm/05R5P9OUeT/T1Ll/1ZZ7P9tcPv/ZWjw/zc6locICBcPAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcGBhEZQkSzvU9S5P9OUeT/TlHl/1lV
+ 0v+iaD7/pWYw/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH/pmcx/6Nr
+ OpWdcTwF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaFv
+ Qg+kcUIlonNHC6qIVQP///8B////AQAAAAMAAAANMTF/Y09Q2PVPUub/T1Ll/09S5f9QU+b/U1bq/1VY
+ 7P9OUd/9RknBzz5ApF07PZgbLi5xBQAAAAMAAAADAAAAAwAAAAMAAAAFAAAADQAAACETFDFJNDRzizQ0
+ a48vMGaRKipahyMiSn8fH0Z5HBxEax0eSU0ICBUbAAAAB////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0dJvNVRVOf/UFPl/1BT
+ 5f9RVOX/V1rs/29y+/9navD/OTqWhwgIFQ8AAAAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABwYGERlDRbO9UVTl/1BT5f9QU+b/aVu4/6RnN/+lZjD/pWYx/6VmMf+lZjH/pWYx/6Vm
+ Mf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH9o289daJ3QQP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAk5O5JzUlTg+1JV5v9RVOb/UVTm/1NW6P9bXvD/YGP0/0lLxOUhI1ZJAQEEFQAAAA0AAAAJAAAABwAA
+ AAcAAAAHAAAACQAAAA8AAAAbAAAAMS4udIFratvziITq+YeC5vmHguT3hYDg9YSA3vOBfdvxXVzE3ycn
+ aysAAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAkcHEAnSEq91VNW5/9SVeb/UlXm/1JV5v9ZXO3/cXT8/2ls8f86OpaHCAgVDwAA
+ AAX///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAHBgYRGURFtL1TVeb/UlXm/1JV
+ 5/9zX6X/pmYy/6ZmMf+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6Zo
+ NP2lckJP////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAQEDBzw+mnNRVeD7UlXn/1JV5/9TVuf/Vlnr/2dq
+ 9/9navP/Pj+juQEBA0MAAAAxAAAAJQAAAB0AAAAZAAAAGQAAABsAAAAfAAAAJwAAADUAAABHP0GgvVpb
+ 6f1cXuz/X2Dt/2Jj7/9kZfD/aWnz/3R1+/9TVtDnLTJ4JwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCdISr3VVVjo/1RX
+ 5/9UV+f/VFfn/1pd7v9ydfz/a23x/zo6locICBUPAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcGBhEZQ0W0vVRX5v9UV+f/U1fo/3tilf+nZzD/pmYx/6ZmMv+mZjL/pmYy/6Zm
+ Mv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmk1+6RuPyX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAADOTuVW1BT2/dVWOn/VFfo/1RX6P9YW+z/bXD5/3Bz9v8/QaPFBQUNWQAAAEsAAABDAAAAOwAA
+ ADcAAAA3AAAAOQAAAD0AAABFAAAATRgZQHVXV87tWlzt/1RW5/9TV+j/U1fo/1RX6P9dYPD/aGv5/0tN
+ xs8uK3cZ////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJHBxAJ0lLvdVWWen/VVjo/1VY6P9WWej/XWDv/3N2/P9sbvL/OjqWhwgI
+ FQ8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwYGERlERrS9Vlnn/1VY
+ 6P9WWef/gmOK/6dnL/+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6Zn
+ Mv+majb5oW0/F////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAM6PJQ/T1LV7Vpd7v9ZXOz/Vlnp/1hb
+ 6/9jZvT/bHD6/1NW1/c0NYOtCwscZQAAAVcAAABTAAAAUQAAAFEAAABRAAAAVQEBBFkSEjNvW1mr0XJy
+ 8P1YWuv/VVjo/1VY6P9VWOj/V1rq/19i8v9eYe//RUiznzIjawn///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnSUu91Vda
+ 6v9XWun/V1rp/1da6f9eYfD/dHf8/21w8v86OpaHCAgVDwAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHBgYRGUVHtL1XWuj/V1rp/1ha5f+HZYD/p2cv/6ZnMv+mZzL/pmcy/6Zn
+ Mv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/p2cy/6ZpN/embD8R////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATY2fQ9LTsXJYmXz/2Nm9P9bXu3/WFvr/1pd7f9jZvX/YGLx/1lb3vtLTLDRODqApygo
+ V4ccHD95FBUycRgYN3MwMWKPSkmHrYWAxuWgmfH9bW7z/1ha6v9WWen/Vlnp/1da6f9aXez/X2Ly/1ZZ
+ 3/VBRKVZKChfA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCdKTL3VWl3r/1lc6v9ZXOr/Wl3q/2Bj8f93ev3/b3Lz/zo6
+ locICBUPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcGBhEZRke0vVlc
+ 6P9ZXOr/Wl3m/4hmf/+oZy//p2cy/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2cy/6dn
+ Mv+nZzL/pmk366pzRA////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AUVHsntnaen3gYT9/2pt
+ 9/9eYfD/WV3r/1te7P9bXu3/XF/u/29v9v9+e/D9f3zk94F92/WGgtjzlY/c86eg5vmyq/H9npr7/2tr
+ 8/9bXuz/WFvq/1hb6v9YW+r/WVzq/1te7P9aXer/TE7EwzU1fRH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHR1BJUtN
+ vtVcX+z/W17r/1te6/9cX+z/YmXy/3l8/f9xdPP/OzuWhQgHFA8AAAAF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAABwcHEhlHSbW9W13q/1te6/9dX+f/imd7/6loMP+oaDL/qGgy/6ho
+ Mv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+nazjjpnNID////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BPkCiHVNUy8mPkvn/oKP+/3N2+v9hZPL/W17t/1pd6/9aXev/W13s/19h
+ 7v9kZvH/bGz0/3Z29/96efj/dHP2/2lp8/9gYe//W13r/1pd6/9aXev/Wl3r/1pd6/9bXuz/XF/s/1NW
+ 1/FDRKhT////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcgIEkhTE+/1V5h7f9dYOz/XmHt/2Bj7/9kZ/P/en39/3N1
+ 8/87PZiDCAkYDQAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFCAgUFUhK
+ t7tdYOv/XF/s/2Bh5/+Oanj/qWgw/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6ho
+ Mv+oaDL/qGgy/6drONuidkQN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BRESsN2Jk
+ 1de3uvz/0dP+/5mc/f9ydfr/ZGfz/19i7/9dYOz/XF/s/1xg7P9dX+z/XGDs/11g7P9dYOz/XWDs/11g
+ 7P9dYO3/XmHt/15h7f9eYe7/X2Lu/15h7v9XWt31SEq2f0FClgv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAykp
+ XRtOUMHTX2Lu/2Zp8P9xdPj/c3b6/3R3+v9/gv7/dHb0/z4/oX0PECsHAAAAA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAMMDSAPSk27t15h7P9laO//cnT0/5NyiP+qaTH/qmkz/6pp
+ M/+qaTP/qmkz/6ppM/+qaTP/qmkz/6ppM/+qaTP/qmkz/6ppM/+qaTP/qWw526J2RA3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wFAQJcFR0iwUWZo1dnCxPn/6ur+/8rL/v+gov7/goX7/3Bz
+ +P9oa/T/ZGfy/2Jl8f9hZPD/YmXw/2Jl8f9jZvL/ZWjz/2hr9P9pbPX/am33/2Zp9f9hZO//V1rb90pL
+ u5M/QKAR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BNTl/E09RxM96fPP/t7r7/8TG///Exv//w8b//7W4
+ //97ffT/QUOodxocUQX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ARka
+ QAdLTb+1cHPv/7G0+v/Exfz/tZWU/65tN/+wbjr/sG46/7BuOv+wbjr/sG46/7BuOv+wbjr/sG46/7Bu
+ Ov+wbjr/sG46/7BuOv+tbz7bonZEDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wE1N48FPj+lNV9izcOen+752dn7/+zt/v/j5P//yMr+/7Cz/v+go/7/lpn9/4uO+/+Mjvz/jY/8/4qN
+ /P+Kjf3/jI/+/4GD/v9ydPn/YWPr/VRX0uFHSrNvQUOgE////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wE9P5cRUFG/z3x+6f+Tler/k5Xq/5OV6v+Tler/kZPr/3J05v9CRax1MzOIA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BNTqMBUlNu7N1d+b9kpTr/5KU6f+fgZP/uHVF/7h2
+ R/+4dkf/uHZH/7h2R/+4dkf/uHZH/7h2R/+4dkf/uHZH/7h2R/+4dkf/uXZI/7J0Rummd0QP////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BOz6hFUVItHVdX8zBfX/c97Cx
+ 8//Q0f7/4OH+/+Hj/v/Z2/7/zc/+/7/B/v+wsv7/oqT+/5OV/v90dvD/YWPg/VNVzNFHSLOHQkOrNSMl
+ WwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUREiANCRKk/QUSuWz9Crls/Qq5bP0KuWz9C
+ rls/Qq1dQ0auXURErBf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BREWqJ0FFrlk+Qq5bPUCtW45mZKe9ekz/vHlM/7x5TP+8eUz/vHlM/7x5TP+8eUz/vHlM/7x5
+ TP+8eUz/vHlM/7x5TP+8eUz/tHZJ76N0RhH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AS4lgAk1OqIpQESxaUtMuJVaXMq1XmDQx2Bi1NFgYtPXWlzOzVZY
+ zsNSU8azTE69p0VGrm1AQqovOTmcDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEvOokDKTqAAyk6gAMpOoADKTqAAyw7gQM2NogD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BKzuHAyk6gwM1N3gDqnNHb7x6
+ Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+0d0r5o3ZEF///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEsLIgDLS2XBTg5rA05NaYVOjyiGz0+pB86P6AZPT6iEzs8pgs7PqEHNTWIA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGncUNfunlN/bx6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6
+ Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7d3S/uldEcv////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaZx
+ QTe5eUz3vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/uXlN/ahx
+ RlOSaEgD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bo3JGD7h4TO+9e0//vXtP/717T/+9e0//vXtP/717
+ T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0/9qXJEc5tzOgP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGRckkDsnZI2b57T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0//vXtP/718
+ T/+sdEebonZFBf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGwdEe5vnxQ/718UP+9fFD/vXxQ/718
+ UP+9fFD/vXxQ/718UP+9fFD/vXxQ/718UP+9fFD/vXxQ/7J2S7eqcUQN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Aa50R3+9fVD7vXxR/718Uf+9fFH/vXxR/718Uf+9fFH/vXxR/718Uf+9fFH/vXxR/718
+ Uf+9fFH/t3lN8alzRjP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bn25BCZltQAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bp3BCUbp7T/W9fVL/vX1S/719
+ Uv+9fVL/vX1S/719Uv+9fVL/vX1S/719Uv+9fVL/vX1S/719Uv+7fFH/rXRHaZloNAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaZ1Qw24gFGJwI1bg7J/UU2seU4ZrHZIC55t
+ QAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGmcUAZuHlO1b99U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759
+ U/++fVP/vn1T/799U/+xdkqvpHVDDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BqXBGPcSHWuvxuYj/9L+N+eGufO/XpXXHyJVmibF9T2GldEUrnmBACf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGwdUihvnxS/b59
+ U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/7l7T+2pdEc/////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGudUmBvn1S+8yJXv/hnG//7Kh5//Oz
+ g//2vIr99b+N++q2hOvbp3fVy5lqo8OMXmeud0o7oG4/Gf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AatyR127fFH3vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759
+ U/++fVP/vn1T/759U/++fVP/vX5T/7J4TJebaz4J////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BpG5AC7V5TdG+flT/v39V/8mHXP/QjGD/1ZFk/9uXav/jnnD/6ad4//Kzg//zuIf987yK+ey6
+ iOvdqnjRu4lZnaJuPhv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bpm9BI7Z5
+ TtO/flT/vn5U/75+VP++flT/vn5U/75+VP++flT/vn5U/75+VP++flT/vn5U/75+VP++flT/unxR56x0
+ SEv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRuRAOrc0dfvX5T975+VP++flT/vn5U/8CA
+ Vv/Dglf/x4Va/8uIXf/PjGH/1JBk/9qWaf/inW//5qR1/9ygcf/BiFrVonFCIf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wG6dzMDr3VJgb9/VPu/f1X/v39V/79/Vf+/f1X/v39V/79/
+ Vf+/f1X/v39V/79/Vf+/f1X/v39V/79/Vf/AgFX/tntOw6BuQhv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BpHVFH7R5TdPAf1X/v39V/79/Vf+/f1X/vn9V/75/Vf+/f1X/v39V/8GAVv/Eglj/xoVa/8eG
+ W//Cglf/v35V/7B1SZWldE0H////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGtckcpuXtQ579/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/
+ Vv/EhFn9tntQtaNrQQ////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaVwQQ2wd0qhv39V/79/Vv+/f1b/v39W/79/
+ Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+9flT/rHdHRZN0NAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRvRQ2vdUqjv4BW/7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/8KDWf/LimD9u35VpaZwRhn///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGmbkIPr3dKhb1/VPe/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/v4BX/7Z6T9mkckER////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AahyRi24fFLlwIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wYFY/8iIXv/Vk2j7xYldubB6TDuiaUAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bp3FHKbJ4TJ2+f1X1wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP++gFb7rHRHe5VzMgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpnJFBax0SYW/gFf7wIFY/8CB
+ WP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/xYVc/9KQZf/loHP/25xu27yG
+ WX2mdEkjl2c8Bf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGjZ0ADpnBEEax0
+ SVm3e1DXwIFX/cCBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wIFY/7l8Utmnc0Il////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BoGpEE7Z7UNnBg1r/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/8CCWf/DhFv/yopg/9SSaP/ppnn/8rWG/dqod9vAi16FrHhLP55rPRNgQRAFUDchA///
+ /wH///8B////Af///wGgRDYDp3JEJ6t0SG+3fFC5v4JX98GDWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf+/gVf9sXhMiZhmIgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BqXRHQbyA
+ VuPEhVz/wYNa/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/ChFr/yIhf/9GQ
+ Zv/dnHD/8bKD//nCkv/wvYz53q187dakdMnOm2yxzZdpl8qRZI/HjF6fxolcrcSHW9PGiF3xyIle/cWH
+ XP/Bgln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/7Z7UM+ldEYh////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGfZTUFsHdMf8SGXPfHiF//xIVc/8KEW//Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv/Cg1v/xode/82OZP/WlWr/3pxw/+akeP/vsIL/9LaH//K0
+ hv/ysoP9761//emmef3enHD90ZBm/8iJYP/Ehl3/woRb/8GDWv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv+8gFX1q3VIXaJuOgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGib0IRtn1Rl8uMYfvJi2L/xYde/8OFXf/BhFv/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GD
+ W//BhFv/woVc/8aIXv/Li2H/z49l/9STaP/XlWv/1pVr/9aVav/Uk2n/0ZFn/8uMY//Fh17/woVc/8GE
+ XP/Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GD
+ W//Bg1v/v4JY+7B4TJmkcUIR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGncUITuX9SndCRZv3MjmX/x4ph/8WH
+ X//ChV3/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/ChVz/xIZd/8WH
+ Xv/GiF//x4hf/8aIXv/Fh17/w4Vd/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GE
+ XP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEW/+zek2xpXJDG////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGcbDYLuH5RodWVa/3QkWn/yoxk/8aJYf/ChV7/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/tHtR16V0QiH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGZaTgJuH5SkdSU
+ avfZmHD/z5Bp/8qMZP/GiGH/w4Zf/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wINb/bV8UsGnc0cr////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGeajsPt35TbdSVatvlo3n/2ppx/9GSav/Nj2f/yYpj/8SG
+ X//ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KF
+ Xv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/76C
+ WvezeVCdqXRHIf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGSZT0FsXtNOdOWaavqqn756qp//+Cgdv/Xl27/0JBo/8mMZP/FiGH/w4Zf/8KFXv/ChV7/woVe/8KF
+ Xv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KF
+ Xv/Dhl//woVe/8KFXv/ChV7/woVf/8KFXf+7gFbprnZLfahzRBX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bn3BCDb2FWHnXn3Hd77eK+/Gz
+ if/kpHr/25ty/9WWbv/PkWn/yY1l/8aKY//EiGH/w4dg/8KGX//Chl//woZf/8KGX//Chl//woZf/8KG
+ X//Chl//woZf/8KGX//Dhl//w4dg/8SIYf/EiGH/xYlh/8WIYf/EiGD/xIhh/8SIYP++hFr1tHtRwalz
+ SD2XYzIF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BSCYAA59sPh25hVh33Kl82/LBk/34wpb/8bWJ/+enff/ennX/2Jlx/9SV
+ bf/Qkmv/zI9o/8qNZv/JjGb/yYxm/8iLZf/Hi2T/yIxl/8iMZf/IjGX/yIxl/8mMZv/KjWb/yYxl/8mM
+ Zf/JjGb/yo5n/8qNZv/AhVz5tHxQu6l0R1OfazwL////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AYpc
+ LQOreEcXuIdZUc6dbqHgtYbh8MOV+fnIm//3wZX/8baL/+usgv/lpXz/3593/9ucdP/ZmnL/1Zdw/9SW
+ b//Ulm//1ZZv/9SWb//UlW7/1ZZu/9aXb//Wl2//0ZNr/8uOZvm/hVvXtXxSmah2SEmhdUEN////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpHBEC613SSfCk2VbxZVnm9Sl
+ ebnluYvZ6ryP8e69kPnwuo398baL/fCziP3sroP96aqA/eeofv3kpXr94aJ4/d6edPnXmnDpy5Bl1cGH
+ XL+2f1SPs3xRU6ZzSCOhb0QH////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wF7PQoFpXVKDap5SyeueUtFw5BiU8eWZ23Kl2mDzZhqg8qT
+ Zo/Ij2KTxo5hfcKKXW2+h1pjuYJVVax2STmqdUchpXdEDZJcKwX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BTSwAA2pBAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
\ No newline at end of file
diff --git a/Forms/FormsForGraphsDisplay/FormToDisplayTable.Designer.cs b/Cell-by-Cell and DB/FormToDisplayDataTable.Designer.cs
similarity index 63%
rename from Forms/FormsForGraphsDisplay/FormToDisplayTable.Designer.cs
rename to Cell-by-Cell and DB/FormToDisplayDataTable.Designer.cs
index fcf713c..9c1a146 100644
--- a/Forms/FormsForGraphsDisplay/FormToDisplayTable.Designer.cs
+++ b/Cell-by-Cell and DB/FormToDisplayDataTable.Designer.cs
@@ -1,6 +1,6 @@
namespace HCSAnalyzer.Forms.FormsForGraphsDisplay
{
- partial class FormToDisplayTable
+ partial class cDisplayScatter2D
{
///
/// Required designer variable.
@@ -31,7 +31,7 @@ private void InitializeComponent()
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormToDisplayTable));
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(cDisplayScatter2D));
this.dataGridViewForTable = new System.Windows.Forms.DataGridView();
this.chartForPoints = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.contextMenuStripForGraph = new System.Windows.Forms.ContextMenuStrip(this.components);
@@ -40,11 +40,15 @@ private void InitializeComponent()
this.comboBoxAxeX = new System.Windows.Forms.ComboBox();
this.comboBoxAxeY = new System.Windows.Forms.ComboBox();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
- this.label2 = new System.Windows.Forms.Label();
- this.label1 = new System.Windows.Forms.Label();
+ this.splitContainerHorizontal = new System.Windows.Forms.SplitContainer();
+ this.splitContainerVertical = new System.Windows.Forms.SplitContainer();
+ this.buttonCollapseHorizontal = new System.Windows.Forms.Button();
+ this.buttonCollapseVertical = new System.Windows.Forms.Button();
+ this.checkBoxIsVolumeConstant = new System.Windows.Forms.CheckBox();
this.label3 = new System.Windows.Forms.Label();
this.comboBoxVolume = new System.Windows.Forms.ComboBox();
- this.checkBoxIsVolumeConstant = new System.Windows.Forms.CheckBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewForTable)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.chartForPoints)).BeginInit();
this.contextMenuStripForGraph.SuspendLayout();
@@ -52,29 +56,35 @@ private void InitializeComponent()
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerHorizontal)).BeginInit();
+ this.splitContainerHorizontal.Panel2.SuspendLayout();
+ this.splitContainerHorizontal.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerVertical)).BeginInit();
+ this.splitContainerVertical.Panel1.SuspendLayout();
+ this.splitContainerVertical.SuspendLayout();
this.SuspendLayout();
//
// dataGridViewForTable
//
- this.dataGridViewForTable.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.dataGridViewForTable.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.dataGridViewForTable.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridViewForTable.Location = new System.Drawing.Point(3, 3);
this.dataGridViewForTable.Name = "dataGridViewForTable";
- this.dataGridViewForTable.Size = new System.Drawing.Size(457, 568);
+ this.dataGridViewForTable.Size = new System.Drawing.Size(464, 584);
this.dataGridViewForTable.TabIndex = 0;
+ this.dataGridViewForTable.RowHeaderMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dataGridViewForTable_RowHeaderMouseDoubleClick);
//
// chartForPoints
//
- this.chartForPoints.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.chartForPoints.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
chartArea1.AxisX.MajorGrid.Enabled = false;
chartArea1.AxisY.MajorGrid.Enabled = false;
chartArea1.Name = "ChartArea1";
this.chartForPoints.ChartAreas.Add(chartArea1);
- this.chartForPoints.ContextMenuStrip = this.contextMenuStripForGraph;
this.chartForPoints.Location = new System.Drawing.Point(3, 3);
this.chartForPoints.Name = "chartForPoints";
series1.ChartArea = "ChartArea1";
@@ -85,9 +95,11 @@ private void InitializeComponent()
series1.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
series1.Name = "SeriesPts";
this.chartForPoints.Series.Add(series1);
- this.chartForPoints.Size = new System.Drawing.Size(470, 489);
+ this.chartForPoints.Size = new System.Drawing.Size(399, 429);
this.chartForPoints.TabIndex = 1;
this.chartForPoints.Text = "chart1";
+ this.chartForPoints.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.chartForPoints_MouseDoubleClick);
+ this.chartForPoints.Resize += new System.EventHandler(this.chartForPoints_Resize);
//
// contextMenuStripForGraph
//
@@ -102,20 +114,20 @@ private void InitializeComponent()
this.applyClassificationModelToolStripMenuItem.Name = "applyClassificationModelToolStripMenuItem";
this.applyClassificationModelToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.applyClassificationModelToolStripMenuItem.Text = "Apply Classification Model";
- this.applyClassificationModelToolStripMenuItem.Click += new System.EventHandler(this.applyClassificationModelToolStripMenuItem_Click);
+
//
// showClassificationTreeToolStripMenuItem
//
this.showClassificationTreeToolStripMenuItem.Name = "showClassificationTreeToolStripMenuItem";
this.showClassificationTreeToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.showClassificationTreeToolStripMenuItem.Text = "Show Classification Tree";
- this.showClassificationTreeToolStripMenuItem.Click += new System.EventHandler(this.showClassificationTreeToolStripMenuItem_Click);
+
//
// comboBoxAxeX
//
this.comboBoxAxeX.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.comboBoxAxeX.FormattingEnabled = true;
- this.comboBoxAxeX.Location = new System.Drawing.Point(351, 498);
+ this.comboBoxAxeX.Location = new System.Drawing.Point(360, 514);
this.comboBoxAxeX.Name = "comboBoxAxeX";
this.comboBoxAxeX.Size = new System.Drawing.Size(121, 21);
this.comboBoxAxeX.TabIndex = 2;
@@ -125,7 +137,7 @@ private void InitializeComponent()
//
this.comboBoxAxeY.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.comboBoxAxeY.FormattingEnabled = true;
- this.comboBoxAxeY.Location = new System.Drawing.Point(351, 525);
+ this.comboBoxAxeY.Location = new System.Drawing.Point(360, 541);
this.comboBoxAxeY.Name = "comboBoxAxeY";
this.comboBoxAxeY.Size = new System.Drawing.Size(121, 21);
this.comboBoxAxeY.TabIndex = 3;
@@ -133,10 +145,10 @@ private void InitializeComponent()
//
// splitContainer1
//
- this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.splitContainer1.Location = new System.Drawing.Point(12, 12);
+ this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainer1.Location = new System.Drawing.Point(4, 3);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
@@ -145,81 +157,145 @@ private void InitializeComponent()
//
// splitContainer1.Panel2
//
+ this.splitContainer1.Panel2.Controls.Add(this.splitContainerHorizontal);
this.splitContainer1.Panel2.Controls.Add(this.checkBoxIsVolumeConstant);
this.splitContainer1.Panel2.Controls.Add(this.label3);
this.splitContainer1.Panel2.Controls.Add(this.comboBoxVolume);
this.splitContainer1.Panel2.Controls.Add(this.label2);
this.splitContainer1.Panel2.Controls.Add(this.label1);
- this.splitContainer1.Panel2.Controls.Add(this.chartForPoints);
this.splitContainer1.Panel2.Controls.Add(this.comboBoxAxeY);
this.splitContainer1.Panel2.Controls.Add(this.comboBoxAxeX);
- this.splitContainer1.Size = new System.Drawing.Size(943, 574);
- this.splitContainer1.SplitterDistance = 463;
+ this.splitContainer1.Size = new System.Drawing.Size(959, 590);
+ this.splitContainer1.SplitterDistance = 470;
this.splitContainer1.TabIndex = 4;
//
- // label2
- //
- this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(300, 528);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(36, 13);
- this.label2.TabIndex = 4;
- this.label2.Text = "Axis Y";
+ // splitContainerHorizontal
+ //
+ this.splitContainerHorizontal.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainerHorizontal.BackColor = System.Drawing.SystemColors.Window;
+ this.splitContainerHorizontal.Location = new System.Drawing.Point(3, 3);
+ this.splitContainerHorizontal.Name = "splitContainerHorizontal";
+ //
+ // splitContainerHorizontal.Panel2
+ //
+ this.splitContainerHorizontal.Panel2.Controls.Add(this.splitContainerVertical);
+ this.splitContainerHorizontal.Size = new System.Drawing.Size(478, 505);
+ this.splitContainerHorizontal.SplitterDistance = 69;
+ this.splitContainerHorizontal.TabIndex = 8;
+ //
+ // splitContainerVertical
+ //
+ this.splitContainerVertical.BackColor = System.Drawing.SystemColors.Window;
+ this.splitContainerVertical.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainerVertical.Location = new System.Drawing.Point(0, 0);
+ this.splitContainerVertical.Name = "splitContainerVertical";
+ this.splitContainerVertical.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainerVertical.Panel1
+ //
+ this.splitContainerVertical.Panel1.Controls.Add(this.buttonCollapseHorizontal);
+ this.splitContainerVertical.Panel1.Controls.Add(this.buttonCollapseVertical);
+ this.splitContainerVertical.Panel1.Controls.Add(this.chartForPoints);
+ this.splitContainerVertical.Size = new System.Drawing.Size(405, 505);
+ this.splitContainerVertical.SplitterDistance = 435;
+ this.splitContainerVertical.TabIndex = 0;
+ //
+ // buttonCollapseHorizontal
+ //
+ this.buttonCollapseHorizontal.BackColor = System.Drawing.SystemColors.Window;
+ this.buttonCollapseHorizontal.BackgroundImage = global::HCSAnalyzer.Properties.Resources.Arrow;
+ this.buttonCollapseHorizontal.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.buttonCollapseHorizontal.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.buttonCollapseHorizontal.ForeColor = System.Drawing.SystemColors.Window;
+ this.buttonCollapseHorizontal.Location = new System.Drawing.Point(3, 3);
+ this.buttonCollapseHorizontal.Margin = new System.Windows.Forms.Padding(0);
+ this.buttonCollapseHorizontal.Name = "buttonCollapseHorizontal";
+ this.buttonCollapseHorizontal.Size = new System.Drawing.Size(27, 23);
+ this.buttonCollapseHorizontal.TabIndex = 4;
+ this.buttonCollapseHorizontal.UseVisualStyleBackColor = false;
+ this.buttonCollapseHorizontal.Click += new System.EventHandler(this.buttonCollapseHorizontal_Click);
+ //
+ // buttonCollapseVertical
+ //
+ this.buttonCollapseVertical.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonCollapseVertical.BackColor = System.Drawing.SystemColors.Window;
+ this.buttonCollapseVertical.BackgroundImage = global::HCSAnalyzer.Properties.Resources.Arrow;
+ this.buttonCollapseVertical.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.buttonCollapseVertical.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.buttonCollapseVertical.ForeColor = System.Drawing.SystemColors.Window;
+ this.buttonCollapseVertical.Location = new System.Drawing.Point(375, 409);
+ this.buttonCollapseVertical.Margin = new System.Windows.Forms.Padding(0);
+ this.buttonCollapseVertical.Name = "buttonCollapseVertical";
+ this.buttonCollapseVertical.Size = new System.Drawing.Size(27, 23);
+ this.buttonCollapseVertical.TabIndex = 2;
+ this.buttonCollapseVertical.UseVisualStyleBackColor = false;
+ this.buttonCollapseVertical.Click += new System.EventHandler(this.buttonCollapseVertical_Click);
//
- // label1
+ // checkBoxIsVolumeConstant
//
- this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(300, 501);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(36, 13);
- this.label1.TabIndex = 4;
- this.label1.Text = "Axis X";
+ this.checkBoxIsVolumeConstant.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.checkBoxIsVolumeConstant.AutoSize = true;
+ this.checkBoxIsVolumeConstant.Checked = true;
+ this.checkBoxIsVolumeConstant.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.checkBoxIsVolumeConstant.Location = new System.Drawing.Point(290, 570);
+ this.checkBoxIsVolumeConstant.Name = "checkBoxIsVolumeConstant";
+ this.checkBoxIsVolumeConstant.Size = new System.Drawing.Size(68, 17);
+ this.checkBoxIsVolumeConstant.TabIndex = 7;
+ this.checkBoxIsVolumeConstant.Text = "Constant";
+ this.checkBoxIsVolumeConstant.UseVisualStyleBackColor = true;
+ this.checkBoxIsVolumeConstant.CheckedChanged += new System.EventHandler(this.checkBoxIsVolumeConstant_CheckedChanged);
//
// label3
//
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(220, 555);
+ this.label3.Location = new System.Drawing.Point(252, 571);
this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(42, 13);
+ this.label3.Size = new System.Drawing.Size(29, 13);
this.label3.TabIndex = 6;
- this.label3.Text = "Volume";
+ this.label3.Text = "Area";
//
// comboBoxVolume
//
this.comboBoxVolume.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.comboBoxVolume.Enabled = false;
this.comboBoxVolume.FormattingEnabled = true;
- this.comboBoxVolume.Location = new System.Drawing.Point(351, 552);
+ this.comboBoxVolume.Location = new System.Drawing.Point(360, 568);
this.comboBoxVolume.Name = "comboBoxVolume";
this.comboBoxVolume.Size = new System.Drawing.Size(121, 21);
this.comboBoxVolume.TabIndex = 5;
this.comboBoxVolume.SelectedIndexChanged += new System.EventHandler(this.comboBoxVolume_SelectedIndexChanged);
//
- // checkBoxIsVolumeConstant
+ // label2
//
- this.checkBoxIsVolumeConstant.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.checkBoxIsVolumeConstant.AutoSize = true;
- this.checkBoxIsVolumeConstant.Checked = true;
- this.checkBoxIsVolumeConstant.CheckState = System.Windows.Forms.CheckState.Checked;
- this.checkBoxIsVolumeConstant.Location = new System.Drawing.Point(281, 554);
- this.checkBoxIsVolumeConstant.Name = "checkBoxIsVolumeConstant";
- this.checkBoxIsVolumeConstant.Size = new System.Drawing.Size(68, 17);
- this.checkBoxIsVolumeConstant.TabIndex = 7;
- this.checkBoxIsVolumeConstant.Text = "Constant";
- this.checkBoxIsVolumeConstant.UseVisualStyleBackColor = true;
- this.checkBoxIsVolumeConstant.CheckedChanged += new System.EventHandler(this.checkBoxIsVolumeConstant_CheckedChanged);
+ this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(309, 544);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(36, 13);
+ this.label2.TabIndex = 4;
+ this.label2.Text = "Axis Y";
+ //
+ // label1
+ //
+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(309, 517);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(36, 13);
+ this.label1.TabIndex = 4;
+ this.label1.Text = "Axis X";
//
- // FormToDisplayTable
+ // FormToDisplayDataTable
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(967, 598);
this.Controls.Add(this.splitContainer1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.Name = "FormToDisplayTable";
+ this.Name = "FormToDisplayDataTable";
this.Text = "FormToDisplayTable";
((System.ComponentModel.ISupportInitialize)(this.dataGridViewForTable)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.chartForPoints)).EndInit();
@@ -229,6 +305,12 @@ private void InitializeComponent()
this.splitContainer1.Panel2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
+ this.splitContainerHorizontal.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerHorizontal)).EndInit();
+ this.splitContainerHorizontal.ResumeLayout(false);
+ this.splitContainerVertical.Panel1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainerVertical)).EndInit();
+ this.splitContainerVertical.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -248,6 +330,10 @@ private void InitializeComponent()
private System.Windows.Forms.Label label3;
public System.Windows.Forms.ComboBox comboBoxVolume;
private System.Windows.Forms.CheckBox checkBoxIsVolumeConstant;
+ private System.Windows.Forms.SplitContainer splitContainerHorizontal;
+ private System.Windows.Forms.SplitContainer splitContainerVertical;
+ private System.Windows.Forms.Button buttonCollapseVertical;
+ private System.Windows.Forms.Button buttonCollapseHorizontal;
}
diff --git a/Cell-by-Cell and DB/FormToDisplayDataTable.cs b/Cell-by-Cell and DB/FormToDisplayDataTable.cs
new file mode 100644
index 0000000..95c6dca
--- /dev/null
+++ b/Cell-by-Cell and DB/FormToDisplayDataTable.cs
@@ -0,0 +1,376 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Classes;
+using weka.core;
+using System.Windows.Forms.DataVisualization.Charting;
+using HCSAnalyzer.TMP_ToBeRemoved;
+using HCSAnalyzer.GUI.FormsForGraphsDisplay.Generic;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+
+namespace HCSAnalyzer.Forms.FormsForGraphsDisplay
+{
+ public partial class cDisplayScatter2D : Form
+ {
+ private DataTable dt;
+ cGlobalInfo GlobalInfo;
+
+ public cDisplayScatter2D(DataTable dt, cGlobalInfo GlobalInfo)
+ {
+ InitializeComponent();
+
+ #region initialize histograms display
+ splitContainerHorizontal.Panel1Collapsed = true;
+ splitContainerVertical.Panel2Collapsed = true;
+
+ System.Drawing.Image ImageOriginal = (System.Drawing.Image)(Properties.Resources.Arrow);
+ if (splitContainerVertical.Panel2Collapsed)
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ else
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate90FlipNone);
+
+ buttonCollapseVertical.BackgroundImage = ImageOriginal;
+ #endregion
+
+ this.chartForPoints.BorderlineColor = Color.Black;
+ this.dt = dt;
+ this.dataGridViewForTable.DataSource = dt;
+ this.GlobalInfo = GlobalInfo;
+
+
+ }
+
+ public cDisplayScatter2D(List MyData)
+ {
+ InitializeComponent();
+
+ #region initialize histograms display
+ splitContainerHorizontal.Panel1Collapsed = true;
+ splitContainerVertical.Panel2Collapsed = true;
+
+ System.Drawing.Image ImageOriginal = (System.Drawing.Image)(Properties.Resources.Arrow);
+ if (splitContainerVertical.Panel2Collapsed)
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ else
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate90FlipNone);
+
+ buttonCollapseVertical.BackgroundImage = ImageOriginal;
+ #endregion
+
+ this.chartForPoints.BorderlineColor = Color.Black;
+
+ this.GlobalInfo = null;
+
+
+ this.dt = createDataTable(MyData);
+ this.dataGridViewForTable.DataSource = dt;
+
+ foreach (var item in MyData)
+ {
+ this.comboBoxAxeX.Items.Add(item.Name);
+ this.comboBoxAxeY.Items.Add(item.Name);
+ this.comboBoxVolume.Items.Add(item.Name);
+ }
+
+ this.comboBoxAxeX.SelectedIndex = 0;
+ this.comboBoxAxeY.SelectedIndex = 0;
+ this.comboBoxVolume.SelectedIndex = 0;
+
+ }
+
+ DataTable createDataTable(List MyData)
+ {
+ DataTable CurrentTable = new DataTable();
+
+ int IdxCol = 0;
+ foreach (cExtendedList item in MyData)
+ {
+ DataColumn NewCol = null;
+ if (item.Name != null)
+ NewCol = new DataColumn(MyData[IdxCol++].Name, typeof(double));
+ else
+ NewCol = new DataColumn("Column " + IdxCol++, typeof(double));
+
+ CurrentTable.Columns.Add(NewCol);
+ }
+
+ for (int Idx = 0; Idx < MyData[0].Count; Idx++)
+ {
+ CurrentTable.Rows.Add();
+
+ for (int IdxColumn = 0; IdxColumn < MyData.Count; IdxColumn++)
+ {
+ CurrentTable.Rows[CurrentTable.Rows.Count - 1][IdxColumn] = MyData[IdxColumn][Idx];
+ }
+ }
+
+ //DataGridView NewDataGridView = new DataGridView();
+ //NewDataGridView.DataSource = CurrentTable;
+
+ // FormToDisplayDataTable FDT = new FormToDisplayDataTable(CurrentTable, null);
+ // FDT.Show();
+
+ return CurrentTable;
+ }
+
+
+ private void ReDraw()
+ {
+ cExtendedList ListX = new cExtendedList();
+ cExtendedList ListY = new cExtendedList();
+
+ if (this.comboBoxAxeY.SelectedIndex == -1) return;
+ if (this.comboBoxVolume.SelectedIndex == -1) return;
+
+ cExtendedList ListVolumes = new cExtendedList();
+
+ for (int j = 0; j < dt.Rows.Count; j++)
+ {
+ ListX.Add(double.Parse(dt.Rows[j][this.comboBoxAxeX.SelectedIndex].ToString()));
+ ListY.Add(double.Parse(dt.Rows[j][this.comboBoxAxeY.SelectedIndex].ToString()));
+ ListVolumes.Add(double.Parse(dt.Rows[j][this.comboBoxVolume.SelectedIndex].ToString()));
+ }
+
+ this.chartForPoints.ChartAreas[0].AxisX.Title = this.comboBoxAxeX.SelectedItem.ToString();
+ this.chartForPoints.ChartAreas[0].AxisY.Title = this.comboBoxAxeY.SelectedItem.ToString();
+ this.chartForPoints.Series[0].Points.DataBindXY(ListX, ListY);
+
+ this.chartForPoints.ChartAreas[0].AxisX.Minimum = ListX.Min();
+ this.chartForPoints.ChartAreas[0].AxisX.Maximum = ListX.Max();
+
+ this.chartForPoints.ChartAreas[0].AxisY.Minimum = ListY.Min();
+ this.chartForPoints.ChartAreas[0].AxisY.Maximum = ListY.Max();
+
+ if (!checkBoxIsVolumeConstant.Checked)
+ {
+ double MaxVolume = ListVolumes.Max();
+ double MinVolume = ListVolumes.Min();
+
+ for (int j = 0; j < dt.Rows.Count; j++)
+ {
+ int MarkerArea = (int)((45* (ListVolumes[j] - MinVolume)) / (MaxVolume - MinVolume))+3;
+ this.chartForPoints.Series[0].Points[j].MarkerSize = MarkerArea;
+ Color C = this.chartForPoints.Series[0].Points[j].Color;// =
+ }
+ }
+
+ for (int j = 0; j < this.chartForPoints.Series[0].Points.Count; j++)
+ {
+ //int ConvertedValue = (int)(((Classes[j] - 0) * (LUT[0].Length - 1)) / (eval.getNumClusters() - 0));
+ // this.chartForPoints.Series[0].Points[j].MarkerColor = GlobalInfo.ListCellularPhenotypes[(int)MachineLearning.Classes[j]].ColourForDisplay;
+ this.chartForPoints.Series[0].Points[j].MarkerColor = Color.FromArgb(128, Color.OrangeRed );
+ }
+
+ if (checkBoxIsVolumeConstant.Checked)
+ {
+ for (int j = 0; j < this.chartForPoints.Series[0].Points.Count; j++)
+ this.chartForPoints.Series[0].Points[j].MarkerSize = 10;
+ }
+
+
+ for (int j = 0; j < dt.Rows.Count; j++)
+ this.chartForPoints.Series[0].Points[j].Tag = dataGridViewForTable.Rows[j];//dt.Rows[j];
+
+ this.chartForPoints.ChartAreas[0].AxisX.LabelStyle.Format = "N2";
+ this.chartForPoints.ChartAreas[0].AxisY.LabelStyle.Format = "N2";
+
+ }
+
+ private void comboBoxAxeX_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ ReDraw();
+ if (splitContainerVertical.Panel2Collapsed) return;
+ RedrawHistoHorizontal();
+ }
+
+ private void comboBoxAxeY_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ ReDraw();
+ RedrawHistoVertical();
+ }
+
+ private void RedrawHistoVertical()
+ {
+ cExtendedList ListValue = new cExtendedList();
+ for (int Idx = 0; Idx < this.dt.Rows.Count; Idx++)
+ ListValue.Add(double.Parse(this.dt.Rows[Idx][comboBoxAxeY.SelectedIndex].ToString()));
+
+ cPanelHisto PanelHisto = new cPanelHisto(ListValue, eGraphType.HISTOGRAM, eOrientation.VERTICAL);
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.BackColor = Color.White;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Size = new System.Drawing.Size(splitContainerHorizontal.Panel1.Width, splitContainerVertical.Panel1.Height);
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Location = new Point(0, 0);
+
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.BorderStyle = BorderStyle.None;
+
+ PanelHisto.WindowForPanelHisto.CurrentChartArea.AxisX.Minimum = chartForPoints.ChartAreas[0].AxisY.Minimum;
+ PanelHisto.WindowForPanelHisto.CurrentChartArea.AxisX.Maximum = chartForPoints.ChartAreas[0].AxisY.Maximum;
+
+ splitContainerHorizontal.Panel1.Controls.Clear();
+ splitContainerHorizontal.Panel1.Controls.Add(PanelHisto.WindowForPanelHisto.panelForGraphContainer);
+
+ }
+
+ private void RedrawHistoHorizontal()
+ {
+ cExtendedList ListValue = new cExtendedList();
+ for (int Idx = 0; Idx < this.dt.Rows.Count; Idx++)
+ ListValue.Add(double.Parse(this.dt.Rows[Idx][comboBoxAxeX.SelectedIndex].ToString()));
+
+ cPanelHisto PanelHisto = new cPanelHisto(ListValue, eGraphType.HISTOGRAM, eOrientation.HORIZONTAL);
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Size = new System.Drawing.Size(splitContainerVertical.Panel2.Width - 23, splitContainerVertical.Panel2.Height);
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.BackColor = Color.White;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Location = new Point(23, 0);
+
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
+ PanelHisto.WindowForPanelHisto.panelForGraphContainer.BorderStyle = BorderStyle.None;
+
+ PanelHisto.WindowForPanelHisto.CurrentChartArea.AxisX.Minimum = chartForPoints.ChartAreas[0].AxisX.Minimum;
+ PanelHisto.WindowForPanelHisto.CurrentChartArea.AxisX.Maximum = chartForPoints.ChartAreas[0].AxisX.Maximum;
+
+ splitContainerVertical.Panel2.Controls.Clear();
+ splitContainerVertical.Panel2.Controls.Add(PanelHisto.WindowForPanelHisto.panelForGraphContainer);
+ }
+
+ private void comboBoxVolume_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ ReDraw();
+ }
+
+ //private void showClassificationTreeToolStripMenuItem_Click(object sender, EventArgs e)
+ //{
+ // if (GlobalInfo.CurrentScreen.CellBasedClassification.J48Model == null) return;
+ // GlobalInfo.CurrentScreen.CellBasedClassification.DisplayTree(GlobalInfo).Show();
+ //}
+
+ //private void applyClassificationModelToolStripMenuItem_Click(object sender, EventArgs e)
+ //{
+ // return;
+
+ // Instances ListInstancesTOClassify = GlobalInfo.CurrentScreen.CellBasedClassification.CreateInstancesWithoutClass(dt);
+
+ // FastVector attVals = new FastVector();
+ // for (int i = 0; i < GlobalInfo.CurrentScreen.CellBasedClassification.NumClasses; i++)
+ // attVals.addElement(i.ToString());
+
+ // ListInstancesTOClassify.insertAttributeAt(new weka.core.Attribute("Class", attVals), ListInstancesTOClassify.numAttributes());
+ // ListInstancesTOClassify.setClassIndex(ListInstancesTOClassify.numAttributes() - 1);
+
+ // List ListIdx = new List();
+ // int Max = int.MinValue;
+ // int Min = int.MaxValue;
+
+ // for (int i = 0; i < ListInstancesTOClassify.numInstances(); i++)
+ // {
+ // Instance InstToProcess = ListInstancesTOClassify.instance(i);
+ // int Value =(int)GlobalInfo.CurrentScreen.CellBasedClassification.J48Model.classifyInstance(InstToProcess);
+ // if (Value > Max) Max = Value;
+ // if (Value < Min) Min = Value;
+
+ // ListIdx.Add(Value);
+ // }
+
+ // byte[][] LUT = GlobalInfo.LUT;
+
+ // for (int j = 0; j < this.chartForPoints.Series[0].Points.Count; j++)
+ // {
+ // int ConvertedValue = (int)(((ListIdx[j] - Min) * (LUT[0].Length - 1)) / (Max - Min));
+ // this.chartForPoints.Series[0].Points[j].MarkerColor = Color.FromArgb(LUT[0][ConvertedValue], LUT[1][ConvertedValue], LUT[2][ConvertedValue]);
+ // }
+ //}
+
+ private void checkBoxIsVolumeConstant_CheckedChanged(object sender, EventArgs e)
+ {
+ comboBoxVolume.Enabled = !checkBoxIsVolumeConstant.Checked;
+ ReDraw();
+ }
+
+ private void chartForPoints_MouseDoubleClick(object sender, MouseEventArgs e)
+ {
+ HitTestResult Res = this.chartForPoints.HitTest(e.X, e.Y, ChartElementType.DataPoint);
+ if (Res.Series == null) return;
+
+ DataPoint PtToTransfer = Res.Series.Points[Res.PointIndex];
+
+ DataGridViewRow DR = (DataGridViewRow)Res.Series.Points[Res.PointIndex].Tag;
+ if (DR.Index == -1) return;
+ dataGridViewForTable.CurrentRow.Selected = false;
+ // dataGridViewForTable.SelectedRows.SelectedRows.Clear();
+ DR.Selected = true;
+
+ dataGridViewForTable.FirstDisplayedScrollingRowIndex = DR.Index;
+
+
+ //
+ //DR.
+
+ /*cWell WellToTransfer = (cWell)(PtToTransfer.Tag);
+ if (WellToTransfer == null) return;
+
+ List ListNewItemForClass = new List();
+ for (int i = 0; i < CompleteScreening.GlobalInfo.GetNumberofDefinedClass(); i++)
+ {
+ ToolStripItem ChangeClassItem = new ToolStripMenuItem("Class " + i);
+ if (i == WellToTransfer.GetClass()) ChangeClassItem.ForeColor = Color.Gray;
+ ChangeClassItem.Click += new System.EventHandler(this.ChangeClass);
+ ListNewItemForClass.Add(ChangeClassItem);
+ }
+ if (Res.Series.Points[Res.PointIndex].Tag.GetType().Name.ToString() != "cWell") return;
+
+ WellToTransfer.BuildAndisplaySimpleContextMenu(ListNewItemForClass.ToArray());
+ */
+ }
+
+ private void dataGridViewForTable_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
+ {
+ if ((e.ColumnIndex == -1) || (e.RowIndex == -1)) return;
+ }
+
+ private void buttonCollapseVertical_Click(object sender, EventArgs e)
+ {
+ splitContainerVertical.Panel2Collapsed = !splitContainerVertical.Panel2Collapsed;
+
+ if ((!splitContainerVertical.Panel2Collapsed) && (splitContainerVertical.Panel2.Controls.Count == 0))
+ {
+ RedrawHistoHorizontal();
+ }
+
+ System.Drawing.Image ImageOriginal = (System.Drawing.Image)(Properties.Resources.Arrow);
+ if (splitContainerVertical.Panel2Collapsed)
+ {
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ }
+ else
+ {
+ ImageOriginal.RotateFlip(RotateFlipType.Rotate90FlipNone);
+ }
+ buttonCollapseVertical.BackgroundImage = ImageOriginal;
+ }
+
+ private void buttonCollapseHorizontal_Click(object sender, EventArgs e)
+ {
+ splitContainerHorizontal.Panel1Collapsed = !splitContainerHorizontal.Panel1Collapsed;
+ System.Drawing.Image ImageOriginal = (System.Drawing.Image)(Properties.Resources.Arrow);
+ if (splitContainerHorizontal.Panel1Collapsed)
+ {
+ // ImageOriginal.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ }
+ else
+ {
+ ImageOriginal.RotateFlip(RotateFlipType.RotateNoneFlipX);
+ }
+ buttonCollapseHorizontal.BackgroundImage = ImageOriginal;
+ }
+
+ private void chartForPoints_Resize(object sender, EventArgs e)
+ {
+ if (splitContainerHorizontal.Panel1.Controls.Count == 0) return;
+ splitContainerHorizontal.Panel1.Controls[0].Size = new System.Drawing.Size(splitContainerHorizontal.Panel1.Width, splitContainerVertical.Panel1.Height);
+ }
+ }
+}
diff --git a/Cell-by-Cell and DB/FormToDisplayDataTable.resx b/Cell-by-Cell and DB/FormToDisplayDataTable.resx
new file mode 100644
index 0000000..556ed3a
--- /dev/null
+++ b/Cell-by-Cell and DB/FormToDisplayDataTable.resx
@@ -0,0 +1,1793 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 17, 17
+
+
+ 82
+
+
+
+
+ AAABAAUAEBAAAAAAIABoBAAAVgAAACAgAAAAACAAqBAAAL4EAAAwMAAAAAAgAKglAABmFQAAQEAAAAAA
+ IAAoQgAADjsAAICAAAAAACAAKAgBADZ9AAAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAA
+ AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wEKChoPAAAAA////wH///8B////Af//
+ /wH///8B////Af///wFDQaM5OjufVTY2mDs+OpoxUkaLRUE+nFs3Npg9Pz/KdystvV9AP6JVPj2iTUxK
+ pUktLokrOTmfM////wH///8BTE7HlU5R0tdAQ86dP0LQh1BMtbFRUs/fQEPOnzo9wXtBRM6tW17Zo0tO
+ u4VNT9HXT1HGoUFE0JkAAAAD////AXFy1VtdXtWHXF/abWNi0Zd/a5+BZ2HBoVVY3JdQUstvWl3bXW1l
+ s5l2cMeTb3DYh05Q1FNkZ9ydTU67H////wH///8B////Af///wH///8BoGMyRZ9jMk98bKlLaVBmA59k
+ NRufYjJRoGMyQf///wH///8B////Af///wH///8B////Af///wH///8B////AZ1iMhWcYTBfm2AwaZxh
+ MWWbYDBpnGEwY55jMhf///8B////Af///wH///8B////ATAwn1c1NqQ/////ATIypHcyM5cfn2Y3GaBm
+ NpOmazq7sXVDm7d6SCEvLmIfOjmpiywtqZcgIXk9////Af///wEvM8ihQEPVc////wE0N9Dba1KEZ5xh
+ MOWbYTD/pWo4/Z9kM/+iZzXrVEipzTU506dnatyDOT3U6RYXOgf///8BOz/OoUpLzLtGRqyHQ0bW7ZVh
+ R/OfYzH5oWY1T695SAmwc0Bdn2Mx/ZxnReNRUKN1TEy/tUBE2uMzM4ED////AUhL1aFmaee1c3bpeWVa
+ vOujZTD/o2Uyqf///wH///8B////AaVoNYl5XInVT1Hg105Q1Y1FRJdb////Af///wFVWN2fZGbkc///
+ /wFzXpzZp2cy/6doM4H///8B////Af///wH///8BZmnmiWFj18teX9DDWVzluf///wH///8Bg4bgL4CD
+ 3yH///8Bo3p9cbp4Sv+4d0qF////Af///wH///8B////AVVYwQWkputLgILsU1NVzQ3///8B////Af//
+ /wH///8B////AbV4Sxu9fVL9vHxSw////wH///8B////AcqMX43VmGptonBBA////wH///8B////Af//
+ /wH///8B////Af///wH///8Bv4BXocCBWP/PkWah2ZtvV7+CWJ3AgVj/voBWs////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AcGFWQvOkGefzJBo+8aIYf/Eh2D/wINcu7p/VRn///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AdKjdhHgpnsvyo9kG////wH///8B////Af//
+ /wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
+ //8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAA////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B2IVLA9iFSwPYhksD////Af//
+ /wH///8BBwgTEQsLHCsAAAAL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkAAAAHAAAACQAAAAUAAAAH////AU0vGg2eZzoNcEoqEXFK
+ KxEWEA4JAAAABQAAAAkyM7tlTUze8yEipIEAAAADAAAABwAAAAkAAAAJAAAABQAAAAMAAAAJAAAABf//
+ /wEAAAAJAAAAA////wH///8B////Af///wEuLW8rS0m3rzw9nps+PaupLy+LSz09qZMaG0MLPz2pqUc4
+ YktOSayrREKipzw7qakuL4RFPj2rpSYnXg0vMbl5MzbW6xISLhE9PaSRR0ausURDrbE8PKNzRUKNY1RS
+ u7UyNJuLFBU3Fz4+rqknKHEb////Af///wH///8B////ATk8x306PcvdREe2pT1B2OkxM7JfPkLX2Scp
+ Zg88QNn3Qj6nmzs90fFNSZqfPUHd/TQ2m0s9Qdr1Hh9LDzU4wbc+Qt//NjijV1RY2qVfYuL5YWXKnUhL
+ vHE6PNT3NjmglUpNxtUuMIdLPUHb+zI0lCn///8B////Af///wH///8BPT+dL3ByzcdpatbnS07e5zg6
+ tl9MUNvfFhY5G0dK3/lWRXxrcG6+yWxrz+VPUuL7NzibSUlM4PUnKGYvQ0bZ9z9CyKlLTtCzHR9UG2Jl
+ 389ER8G9LS+ERVNV5f9tbdfRYmLe8UdJvXFNUOT7Ky5+QQAAAAf///8B////Af///wFQULpDenrc52Zm
+ yslNUN7PQkXBW2dq6ftvbsPBUlTk+2pRfGt6edrvbGe3zU9S4u09P6c9VFfk9UlKt4NTVd3LQUO4MV5h
+ 5/VTU66ldXTQ14OF9P9QUsKBcnXr3Wdnw8NSVN7vPT+pM15h6PtsbdXdTE2yV////wH///8B////Af//
+ /wF2eNZBcnTgYUlMxh9NT8IbXV/MQXh62lNlWa1JomQwQ4lqgGmHdauLaFaXQUNErzdgYun1UFK4QVpc
+ yy////8BXmDPT2xcnGeAa5l9gWuafXxhhU1cWbode37hXU1QzSdCRKsFXF7PT25w1E9QUs8n////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AZ5lMwWgYzJFoGMyTaBjMk2gZTNBVVCrKXR2
+ 4q00NIMH////Af///wGgaToLoGMySaBjMk2gYzJNoWUzP51mKgP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AZ9kMymfYTFZn2ExWZ9i
+ MVmfYzRDoWc5E6RvRgOkcEgDn2Y7FZ9jM0mfYTFZn2ExWZ9iMVmgZTUj////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bomw2A55i
+ MkedYTBjnWEwY51hMGOdYTBhnmIxWZ1iMVudYTBjnWEwY51hMGOdYTBjnmIySaRoOgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BnGY3B5xhMkmaYDBvmmAwb5pgMG+aYDBvmmAwb5pgMG+aYDBvmmAwb5xiMlWgZjYL////Af//
+ /wH///8BAAAAA////wH///8B////Af///wH///8B////Af///wEAAAANAAAALwAAACcAAAAD////Af//
+ /wEAAAAhAAAAMQAAABX///8BnGY6A5xiMyWaYTJXmWAwcZlgMXuZYDF7mWAwc5phMV+bYTMxomY6Bf//
+ /wEAAAAJAAAAJwEBBTsFBQ5BAAABMwAAABkAAAAD////Af///wH///8B////ATAxkjs8PMrnQUHIyQYG
+ DgX///8BAAAAAzc4uKNAQM3nPD20Zf///wH///8Bomk6O6BnNqOkajnlqm49+7B0Qvu4e0jrxYZRscmK
+ Vk+jb0UDAAAACTc1cmVMSsPTQUHT9zo71fszNMntKSugrw4PKi3///8B////Af///wH///8BMTSdQSsv
+ 0f8+QdjhCAgSBf///wEAAAADLTDAtTM32f89QcVxoW5ACZ1kNJuaYDD9mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+cYTH/pmo4/61xP7FBNmZLOjvS9Ssv0f8+Qtrhb3Lmy21x6PUwNNX/NTm7sQAAAAn///8B////Af//
+ /wE0Np5BMjXV/0RH2+EICBEF////AQAAAAMyNcS1Oj7d/0VGxHOfZTOtnGEw/5xhMP+cYTD/nmMx/6tu
+ O/m3eUT5qm06/51iMP+cYTD/nWIw/4VbXvVER9z/OTzQtz0/oQcAAAADPT+dSTs/2/1ESN71ICFTEf//
+ /wH///8B////ATY4oEE5PNj/SEvZ5QAAAS8AAAAtAAAALTU4vL9BReD/dlqB055iMf+eYjD/nmIw/59k
+ MtekajlPqnVEEbR8SxPKilRZqGs5555iMf+eYjD/nmIx/5Z8krk7PZ1DAAAAKRAQI0dPTZiXPD/Z/0NH
+ 3vMzM4EL////Af///wH///8BOTugQUBD3P9QUuL7VFTO4VRTzuFUU87hSkzY9UpM3f+aZEb/oGMx/6Bj
+ Mf+hZDLjo2o6F////wH///8B////Af///wGmazsxoWQy+aBjMf+gYzH/mGAz1VtYmpdhX8rVXl7f+UlM
+ 4P9ARN3/QUXRmf///wH///8B////Af///wE7PaJBSErg/2Vo7P10d+rvdHfq73R36u9naun7YlSz/6Jk
+ MP+iZDH/omQx/6NnNXX///8B////Af///wH///8B////Af///wGjZjSnpGYy/6RnNveKY3L/T0/e/01Q
+ 5v9VWOr/UVTi2URHx30iI1sN////Af///wH///8B////AT0/pEFOUeT/W17k4RkZQAc1NZIDIyNcBUhL
+ 0LV5XIz/pGUx/6RlMf+kZTH/o2s6Lf///wH///8B////Af///wH///8B////AahsOjOtcD1PTkmkW09S
+ 5f9PUuHvUFLVcUFCrCUsLGA7S0mEg0E/eVsAAAAD////Af///wH///8BQEGlQVVY6P9hZObhBwcRBf//
+ /wEAAAADTlDStYhidv+mZjL/pmYy/6ZnM/2lcEEL////Af///wH///8B////Af///wH///8B////Af//
+ /wFKTMVNWFvr/1lb2NsZGjpXFBQoTVlZwr9YW+r/XF7ir////wH///8B////Af///wFERqs/X2Lu/2ls
+ 6eEHBxQF////AQAAAANVV9ezkGdz/6hoMv+oaDL/qGgz96V0RQX///8B////Af///wH///8B////Af//
+ /wH///8B////AURGrwuDhu7PeHvz/2hp7v10c+79ZGbw/1te6fdQUs07////Af///wH///8B////AUxO
+ uyGPkeiXgIPggf///wH///8B////AXF02WWuf2/XuHVH/7h1R/+2dUb7o3ZEBf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AVVYwRGkpeZ9pafvsYuN7rdydOmTU1XNM////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Abl5TIe8ek7/vHpO/7x6Tv+pc0Yb////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bt3lMV718Uf+9fFH/vXxR/7Z5
+ TVH///8B////Af///wH///8B////Af///wHMlGU12qd2O6x4Swv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGtc0cTvX1T8759
+ VP++fVT/u31Su6BtQgP///8B////Af///wH///8BpHVFA71+U8fQj2P/2Zpt9dKWaLeicEEF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wG7fVOVv4BX/7+AV//AgVf/zIxhlbaBVAv///8B////Aat0SAe7flONv4BX/7+AV/+/gFf/vH5Uq///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbJ4TRPChFrfwYNa/8CCWv/HiF//2p5x6d+jdbHTlGirwYRa48CCWv/Agln/wIJZ/7+C
+ WPe2e1Av////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AcGFWSfNj2bdxohh/8GEXf/BhF3/woVd/8KEXf/BhF3/wYRd/8GE
+ Xf/Ag1z5un9VXf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AceNYBHeoneN3KJ369SYcP/LjWb/yItk/8iL
+ ZP/HimP9wIVcv7d9VDn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wG5h1oJ1qd6O+Ot
+ gVvcoHVh0ZVqTbiAVR3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AdiFSwPYhUsD2IVLA9iFSwPhhFED////Af///wH///8B////AQIC
+ BgkMDR87CgoYPQAAABf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bq182B7NvPgm2c0AJqGg7C6hoOwu6e1AH////Af//
+ /wH///8B////ASkrfh9KSNfxOznU8R8flJEBAQML////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAMAAAAZAAACMQAAACkAAAAlAAAALQAAAA8AAAApAAAAIQAAAAMAAAAXIRQKOWJAJR9YOSMhJxkPPSoa
+ DjsiFw4pAAAALwAAABMAAAAjAAAAKTAzjB0+P8t7TE7g4Swt2vkgIWI1AAAAAwAAACEAAAAxAAAAMQAA
+ ADEAAAAxAAAAFQAAAAsAAAAnAQEENQAAACcAAAAJAAAABwAAACsAAAAh////Af///wH///8B////Af//
+ /wH///8B////AQkJFxFOTLGxVFLW605PxNc5OazHSUjF3SwsbSdEQ8HXQ0O8rQAAAAM2N6R1TErL5Uc7
+ eVtNRpOPVlLR6VRUzOM1NaLDS0nL4Tg4mEM/P7azSEfC1SEhUhEAAAAFLS+xoTQ34/8xNKuNAAAABz4+
+ tatUU8rjUVDJ409OyeNRT8zjODmmbzo4e2VcWcjXZGPc7T9AvtUfIWVXICJZGUZFxNtCQ7ejAwEBA///
+ /wH///8B////Af///wH///8B////ATY3mz82Odn/NDfC0VpcxJc7Ptj9QkXY4ScnXhsyNs/1Q0fVxwAA
+ AAMxNLOHPkLj/0U9hXU3Oc/1NTjJ61lVq5NER9XxP0Pf+y4veyUwM8PNQ0fd8SYmXRMMDR4VNTjI5zc7
+ 3P9DRtLZCgsYE0NGzaNna+7/ZWnb92pu2NNobOHLNjmodz0/0O0yNc3tTVC9l1xg4vVCRczTJyhoIzQ3
+ 0vlDRs+5AwICA////wH///8B////Af///wH///8B////AT0+qSdnaur3UlTO3zc3jZM3OsnvS07c2SYm
+ XRs6PdP1SUzXxwAAAAM2OLaHR0ro/1FEh29ZW9rjZGbd8UI9jqs4ObTbSUzi+ScnYB02OcfNS07h8SUl
+ WRMzNZBhPkDe/zs+xedLTuj9LS6BTT5AqRVjZuTVUFTk+y4wjIEAAAEPNTedSz1A3v9TUsfXV1OopVZU
+ scFQTqqxKCtsLzs/1/lKTdS9BgYMA////wH///8B////Af///wH///8B////AQAAAQc2N39lc3XDvXt9
+ 3+VgYuP/UVTf2yYmXRlFSNj1UlXV0wAAABc4OrKTT1Lq/1hGgW9OOVFpbGmsw3x81eFrbeT7UFPl+yws
+ cR89P8rNUlXk8RsbQRs/Qb23RUjd+z0/q1dMT+b9REe7oQAAABMlJ2k5bG/k6VJW4fknKXFrNTecU01Q
+ 5v9nat3laWzXv19h2+1MT+L3MjWGMUZJ3flTV9XRAAECIQAAABH///8B////Af///wH///8B////ATc5
+ ig9qaNHfVVXF0VFPi5FPUdv3UVPczSsraRdMT931a27r+URElJtYWMnXUFPo/2dPe2doYr7FY2HP6VVK
+ d6VWVcrpUVTj8ystaw9DRs7NWVzm8SQlXDtKTNv3TE7Xxzg5iAdIS9fXWFvg6zg4f3dcWauvXly9z4OE
+ 9f9VWN/zMjOFSWJk6e9YWtjjTkyMlVhY2/FIS9XJMDF6G01Q4PljZu37XFqzuUJCl2kAAAAD////Af//
+ /wH///8B////Af///wFtb9V3m53s7YiJ8fddX+fpR0rKWTg5jQ9madzjXmDWy5CR6+N1d+73Uk/Gu5ph
+ PENxXJJ5nJzl6Y2O7/lnaejzSUvMiQcHDgNKTNLNYWPo8URFrHNzdefvSkzIb////wFNT8qDd3rq70lL
+ vceDhObzhojn84eI5/OAg+rxRke0R2Nmz0+dn+zjgoPw91JU389GSL8vPT6eEWhr3+lcXtbZj5Hv9VVX
+ 1aX///8B////Af///wH///8B////Af///wH///8BOjmpDz9Arx0/QqgN////Af///wE5PZsLOj2cBzk8
+ qAtAQq0bmmM6G6FjMUWhZDFFmGA6SYVZVVePXkhNoGs8DwAAAANPUtXNaGrq7ywtbxc3O5gLQEKjA///
+ /wE9QaAFNzuZC45eSyeXXzlJl185SZdfOUmYYTtHoGY5M6l2QAc5O6YLP0GuGUFCowX///8B////ATk8
+ mgs8P50HPT6tF0JDpgn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BnmM0CaBjMkWgZDJLoGQyS6BkMkugZDJLoGc2MX9iQwNlaNrJeXzl7TQ0
+ gw3///8B////Af///wH///8Bom0/B6BkM0GgZDJLoGQyS6BkMkugZDJLoWYzPZxkKgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaBlMzGfYjFTn2IxU59iMVOfYjFToGMyUaNn
+ OCVAPZIPNjeXEf///wH///8B////Af///wGpckMFoGY2NZ9iMVOfYjFTn2IxU59iMVOfYjFToWY1Jf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaBlNg2fYjNRn2ExW59h
+ MVufYTFbn2ExW59iMlmfZTY5omg7E6VtRgWecUcDpnBIBZ9nPhWfYzVBn2EyWZ9hMVufYTFbn2ExW59h
+ MVufYzNPoms8Cf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGeZDQjnWExX51hMGGdYTBhnWEwYZ1hMGGdYTBhnWIwX55jMlWeYzJPnmMyVZ1iMF+dYTBhnWEwYZ1h
+ MGGdYTBhnWEwYZ1hMF+gZTYl////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BnWM0L5xhMGWcYTBpnGEwaZxhMGmcYTBpnGEwaZxhMGmcYTBpnGEwaZxh
+ MGmcYTBpnGEwaZxhMGmcYTBpnGEwZ55kMzunazID////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wEAAAADAAAAA////wH///8B////AZ1jNCmaYDFlmmAwcZpgMHGaYDBxmmAwcZpf
+ MHGaYDBxmmAwcZpgMHGaYDBxml8wcZpgMHGaYDFtnWQ1O6JlOAX///8B////Af///wH///8BAAAAAwAA
+ AAMAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAMAAAAXAAAAHwAA
+ AB0AAAAL////Af///wH///8B////AQAAABEAAAAfAAAAHwAAABMAAAAD////Af///wGfZTgRnGEzRZpg
+ MW2ZYDB3mWAweZlgMHmZYDB5mWAweZlgMHmZYDB3mmAwc5thM1WeZDcdrV4xA////wH///8BAAAABQAA
+ ABEAAAAhAAAALQAAADEAAAArAAAAIQAAAA8AAAAD////Af///wH///8B////Af///wH///8B////AQEB
+ AwktLGpnMjBthTMxcX8fH1Ar////Af///wH///8BAAAAAygnX0cyMW6DMjBtgyopYU8AAAAF////Af//
+ /wH///8B////AaJmPBGiaztXqG4+ma5zQrW1eEa/unxKubt+TKO1eUhro20+IZtjPQP///8B////Af//
+ /wEAAAAJAAAAKxQULFlAPXiNTEmcpUhGpK09O5ilKChshQoKGlEAAAAlAAAAB////wH///8B////Af//
+ /wH///8B////AQUFDQk1N8XZOTna/0RF5v8yM6JZ////Af///wH///8BAAAAAzEzs5E4Odr/Pz/g/z5A
+ x6UAAAAF////Af///wGjbD8NoWg5d6BmNtehZjb9oWY2/6FmNf+iZzb/pmo5/61xP/+9fkr/yIlU6cyN
+ V5W2fU0h////AQAAAAUDAwgtTEqdo1lW2/U9Pdr/LS/U/ygr0v8pLNP/LjDV/zEzx+0lJ3yNAQECIQAA
+ AAP///8B////Af///wH///8B////AQUFDQkvMsHZKi7Q/z9D5f8zNaJZ////Af///wH///8BAAAAAy4x
+ sZEqLtD/Njrc/z5ByKUAAAAF////AaFpOkOdYzPdmmAw/5pgMP+aYDD/ml8v/5pfL/+aYDD/ml8v/5pg
+ MP+aYDD/nWMy/6drOf+1d0TvsndGYwcEAxM8PKCbOzzZ/ykt0P8sMNP/SEzo/3J27/+Hi/L/U1fk/ysv
+ 0f80ONb9Jyl9cQAAAAn///8B////Af///wH///8B////AQUFDQkyNcPZLjLT/0RH5/81N6JZ////Af//
+ /wH///8BAAAAAzE0s5EuMtP/Oz7f/0FEyaUFBAIFomk5XZxiMfmbYC//m2Av/5tgMP+bYC//m2Ew/5xh
+ MP+cYjH/nGIx/5thMP+bYC//m2Av/5tgMP+cYTD/o2c2/YhbQpk4O9D1LjLT/zA01P82Ocm5Pj+5RTs8
+ sC1JS8JReX3k0UNH5P81Odn/REfS1QgIFBP///8B////Af///wH///8B////AQUFDQk2OcXZMzbV/0lM
+ 6v83OKNZ////Af///wH///8BAAAAAzQ2tZEzNtX/QEPh/0VHyqWcZjdJnmMx+ZxhMP+cYTD/nGEw/5xh
+ MP+cYTD/oGUz/65xPfm+f0rxxYVP+bd5RP+jZzX/nGEw/5xhMP+cYTD/nWEw/51jNP9gVLP/S0/i/zxA
+ 1N09Pp4P////AQAAAAMAAAAJJSZqRTo91/01ONf/TFDk9SYnZB3///8B////Af///wH///8B////AQUF
+ DQk5PMfZODvY/01Q6/8wMoxnAAAAGwAAABsAAAAbAAAAHTM2q5k4O9j/REjj/1FOvrefZDPlnmIw/55i
+ MP+eYjD/nmIw/55iMf+gZjXNp248V6p1Qx2pdUcRtn1MIc+PWWO7fEjdomY0/55iMP+eYjD/nmIw/55i
+ MP+hbk39iovfv0tNx3UAAAANAAAAGwAAACsAAAFBNDNzgz9B2v04PNn/Sk3j9TMzghX///8B////Af//
+ /wH///8B////AQUFDQk8QMjZPEDa/1FV7f83OIijKilWeSopVnkqKVZ5KilWeTk7pb88QNr/SEzm/4Fg
+ gfufYzD/n2Mw/59jMP+fYzD/n2Mx/6JnNpmhckMJ////Af///wH///8B////Af///wGqckIVqGs6x6Bj
+ Mf+fYzD/n2Mw/59jMP+fYzH/lF8zaQAAAC8CAgdJKytQdWJem6VwbMjTYGDj+zxA2v89Qdv/REfVyTEx
+ eAP///8B////Af///wH///8B////AQUFDQlAQ8rZQUTd/0xP5v9ZWuf/Wlrn/1pa5/9aWuf/Wlrn/1ZX
+ 5f9BRN3/UVHZ/51lQP+gYzH/oGQw/6BkMf+gZDH/omc1wZ9wQwX///8B////Af///wH///8B////Af//
+ /wH///8BpWs8H6JlM/GgZDH/oGQx/6BkMf+gZDH/lF8222dipa1zcNnramjp/01P4/9BRd3/QUXd/0JG
+ 3v9BRdn3QUS/R////wH///8B////Af///wH///8B////AQUFDQlERszZRknf/11g7P96ffL/en3y/3p9
+ 8v96ffL/en3y/3l88v9PUuT/aFaq/6JkMP+hZDD/oWQw/6FkMf+iZDH/o2s6R////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaNnNpGhZDH/omQx/6NlMv+maDX/nWhN/1hV2v9GSeD/SEvh/01Q
+ 5v9UV+3/VFfr/UpN2MtDRb1FBgYTA////wH///8B////Af///wH///8B////AQUFDQlHSs/ZS07i/2Fk
+ 8/9YWsmdY2bVa2Nm1mtjZtZrY2XUbVRXzr9LTuL/gl53/6NkMP+jZDD/o2Qw/6NkMP+kZjPlonJACf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRsOzmoaTX7qm0526RpOZlpWqfdTk/f/0pN
+ 4v9QU+j/Wl3r81td5MFPUtJ9MjOISwYGDy8AAAApAAAAFwAAAAP///8B////Af///wH///8B////AQUF
+ DQlKTdDZT1Ll/2Rn9P9AQqlZ////Af///wH///8BAAAAA0RHvpFPUuX/k2NZ/6RlMf+kZTH/pGUx/6Rl
+ Mf+laDS3////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNwQgWpcUEvpXJFBRob
+ QxNOUNrzUFPl/1RX6P1ER72LOjuYGwsLGAUAAAAPNzd4Z1tYoKdWVJafRkWKYQAAAAP///8B////Af//
+ /wH///8B////AQUFDQlOUNLZVFfn/2ls9f9CQ6pZ////Af///wH///8BAAAAA0dJv5FUV+b/n2ZC/6Zm
+ Mv+lZjH/pmYy/6ZmMv+maTaR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ASwtbg9RVN7zVVjp/2Nm6vcTEzBZAAAANQAAADMCAwdFUVLI01ha6v9fYvD/V1rWl///
+ /wH///8B////Af///wH///8B////AQUFDQlRU9TZWFvp/21w9/9ERatZ////Af///wH///8BAAAAA0pM
+ wJFbXOT/o2c8/6ZnMv+mZzH/pmcy/6ZnMf+naTaB////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////ATAxcwNdX9+7Zmny/11g7/9aW9nrXVyzu2torrOAfNHbZ2jt/1da
+ 6f9aXev/Sky+Rf///wH///8B////Af///wH///8B////AQgIEwdWWNfXZGfx/3V4+f9ISbJV////Af//
+ /wH///8BAAAAA09Rx41kZef/pWk8/6hoMv+oaDL/qGgy/6hoMv+oazd3////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFPUMItnZ/x65OW+f9oa/L/YGPv/2Nl
+ 8P9hY+//YWTw/15h7f9TVdOfODiMA////wH///8B////Af///wH///8B////Af///wFoa9W3m57q35CS
+ 6t9OUMBB////Af///wH///8B////AVVXzHGVluffsnVL/bZzRP+2c0T/tnNE/7ZzRP+yc0R7////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BVVjBJ5uc
+ 4qWys+/pqqz1+ZeZ9fuDhvD1bG7oyVNWz2tDRKQH////Af///wH///8B////Af///wH///8B////Af//
+ /wEwOYsDKTqAAy46ggP///8B////Af///wH///8B////Af///wE4PHoFuHhM47t5Tf+7eU3/u3lN/7t5
+ Tf+1eEuL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEwMZkHPj+vGUFDrR09P6cNNzeIA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BuXlMvbx6
+ Tv+8ek7/vHpO/7x6Tv+4eUyv////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bt3lNk718Uf+9fFH/vXxR/718Uf+6e0/fp3FDB////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Aax2Rwmxfk4T////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8Bs3dLTb59Uv+9fVL/vX1S/719Uv+9fFL9sXdLP////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AbZ5TV/cn3Dz5Kl5yeStfI/WonJRu4hZGf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqXBEDbx8UuW+flT/vn5U/75+VP++flT/un1Ru6Bt
+ QgX///8B////Af///wH///8B////Af///wH///8BpHVFBbt8Uce/f1X/xYRZ/8+MYP/bmm3/zpNl46Jw
+ Qgn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Abh7UIO/gFf/v4BX/7+A
+ V/+/gFf/wIFY/8OFWpWicUIH////Af///wH///8B////Af///wGkcEMDuHxQh7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/un1Sm////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Aat0
+ SRO9gFbhwIFY/8CBWP/AgVj/wIFY/82MYv/eoHLH1qR0UbJ/UBmndEYLqnNGE7h9UUe8f1W7wIFY/8CB
+ WP/AgVj/wIFY/8CBWP+/gVf7sHdKLf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wG2e1FFxYdd+cKEW//Ag1r/wINa/8GDWv/Ki2H/3Z5y/+SnevffoHTt0pJn88WG
+ Xf/Bg1r/wINa/8CDWv/Ag1r/wINa/8CDWv+4fVKT////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BwYVZVc2PZvfFh2D/wYRc/8GEXP/BhFz/wYRc/8KF
+ Xf/DhV3/wYRd/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/7uAV72pc0QJ////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AcSIXUHbnHLb15hv/8iK
+ Yv/Dhl//woVe/8GFXv/ChV7/wYVe/8GFXv/ChV7/woVe/8KFXv/BhV39un9Wn6t1SQv///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGueUwN2qV4c+WugtXkq4D92p51/9GTa//Mj2j/y45n/8uOZ//Nj2j/yItk+cCFXLuzfFBD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaJtQAXElGcv2qx/Y+OvgoXhpnuT255zjdWXbX3DiV9VsXtQHaBu
+ RAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAAAAP//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//AAAAAAAA//8AAAAAAAD//ygA
+ AABAAAAAgAAAAAEAIAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAD///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcAAAALAAAACQAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bx3Q+A9iFSwPYhUsD2IVLA9iF
+ SwPYhUsD2IZLA////wH///8B////Af///wH///8B////AQAAAAUJCRgzDxAmVQkJFkcAAAAjAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Aa9q
+ OweydkAJtHhACbJ2QAmuckAJrnJACbV2QwnjmYYD////Af///wH///8B////Af///wEHCBMHNzW7uUlE
+ 3PMsKsnpICGIkwICBRv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAAAwAAAAsAAAATAAAADwAAAAkAAAAPAAAADwAAAAcAAAALAAAAEQAA
+ AAv///8BAAAAAxMLBQ9UNB0dgFQwFbJxQQ90Sy0XTjQdH1E0Hh9wSi0VFxMQDwAAABEAAAAJAAAABwAA
+ ABEAAAANHB5KBzAyxMttbuXvU1Tr/yQl2PskJHNdAAAABf///wEAAAALAAAAEQAAABEAAAARAAAAEQAA
+ ABEAAAAPAAAABf///wEAAAAHAAAAEQAAABMAAAANAAAABf///wEAAAADAAAADwAAAA8AAAAF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAR0PECxTIiFRbxUWNV0DAwg/EhIvXRQU
+ NFkKChoXFBQyPxESL2EQEi07AAAAAwYGDQ0WFTBVIRsxaUUuLzVgPSkjJRkZTyolSXcpIj9xIBURTRIS
+ LFUSEzFfEhMtKQ0OISMSEzBfFBQzUwcHEQ1ERqMPNjiWIS8yy90wM+b/LjCztwEBAg8AAAAFEhIvOxES
+ LmEQEi1jEBItYxASLWMQEi1jEhMxXQwNIBsAAAATAwQLPRYXPWUkI1NzFBQyWQEBAikAAAAHBwcRDxMU
+ MlMSEzFdDg4iH////wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAk7Oo+DZF/f91hW
+ 6v9dXt/7NTiq0UxL2vtOTdT3MjJ7Hz09u7NWU+P9QULAsQAAAAMpK2kbQ0PK7VRT4/1FPpF3QDRWW2Fc
+ 0eVaV+f/X1/n/T9At91DQ8nxU1Hg/T4+qmE3OKVpT03b/UxM0uklJV0X////AQkKGBUwMrrPLzLc/z1B
+ 2vUaG0MvAAAABT0+uatZVt/9Xlzg/VtY3/1YVt/9WFbf/VRS4P0yNJFVLSxpX2dizd1kYOn/cW/u/0lL
+ 2PktL56zDAweJScqbyFJSNP1U1Lh/TIzkU3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEcHkYROjzL6TE01/82OcTVXF7Op1RY3/c1Odz/P0LR2xERJg0xM7i1Oz/i/zw/xbUAAAADKixtGy4y
+ xO9DR+j/QzyNez89s7cyNtf/MjXI8VdVvaVhY9jlMjbY/0JF4PsyM4UxNDeoazA01/9FSNvrJiddFwAA
+ AAMmJ2dFNDfP+TU52/9GSuv/MDGOewAAAAc6PcGdYGTs/2xw6/90d+P7cnbl+XF15/dZXeL1MTOMX0JD
+ yd8zNtj/NjrL41lczLdsb+n7Sk7n/zY4pHUoKm4jLjLL+UZK5/8xM5JP////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BNjd/DTs+0PFMUO7/LjCKnwUFDkMwM6axPkLi/0VHz80GBg8JNTi7tUNH
+ 5v8/Qse1AAAAAyosbRs0N8fvSk7s/0lAjn0+Pry/SU3q/z49stMuIB9nNi9jiTY62f9KTeH5KytuJzc6
+ qWs3O9v/Sk3d6yYnXhcAAAALNzmmmzk93P86Pc39RUnn/0BCxMkICBIVQEKpHV1g3tlfY+//Oz7I7SQm
+ X2UqLGcjP0CXGTI1kFc3Otb9PEDY/R0fVW8KCyJNMDKRqTM1mbMrLXxrJSdnJTQ3zvlNUOv/MzWWUf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFOT8iNmpzy+3h56P1cXdTnSEnG50NG
+ 5P9JS9PPBgYRCTk8vrVJTen/Q0bGtwAAAAUpK2sbOTvK71BT7/9OQ45/W02QaYqM6vWGiO3/Y2PZ8VJQ
+ veE8P9v/UFPj9yoqZyU5O6prPkHe/09S3+smJ1wZERIsIT9ByeVBROH/PT+xpz9C2vtSVeb5JidmRQAA
+ AAM/QrMxaWzo6V1h7v89QMThFRY3RwAAAA04OqlvPUDc/2pq7f9+fOXzfnvl83585fNtauDzUlLGwykr
+ byU5PdH5VVnw/zU2mFkAAAAD////Af///wH///8B////Af///wH///8B////Af///wEAAAAFCAgSJygq
+ bXlZW7Sren3V1YSF5vdSVej/TVDUzQYGEAk8Pr+1Wl7u/0dKw8cAAAAdGhtEMT5B0PNWWfD/UkWNg2c9
+ G0M7LEZ/UUyUtXV0xtGEhd/zW17l/1VY5vkvL3kpPD2sa0RH4f9UV+DrISFPHTEygmNER939R0rc+Ts8
+ nCtBRM/XWFvx/zk8oY8AAAAXAAAAIS8xf11zd+r5XmLu/zw/tssLCxo3ODulY0RH4P9gZOv9VFbAtVZZ
+ xqtSVczfSk3l/0ZJz7stL3cjP0LU+WVo9/8yNZGFAAAAJQAAABkAAAAD////Af///wH///8B////Af//
+ /wH///8BABcXA1dWt599edztPT6gsx4eQWdHSLPJT1Lq/01Q0sMFBQ0FQELBtWFk8f9iZeD1KSpqgzc3
+ cYlLTd39Vlnu/1xLi3tiUo2De3bR61dUut06LDyJSEF7s0pN5P9UV+T1MTR8FT1ArGtKTuX/WVzh6xgX
+ OydERry7S07m/0hLzsE6On8FQkTBiVVY7v9RVNPdICBLU0VCgpNFQoGVT06ry4aI9P9gY+7/P0GyuS4v
+ ejdUV+T1Y2b0/zU2ip8nJ1B1WVjR5UpN5P9CRb57Li93IURH1/lrb/v/TE7H31FOjJ0+PYZ1AAAAB///
+ /wH///8B////Af///wH///8B////Af///wFGSMFplZf0/YaI7/+Jhu35e3ry/09S5/9HScZ/AgIFA0dJ
+ x7F4e/X/YmTf+5CQ8v2RjvD9WVzs/01O1vF+V15Td1RpWXl75fWXmfP/g4Hr+4uI8v1TVur/SkzSxSgr
+ WAVAQq1rUVTo/15h4usjJVk3XF7c82hr7/9ERrxv////AT9BpTdcX+b9dnnx/Tw+oq17e/D/kpL2/5OS
+ 9f+Rkvb/lZj3/2dq5/cyM3whWVzPg6ut9/2Ehe/9h4Xu+15f7P9IS9TXQEKnFTY4ix1XWt73bnHw/3d5
+ 6/+Ojvb/WFrV0xsdQQv///8B////Af///wH///8B////Af///wH///8BQECgA1NWxFWHid+xgYPixWNm
+ 4LVKTMhvQkOqB////wFNUMJraWzWo0hKumFoatGFhIbhw1da2K1tVYBXpGQwP6RlLz92V3RngHrEt4yK
+ 1tFwbdLNV1K9n0RFqh3///8BQkOva1da7P9jZuTrOjyWS2Bj1KNeYdGfQkOoHf///wE7O5EDVVjIlWVo
+ 1qFHSLOLbWjBtXNtwbdzbcG3c23Bt3Rvw7VjYMKnZFKCEVdOkAVWV8hhi43js21w4rtPUtOBQUSuGf//
+ /wFCRKsPWl3OnV1gz51VV8B5foDiv1FS0ZFARaMH////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BOjOVAz09lAU6OpID////Af///wH///8B////Af///wH///8B////ATo9lAU/QpQDoGU0H6Fj
+ MUWhZDFFoWQxRaNkL0WhYzFFoWMxRaNmMjumcUMJ////AURGsWtdYO7/aGrm6ycnYRf///8B////Af//
+ /wH///8B////Af///wH///8BpWc3GaNlL0OjZC5Fo2QuRaNkLkWkZS5FpGUwQ6JnNTmncz8J////ATY6
+ hQM9PpAD////Af///wH///8B////Af///wH///8B////ATo8lAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZ1jNA2gZDJFoWQyS6FkMkuhZDJLoWQyS6FkMkugZDJJoWo6I////wFLTb1lio32/3d6
+ 6OkyMn4T////Af///wH///8B////Af///wH///8BpHQ9BaBkNTmhZDJLoWQyS6FkMkuhZDJLoWQyS6Fk
+ MkuiZzQ7nGQpBf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGobywDoWQ0NZ9jMVGfYzFRn2MxUZ9jMVGfYzFRn2MxUZ9l
+ NEelbDwTSEqzJ1VWw2tQUr5dQECiA////wH///8B////Af///wH///8BsH1OA59mOSWfYzJPn2MxUZ9j
+ MVGfYzFRn2MxUZ9jMVGfYzFPpGg2Jf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNrMxefYjJRoGMyVaBj
+ MlWgYzJVoGMyVaBjMlWgYzJVoGQ0SaJtPxethGUD////Af///wH///8B////Af///wH///8Bn3VUA6Jp
+ OSOfZDNRoGMyVaBjMlWgYzJVoGMyVaBjMlWgYzJVn2IzTaRwOA3///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGnZjQDnmM2NZ5gMVufYDFbn2AxW59gMVufYDFbn2AxW59hMVufYzNVn2Y3NaRpPBWlbUcHonJFBaJx
+ TAWlb0YHn2hAF59lODufYTJZn2AxW59gMVufYDFbn2AxW59gMVufYDFbnmExW6BnNy////8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaJsNQ2eYjJNnWEwYZ1hMGGdYTBhnWEwYZ1hMGGdYTBhnWEwYZ1h
+ MGGeYjFbn2MyUZ9lM0meYzNLn2MyUZ1iMV2dYTBhnWEwYZ1hMGGdYTBhnWEwYZ1hMGGdYTBhnWEwYZ5j
+ M02jaDoN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BoGU6F55hMlWcYTBlnWEwZZ1h
+ MGWdYTBlnWEwZZ1hMGWdYTBlnWEwZZ1hMGWdYTBnnWEwZ51hMGWdYTBlnWEwZZ1hMGWdYTBlnWEwZZ1h
+ MGWdYTBlnWEwZZ1hMV2gZjcb////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGcZjcZnGEyWZpgMGubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5xhMmGfZjYn////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAMAAAADAAAAA////wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAMAAAAD////Af///wH///8B////AaFmNxOcYjJNmWAvb5pgMHGaYDBzmmAwc5pgMHOaYDBzmmAwc5pg
+ MHOaYDBzmmAwc5pgMHOaYDBzmmAwc5pgMHOaYDBzmmAwcZxhMmGeZjgjqFU2A////wH///8B////Af//
+ /wH///8BAAAAAwAAAAMAAAAFAAAAAwAAAAMAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAsAAAAVAAAAFwAAABUAAAAPAAAAA////wH///8B////Af//
+ /wH///8BAAAACQAAABUAAAAXAAAAFQAAAA8AAAAD////Af///wH///8BnWY6B51jNi2bYTJdmmAxc5lg
+ MHeZYDB3mWAwd5lgMHeZYDB3mWAwd5lgMHeZYDB3mWAwd5lgMHeZYDB1m2AyaZxiNUOhZjoR////Af//
+ /wH///8B////AQAAAAMAAAAJAAAAEwAAAB0AAAAjAAAAJwAAACUAAAAfAAAAFQAAAAsAAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAUAAAAhAAAAQwAAAEsAAABHAAAALQAA
+ AAn///8B////Af///wH///8BAAAAAwAAAB8AAABDAAAASwAAAEkAAAAzAAAAC////wH///8B////Af//
+ /wH///8Bn2k7CZ5iNyebYzRLmmEyY5hfMW+YXzJ5mWAxgZlhMoOYXzF9mF8xc5lgMWuaYTNXnWU1N5xl
+ OROndDMD////Af///wH///8B////AQAAAAcAAAAZAAAANQAAAEcAAAJPBAQLWQkKGmEFBg5bAQEDUQAA
+ AEkAAAA3AAAAHQAAAAn///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFMzSLY1FO
+ wM1VUcDPVVHBzUFAqZcEBAsJ////Af///wH///8B////AQAAAAUuLoJVUk/AzVVRwM9VUcDPREOsowMD
+ BQ3///8B////Af///wH///8B////Af///wGjbj8np24+c6xyQLGvc0LjtHdG87p8Sfm/gU35xYZS98mL
+ VuvQkFvH0pNeh8CGVEGhbkAH////Af///wH///8B////AQAAAAcAAAAjBQUOSzw6do1jXbbDYl3R6VtX
+ 2vNTUdz3TErY9UZFzus8PLLJKClxjwcHEU8AAAAnAAAACf///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABTEzoX0oK9L/KizS/zY53/87PcfDCAgSCf///wH///8B////Af///wEAAAAFLjCYayks
+ 0f8qLNL/NDfd/zw+zdUKCg4N////Af///wH///8BpXFFA6JrPTehaDmzn2U0855kM/+eYzP/nWMy/51j
+ Mv+eYzL/nmQz/6BmNf+jaDf/qm48/7l7SP/KilT7zo9Yz8CEUmejb0UH////AQAAAAMAAAAbFhc2WWBc
+ ws9aV+T9NDbX/ycq0P8lKdD/JSjQ/yQoz/8lKM//JyvR/y4x1P0xM7fbGRpJZQAAAB0AAAAD////Af//
+ /wH///8B////Af///wH///8B////AQAAAAUyNaJ9KS3Q/ykt0P87P+L/PUDIwwgIEgn///8B////Af//
+ /wH///8BAAAABS8ymGsqLtD/KS3Q/zk94P8/Q8/VCgoODf///wH///8BpG1AD6BoOJOcYjH5mmAv/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+bYTD/n2Qz/6hsOv+4eUb/un1Kvalz
+ RCcAAAAJEBApP05Nxts4Otn/KS3P/ykt0P8vM9b/Sk7p/3J28v+Dh/L/aGvr/zU52v8pLdD/LjLV/zQ4
+ wuUSEzJDAAAAC////wH///8B////Af///wH///8B////Af///wEAAAAFNDaifS0x0v8tMdL/P0Pk/0BD
+ ycMICBIJ////Af///wH///8B////AQAAAAUxM5prLTHS/yww0v89QeL/QkXP1QoKDg3///8Bo29AH55l
+ NcubYTD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/nGIx/6RoN/+scD7lhlgzSTg5nps2Odf/LTHR/y0x0f8uMtP/Oz7T5UlM0aVSVc+NY2XUo4yP
+ 5NuQlPf/Oj7d/y4y0/9BReX/NDanoQAAARP///8B////Af///wH///8B////Af///wH///8BAAAABTU3
+ o30wNNT/MDPU/0NG5v9DRcrDCAgSCf///wH///8B////Af///wEAAAAFMTObazE01P8wM9T/QUTk/0RH
+ 0NUKCg8No24/H6BlNNWcYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/nGEw/55jMf+hZjX/o2c2/6Fm
+ NP+eYzH/nGEw/5thMP+bYTD/m2Ew/5thMP+cYTD/nmMx/6FnNutJQ7btMDTU/zA01P80N9f/ODvFwT9C
+ pxn///8B////Af///wE4OJMPUFPLtVBU7f8yNtX/P0Pi/0lM1uETFDId////Af///wH///8B////Af//
+ /wH///8B////AQAAAAU3OaR9NDfW/zQ31v9HSuj/RUfLwwcHEQv///8B////Af///wH///8BAAAABTI0
+ m2s1ONb/NDfW/0VI5f9HSdHVVzsnF6BnNcOdYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nWIw/6Jn
+ NP+vcj73v4BK78qJUu/OjVX5woJM/61wPP+gZDL/nWIw/5xhMP+cYTD/nGEw/51iMP+dYjD/iV5e/11g
+ 4/9RVOX/PkLZ9T0+pSn///8B////AQAAAAMAAAAHAAAAEx8fVEs4O9L7NDfW/zs/3f9PU+T1KittJ///
+ /wH///8B////Af///wH///8B////Af///wEAAAAFODqlfTg72P83Otf/SUzp/0ZIyMUDAwYZAAAAEwAA
+ ABEAAAARAAAAEQAAABUvMpFzODvX/zg71/9IS+f/SUzS1ZliNo+eYjH/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nmIx/aJoN8+obz5hq3VDK6l0RResd0gXt35NL86PWXXKiVPbrnA9/6BkMv+dYjD/nWIw/51i
+ MP+dYjD/nWIw/55iMf+chJz1jJDo701QzsEcHDUHAAAACwAAABUAAAAfAAAALwAAAEEmJmB9QELZ/Tc7
+ 1/89QN3/TVDj8zMzgyH///8B////Af///wH///8B////Af///wH///8BAAAABTg7pX06Ptr/Oj7Z/0xQ
+ 6v9ER7/PAAACSQAAAEcAAABHAAAARwAAAEcAAABJKCp3jTs/2f86Ptn/Sk/o/19Xuu2fZDL3n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+fYzH/oGQy9aNrO22keEYH////Af///wH///8B////Af///wH///8BpXBDEbF1
+ Q5+laTb/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/oGU042RJWR0WFTMbAAAAJwAAADkAAABHBgYRWSMi
+ R3VdWpepb2zf8T9C3P86Ptn/QETf/0VI1tszNH8L////Af///wH///8B////Af///wH///8B////AQAA
+ AAU6PKZ9PkLb/z5C2/9PU+v/YGDZ72JetcFiXrXBYl61wWJetcFiXrXBYl61wV9dwNdBRdz/PkLb/05S
+ 6v+JZXr/oGMw/6BjMf+gYzH/oGMx/6BjMf+gYzH/oWQy+6NqOlv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGncUIHp2s6oaFkMv+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+EVi99AAABRRER
+ JmFEQ3aRdG+3xX562Ot6dun7X17o/0FF3f89Qdv/PUHb/0FF3/9BRMOH////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAFOz2mfUFF3v9BRd3/R0vj/0lL4f9JTOH/SUzh/0lM4f9JTOH/SUzh/0lM
+ 4f9JTOH/Q0fe/0FF3f9ZVdL/nmY9/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6NpOJeZgEwD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaVtPxmiZjTloGQx/6BkMf+gZDH/oGQx/6Bk
+ Mf+gZDH/kl873XBrsb2CfuLzcW7s/1FT5f9DR9//QUXd/0FF3f9CRt7/Q0ff/0JG3v9BRM3NQkSoE///
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABT0/p31GSeD/Rkjf/1FU6P9kZ+7/ZGju/2Ro
+ 7v9kaO7/ZGju/2Ro7v9kaO7/ZWju/1te6v9GSeD/blmi/6FkMP+hZDH/oWQx/6FkMf+hZDH/oWQx/6Jm
+ M/OkbT4l////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpGk5f6Jk
+ Mf+hZDH/omQx/6JkMf+kZjL/pmc0/6VrPv9jXdb/R0rg/0ZJ3/9GSeD/SEvi/0xP5v9SVev/VFju/01P
+ 4fdFSMqnQEGqGf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAU+QKh9SUzi/0lM
+ 4f9dYPH/goTs94WH5eGGiOffhojn34aI59+GiOffhYjm34GE5O1dYOb/SUzi/4phaf+iZDD/omQx/6Jk
+ Mf+iZDH/omQx/6JkMf+kaDW7onRBA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaNtPiekZjP3pGYy/6dpNP+qazj9oGg/44Nmkv1cVMP/SUzf/0lM4f9NUOb/Wl3x/2Jl
+ 9v9dYOz9VFbd1UdJwpU0NYtBBgYQEQAAAA8AAAAH////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAFP0GpfUxP5P9MT+P/X2Ly/1RW0MMbGkINNTWQBTU1kgU1NZIFNTWSBSYmYgc7PaFtTE/j/01Q
+ 4/+dZUP/pGUx/6RlMf+kZTH/pGUx/6RlMf+kZTH/pGo4cf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqGw5u61wPMGscT9zkmE5L0JCpolQUub/TE/j/01Q
+ 5P9QU+f/VVjk7VFU16lISsBhQkOpIxERKgsAAAAvAAAASQAAAEcAAAA/AAAAIQAAAAX///8B////Af//
+ /wH///8B////Af///wH///8BAAAABUBCqn1QU+X/T1Ll/2Jl9P9WWdHDBwcSCf///wH///8B////Af//
+ /wEAAAAFOz2ga1BT5f9YVdX/pGc1/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6NtO0X///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNwQg2jdkgF////AQAA
+ AAdISsOxUFPm/1FU5v9ZXO7/RknCvzEzgCcLCxsFAAAABQAAAAkAAAAfRUWWk2hlucVlYrC9YmCss0RD
+ k10AAAAD////Af///wH///8B////Af///wH///8B////AQAAAAVBQ6p9U1bn/1NW5/9laPX/WVvSwwcH
+ EQn///8B////Af///wH///8BAAAABTw+oWtTVub/ZVvC/6ZmMf+mZjL/pmYy/6ZmMv+mZjL/pmYy/6Zn
+ M/2lcUEd////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAEDSk3Jr1NW6P9VWOn/a272/y4vd4cAAAA5AAAAKwAAACkAAAAzCQkXT1RV
+ 1OlZW+r/W13s/2hq9v9LTsF9////Af///wH///8B////Af///wH///8B////Af///wEAAAAFQkSqfVZZ
+ 6f9WWen/aGv2/1td0sMHBxEJ////Af///wH///8B////AQAAAAU9P6FrVlno/25ftf+mZzD/pmcy/6Zn
+ Mv+mZzL/pmcy/6ZnMv+maDT7o2w/C////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUpNxYFeYfD/WFvr/2Nm9P9SVdHnLy9tjRUV
+ LmkNDR5hKChNe3NvuMlkZe7/Vlno/1da6v9dX+39Q0WrQf///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABURFq31aXev/Wl3r/2xv9/9eX9PDBwYRCf///wH///8B////Af///wEAAAAFP0Gia1pd
+ 6v9yYrL/qGcx/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2g186hzRgf///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wFERq8ndHfs73d6
+ +P9cX+7/W17s/2pq8P90cun7g4Dp+Y2K8P1xcfL/Wl3r/1lc6v9aXez/UlTUwTU1fQX///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAANISrN5YGPu/2hr9P90d/r/YWPWvwgJGAf///8B////Af//
+ /wH///8BAAAAA0RGrGVfYu3/fGy3/6loMf+paDL/qWgy/6loMv+paDL/qWgy/6lqNe2idkQH////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AVdYxlmvsfP1r7H9/3l89/9kZ/H/YGPv/19i7v9gY+//YmXw/2Nm8v9hZPD/V1nc30ZI
+ sSf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BTlC+cZCS8P+rrvT/p6n1/2Zo
+ 2LsfIFkD////Af///wH///8B////Af///wFJTLpdiozu/6qcw/+zcT//tHJB/7RyQf+0ckH/tHJB/7Ry
+ Qf+yckHxpHdEB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BVlnCQ5SW4cvAwfP9ysz+/7y//v+oq/3/mp39/4eK
+ +v9rberzVVfSp0ZIsCH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AUJE
+ qBFAQ60vPkKtLz5CrS9DRa0d////Af///wH///8B////Af///wH///8BREWqCz9DrS+CYG1dvHlN/7x5
+ TP+8eUz/vHlM/7x5TP+8eUz/uHhL+aN1RQv///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEuJYADPUCsJVJU
+ wVdbXc1xWlzLd1JUx2VISrZHP0CnD////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bp3FCJ7t5Tf28ek7/vHpO/7x6Tv+8ek7/vHpO/7p5Tf2mckYh////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaByRwW6eU3xvXtP/717T/+9e0//vXtP/717T/+9e0//q3NFRf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BuHlNzb18UP+9fFD/vXxQ/718
+ UP+9fFD/vXxQ/7R3S3v///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZ5uQQP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbZ4
+ TI29fVL/vX1S/719Uv+9fVL/vX1S/719Uv+4ek/FonNBBf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AahxRRPRmGi94K17k9CdbVetekwjnV8/A////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGudEg/vX1S/b59U/++fVP/vn1T/759U/++fVP/vH1S+653Sjf///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGyd0tXwoFW/dmWaf/mpnf/665++eat
+ fd3jrXyhzJloY6JuPgf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bp3BBC7p8UdO+flT/vn5U/75+VP++flT/vn5U/75+
+ VP+5fFG9oG1CB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wGkdUUJunxRyb5+
+ VP+/f1X/woFX/8eFWv/Oi2D/1JJm/8WJXNujcUQL////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGzeE1vv4BW/79/
+ Vv+/f1b/v39W/79/Vv+/f1b/wYJY/7+CV5mmcEYH////Af///wH///8B////Af///wH///8B////Af//
+ /wGmbkIFtXpOi7+AVv+/f1b/v39W/79/Vv+/f1b/v39W/7+AVv+3e1CN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bp3JGDbt+VNnAgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/NjGL91ZZps7eCVSn///8B////Af//
+ /wH///8B////Af///wGrdEgbuHxRp7+AV/3AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP++gFb1qnRGKf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGyeU1LwYNZ98CCWf/Agln/wIJZ/8CCWf/Agln/xIVb/9WU
+ af/nq3z15K+Ar9emdnPNmWpTyI9hTcSHW2HBhFihwIJY68CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/uH1Snf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bn2U1A7t/VInIiWD9w4Vc/8GD
+ Wv/Bg1r/wYNa/8GDWv/ChFz/y4xi/9eWbP/jo3f/5KR3/9+ecv/QkGb/xIZd/8GDW//Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/vIBW4ap1Rx3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGncUIFwoZakc6PZv/FiGD/wYRd/8GEXP/BhFz/wYRc/8GEXP/BhFz/w4Vd/8OGXv/DhV3/wYRc/8GE
+ XP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/voJZ9bB4Szv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AZlpOAPEiF2B2Jhv9c6QaP/HiWH/woVe/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/vYFZ47J6T0P///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AciOYT3eonXT5qh+/9aX
+ bv/LjWb/xYhh/8OGX//ChV7/woVe/8KFXv/ChV7/woVe/8KGX//Dhl//xIdg/8OGX//Chl79un9Wua11
+ SSf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bm2g7Cc2ZbFvms4a76rWI9+mwhf/go3n/15hw/9GTbP/OkWr/zpFq/86Raf/Qkmr/zpFp/8iL
+ ZPO/hVy3sHlNR59rPAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bnmo+A7uJXCHLm29Z3a6BjeSwg63kq37B3qJ3x9ue
+ c7nWmW6ry5BlhbuCV1eveU4doG5EA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AVw3AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABACAAAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAA////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAMAAAADAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAkAAAAPAAAAEwAAABUAAAARAAAACwAAAAUAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAHAAAAGQAAAC8AAAA7AAAAOwAAADcAAAArAAAAGwAA
+ AAsAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaNfKwPaf0gF34BJBd+ASQXfgEkF34BJBd+ASQXfgEkF34BJBd+ASQXfgEkF34BJBd+A
+ SQXfgEoF9oxkA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAsMDB0tEBEqUxYXN20aGT5zEBAqZQoLF1UBAQE/AAAAJQAAAA8AAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BqksqBbRgRQe2YUYHtmFGB7Zh
+ Rge2YUYHtmFGB7ZhRge2YUYHtmFGB7ZhRge2YUYHtmFGB61sRgfumIkF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAgIGCy8whXNST8PbXFXU51VP1OtFQsjlMjGdxSIi
+ YYUFBQtBAAAAHwAAAAf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZlgLwOyZzcHrH89CauAPAmziDwJs4g8CbOIPAmziDwJrIE8Cap+PAmqfjwJqn48Cap+
+ PAmrfzwJxYNFCdeYfwX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wENDiENLS+kmykl2f1BPeX/NTLi/yAd3f8cG9n/IyPF9ScneZEFBQozAAAADwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAUAAAAFAAAABQAAAAP///8BAAAAAwAAAAMAAAAFAAAABQAAAAUAAAAD////Af//
+ /wEAAAADAAAABQAAAAUAAAAFAAAAA////wH///8B////Af///wEAAAADXycUB5lRLA+XWzQRoGE3D7Fn
+ QA2+akQNwW5EDbJpQA2dYDYPklcwEYNPLxOFUC4Tk1cyEZ5gNg+sdEANgmhnBwUFBQUAAAAFAAAABQAA
+ AAP///8B////AQAAAAMAAAADAAAABQAAAAUAAAAD////ASMkWAkwMbCxKive/3p79v+lpvn/dXbx/yMj
+ 2/8bHNv/JifE7yYmZ28AAAAbAAAABf///wH///8B////AQAAAAMAAAADAAAABQAAAAUAAAAFAAAABQAA
+ AAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAA////wH///8B////Af///wEAAAADAAAABQAA
+ AAUAAAAFAAAABQAAAAUAAAAD////Af///wH///8B////Af///wH///8BAAAAAwAAAAUAAAAFAAAAAwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABwAAAA8AAAAZAAAAHwAAACEAAAAdAAAAFwAA
+ AA8AAAAPAAAAGQAAAB0AAAAdAAAAGQAAAA8AAAAHAAAACwAAABcAAAAdAAAAHQAAABcAAAANAAAAA///
+ /wH///8BAAAABwAAABUTDQYfNSMTKUAsGidXPCIfiGE2FbR7RBGdbjsTbU0uGU80ICM5KhgrNCYVLzYn
+ Fi0/KhgpVDkiIVw/KxkaFw8VAAAAGwAAAB0AAAAdAAAAFQAAAAkAAAAHAAAAEQAAABsAAAAdAAAAGwAA
+ ABUAAAAJOz6bBzg8s6syNMTPPD3H1U5P2elsbfL/R0jw/ygp5P8nKNv/LS6gvQwMGi8AAAAL////Af//
+ /wEAAAADAAAACwAAABkAAAAdAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHQAA
+ ABkAAAAPAAAAA////wEAAAADAAAACQAAABEAAAAbAAAAIQAAACMAAAAhAAAAGwAAABMAAAALAAAAA///
+ /wH///8B////AQAAAAkAAAAVAAAAHQAAAB0AAAAZAAAAEQAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAcAAAAZAAAALwAAAD8AAAFFAAACRwAAAEMAAAA7AAAALQAAAC0AAAA7AAAARQAAAEUAAAA3AAAAHQAA
+ AA0AAAAdAAAANwAAAEUAAABFAAAANwAAAB0AAAAH////AQAAAAMAAAATAAAALwoGAUcXDwdRIBMLSzUg
+ ETdwRy8fnWdBF2dDKh87JRczJRYORRwRC08bEQhVHBAHUyASCk0oGQ5DLBsRNQoGAzUAAAA/AAAARQAA
+ AEEAAAAtAAAAEQAAAA8AAAApAAAAPwAAAEcAAABDAAAALwAAABMYGD8DQkOoHUdJnx1FSJwfNjijVTEy
+ w+s0Nuj/Ky3h/zQ37P8uMMTxISFSVQAAABMAAAAD////AQAAAAcAAAAbAAAANwAAAEUAAABHAAAARwAA
+ AEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABFAAAAOwAAACEAAAAHAAAABQAAAA8AAAAhAAAANQAA
+ AEEAAABHAQEESQAAAUcAAABBAAAANQAAACUAAAARAAAABf///wEAAAADAAAAFQAAADEAAABDAAAARQAA
+ AD0AAAAlAAAACf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAFAAAAGQAAAjcQEi5fHB1QfS4ucpM0NHmdKClkjxYX
+ NGsBAgRPCAgUUxwcRnUbHEl/GxxJeyMiWGkZGT8nAAABDxkZPTUgIlNvGhxJfRscSX0eIE9rEBIvLwAA
+ AAf///8BAAAAAwoKFxsfH0pdHh1KgSIfRYcnI0qBNSlEV146LCVvSDIhOyQZNyAUClEeGCxzKCVckTo3
+ d6c1MWufKiVLhx4WHGkUCwZVFxg2ZxscSnsaHEl9HR5OdyIjVVMGBg0RAAABDxocQkceHk53GhxHfxwc
+ S3siIlNdCwwaGwAAAAP///8B////Af///wEWFzUNNDaXjygr0/8pLN3/Oj3u/zM13P0uMIaZAQEDHQAA
+ AAf///8BAAAACRETLisfIFJtGh1JfRocR38aHEd/GhxHfxocR38aHEd/GhxHfxocR38aHEd/GhxHfxsc
+ SH0eIE5xFxg8OwAAAQsAAAARAAAAKQAAAkMJChxdGx1QgScoZ402NnqfMjF1myYnX4kUFC9nAwIFRQAA
+ ACsAAAARAAAAAwAAAAUNDSAhHiBOYRsdS3saHEh/HiBQdxobP0MAAAAN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AA0FBQwxLS5rg2ljxuOHfuf9fXXz/2Re7v9JR+L/OjrE7TIzjbUtMHWhWVbU925o4/trZeL7VFLL+T09
+ mU8FBQ4JNjaTa1NQz/dtZ+P7bWfi+1NQ0PczNI5nAAAABf///wEAAAADKSpmMUFBtddmYN/7bmfi+2Je
+ 3ftFQ6u3XT0rLVM2HS8sHyNVSkWNr3x01euGfe//c2zw/1ZT6v9AP9b5OTmx3y4saZ85O6DRZmHe+21o
+ 4vtlYd37RES30ykpaRMaGj0VPz+ttWRf2fttZ9z7aGLc+0NEtdMlJmArAAAAA////wH///8BAAAABQEB
+ AxcuMHyBLzDM/SUo1f82OOX/QUTu/zI1st0UFC83AAAADQAAAAMAAAAHMzWEX1NSy/VsZt37bGbc+2xm
+ 3PttZ9z7bWfc+21n3PttZ9z7bWfc+21n3PttZ9z7bWbc+1tY1Pk5O5+RAwMKDwAAACUODiRPOTd2mXBq
+ w+GIf+X9gHjw/21m7/9ZVe3/SUfg/Ts9wOsvMYuvExQtWQAAACkAAAALAAAABSotdzlQT8jpbWfj+21o
+ 4/taWNb7NziaiwYGBg3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAADAAAAEyorbGlUU8ztYVzr/z9A4P8xNNr/T1Ls/4OG
+ 7/9tb+X/PT/S/TY5ufMxM9T/Ozzf/0FD5/84ObvnLS1pHQAAAQkzM5NvLzLK+zY32/9HSOz/Oz7Z/TQ2
+ k20AAAAF////Af///wEqLW8zMjS23zM02f8+PuL/RUfq/zs7rcFXOCIzQysZPUNAk61lYOb5U1Ho/zY3
+ 2/85POH/Zmnw/3+C7P9ZW+D/NTfF+zY5xf00Ndr/QUHm/zk72/04OaKVIiJCBSAgSBc0NrPBLzLX/zs7
+ 3/9JS/D/ODu91ycnYC0AAAAD////Af///wEAAAAJERIrLTY4pcMuMNb/LTHY/zM33v9ITPP/Oj3P/SYn
+ ZGMBAQIXAAAABQAAAAU3OZBhLTDM+zo63f9SU+T/VVbm/0tM4v9JSuL/R0ji/0RF4f9EReH/REXh/0RF
+ 4f9JSen/QEPm/zc6pJkCAgYXFBY4S0tKq8F6c+r7aWXt/0JD4v9GSOv/bG/x/5KU7f9tb+P/NDfa/zE0
+ 0PsxNKHHFxc4TwAAABUAAAAJLS9/PTI0xfE0Ntv/RUbp/0JE4v8zNZ6PDQYGDf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAMHBxIXPj+vvURE4P8uMdT/LDDU/ywv0v9FSNjxYWTe53d65/eBhPD/OTza/ysu0f85PeD/Q0fp/zY4
+ sL8gIEMTAAAABzQ0k28uMcj7KS3R/0lN8f8+Qdn9NTeTawAAAAX///8B////ASosbzMzNrbfKCzQ/zo+
+ 4v9ITOz/PT2swVE1HjdDN11hRkbN8zo73P8rL9L/Ky/T/zM30v1SVNvram3f7YOG6vtfY+b/MDTU/ysv
+ 0v9DR+v/Oz7T9zU3jmcHBw0DICBIFzY5sr8pLdD/Mzfb/0xQ8/85PL3XJyhgLQAAAAP///8BAAAAAwAA
+ ABEkJVxTOj3C7Swv0/81Od3/Mzfa/0VJ6/9DR+b/NDaVpwsLGSUAAAAJ////AT0+nFswNMv7RUrf/2ds
+ 6v+OkvL/nKD2/5qf9v+YnPf/kpb3/5CU9/+Pk/f/j5P4/4SI+f9LTuj/OTynlwYGDiE4OZWjUlHf+0JC
+ 3/8sMNP/LDDV/0JG3/1YXOLxe3/o+6+z9/9eYuv/OT3f/zk90/s1N5ijBgYJFQAAAAkuL309MzfE8Scr
+ z/9ESOv/Q0fi/zU2no8IBgYN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////ASstaSU5O8DpLjHU/zI22P82Otz/NTe98TEy
+ iHUrLIFBNzmlfUxPyd1LT+f/MTXW/0FF5/9ITOv/ODqsrRAQJg8AAAAHNDWTbzE0yvsuMtT/TVLz/0FE
+ 2v00N5NrAAAABf///wH///8BKixvMzQ4t98sMNL/P0Pl/0tP7v8+PqvBWj4fN0U/i4szNtP9LTHT/zY6
+ 3P8yNtP/Ojmhx0U2Y1tIO3VfRUOjo1JU2/c9QeH/MjbX/0tP8v8+QdHzMTGBVQMDBQUgIEgXNzqzvy0x
+ 0/84PN7/T1P0/zs+vtcnKGEtAAAAA////wEAAAAHAQEDHTQ1jZM6PNH9MDTW/zo+4P8xNdf/PkLk/1BU
+ 9v86PLTZGRtAQQAAAA8AAAADP0GiOUFEzelydvb/YGTx/0FE4v9FSeH/Sk7R/U9SzfVRVNHzUVTT8VJV
+ 1e9RVdXtUVTV7UJFzus6PKSBIiRYQUFDwuE4Otr/LzPV/zE11/8zNsTvNzmmnzI0kmc2OaCLREfM8Vtf
+ 8/9lavj/UVXw/zs/xOsxMnAvAAABCS4vfD01OcbxKi7S/0lN7v9GSuP/NTeejwYGBg3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BNziEJzc6wu0wNNT/QETk/0dL6v8zNZrBBQYORwAAADUCAgYpLzF9eTU5zf0zN9j/R0vr/0pN
+ 6v84OqWdCwsbCwAAAAk1NpRvNDfM+zE01f9RVfT/Q0fb/TM1lGsAAAAF////Af///wEqLG8zNjm33zAz
+ 1P9DRuf/TlLv/0A/rMNoQSI1SEKUjzI20/0zN9j/S07u/z1A0PszK1GJLx4KVTskD0tBKiBPOzqgxTU5
+ 2f84PNz/UVX0/0BDzvMuLnlPAQEDBSAgSBc5PLS/MDTU/zs/3/9TV/X/PD+/1ycnYS0AAAAD////AQAA
+ AA0TFTA1Oj2tyzc62f84PNz/Oz/b/zM2z/84PNz/Vlr4/0BE1P0qK3JvAQEBGQAAAAX///8BP0Gqa05S
+ 2e+AhPv/X2Pw/zs/4P85PMz9NTaPvyAhTmMqLGdHPT+TMT9CnC9AQ50vQkObLSkpah0zNo9/PD7V+TI1
+ 1v88QOD/ODvW/zEzi6MICBE5AAAAMwICBjM1NpGlQUTV+0RHzvE/QsHjPD6xzS4vck8EBAgNLjB+PTc7
+ x/EuMdP/TFDv/0pO5f83OJ6PBgYGDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEzM2wLPT+92UdK5/9YW/T/U1b0/z1A
+ ve0kJFyJDg4kYwAAAE8ODiNbODvB9zI21v9MT+7/TVDr/zk7opsKChgLAAAACTU2lG82Os37NDjY/1RY
+ 9v9GSd39MzSUawAAAAX///8B////ASosbzM3OrnfMzfW/0ZK6f9RVfH/QUCsw25BIjdTSIdzPUDU+09T
+ 7f9YXPf/Rkjk/zs5kMcrJECJJxoQcSQUA2c1NHWrNDfV/zo93P9VWfb/QkTN8SsrbEUAAAAFICBIFzo9
+ tL8zN9f/P0Pi/1db+P8/QcDXKClhLQAAAAMAAAADAAAAFy4wfHVBQs33NTjY/0JF5f88P8/9PD66+Tg8
+ 2v9NUe7/T1Lu/zc4pLkODiIrAAAAC////wFLS6EHP0Cwf1VZ3feHi/3/W1/w/0BD5P88P9L5MTSJqQUF
+ CUMAAAAjAAAACwAAAAMAAAADAAAAETc6pK02OdX9Nzva/0VJ6P84PMP7GRxMew4QMWcOEDFnDhAxZxYY
+ QnUgI1iNGhxGgRMVOHUSEzdfEBAtMQEBAxEsL3s/ODzI8TE11f9QU/H/TVDp/zc5ppkPDyEP////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AUBAdQM/P7B/XV/j962x/f+Qkvf/T1Hj/0pK1vVJScHdQ0SlvzU1gak7PcH5NjjX/05R
+ 7/9QU+3/OjynnwsLHAsAAAAHNjeVbzk8z/s3O9r/WFv4/0lM3v0zNZFtAAAAB////wH///8BKixvMzk8
+ ut82Odf/SUzr/1RX8v9DQazDckcmOX1YUDtFRsDZgob2/7O1+/9wcu//SUve/UxL0vNJSLDXQj6Kvz08
+ js02OdX/PD/d/1hb9v9ER87xKipnQQAAAAUgIEgXOz60vzY52P9CReP/WV34/0FDwdcpKWEtAAAAAwAA
+ AAkFBg4lOj2jsz9B2v85Pdv/RUjn/z0/wOE9P6rBOj3V/UVJ5/9cX/n/QUTD5yUmX1cAAAARAAAAA///
+ /wE/QaQTQEO5l15h5/2Kjv3/WFvu/0JF5P8+Qc73LzGAnQMDCD0AAAAdAAAACQAAAAMAAAAPOjywyTc6
+ 1/8+Qd//TE/t/2Rh3P9uas/pbmnP5W5pz+duac/nbmnP525pzuVwa8/ncWzP52ZizeU6PZWJDRAkDy0w
+ fD07P8nxNTjX/1RX8v9RVev/OTunnRERJRH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAzs7iRVGR7indHbe87S2
+ 9f+srvT/l5nw/3d47f9nZu7/X1/j+0xM2/84O9n/UlXw/1RX7v86PKifCwscCwAAAAc3N5VvPD7Q+zs+
+ 2/9cX/n/TE/f/TI0jHEAAAALAAAAAwAAAAMqLG01Oz273zk82f9MT+v/V1rz/0RCrMVzSCk7mmErLVxM
+ emNVVcfblZjt/bu99/+kpvH/hYft/21v7v9mZer9W1re+z9B3P8/Qt//W173/0ZJ0fEtLnFHAQEBBSAg
+ SBc8P7W/Oj3Z/0VI5f9dYPn/QkTC1ygpYS0AAAADAAAADxwdSUlCRL/fP0Hd/0JF4v9FSOL/PkCvqTo7
+ mk8+QMzxQETh/11h+f9MT9/9MjSKjQEBAx0AAAAF////AQAAAAM9P6IbQUO9qWxw7/2Hivv/VVjs/0RI
+ 5P8+QsPxKSpqiQQECjsAAAAbAAAACQAAAA09P7fXOTzY/0RH4/9rbvT/i4v3/42M+f+NjPn/jYz5/42M
+ +f+NjPn/jY35/3Jx8P9gYPD/Wlvx/zs+op8aHTwLLjB+PT1AyvE5PNr/W1/3/1ZZ7f85O6ehDQ0ZGQAA
+ AAUAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHAAAAExsbQC8uMIB7QkSswWBj0OuChOf3mJvv+7Cy9v+nqfb/jIzw/09S
+ 3/9UV/H/V1rv/zo8qJ8LCxwLAAAABzc4lW89QND7Q0fg/2Vo+/9QU+H9MDKGfwAAABcAAAAJAAAACyYo
+ ZD09P7/jPD/a/09T7P9aXfP/RUOrxXRJKj+ETyg3Zj0aQ0g0SmtBPIyzUVK4321v1feLjer5o6bz/6+x
+ 9/+am/P/d3jq/0ZJ4f9eYfj/SEvU8zAwfE8BAQMFICBIFz5Atr89QNv/SEvm/19j+f9CRcPXJyhhLQAA
+ AAcAAAAZMDJ+f0dJ1/k/Qt3/Sk3o/0NG1f89PqVjOzyWIT5Av89BReD/VVjw/1pd8f88P67HEBEoMwAA
+ AA8AAAALAAAADQAAAA0rLW0lQ0a7xXl98/2Fifr/VFjs/0dK5P89QLnnHR5ObwEBAjUAAAAZAAAADTxA
+ tMU9QNn/SUzm/2xv+/9mauj/Z2vk+Whs5vdobOb3aGzm92dr4/lkZ+X/SUzf/01R7P9OUen/Oz2hhx0g
+ QQkvMX09P0LL8TxA3P9kZ/n/XmHy/zs/rbsMDR0tAAAAFQAAABMAAAATAAAACQAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkAAAAfAAAAOwAA
+ AkkLDCVhGRo/ZyIka2EzNZmZRUi4w11gy+N6fOb/TlHf/1da8v9ZXO//PD+omwsLGwsAAAAHNziVb0BC
+ 0ftHS+P/eX39/1hc5/8yM4ufAAAANQAAACMAAAAlHyBRVz9Cxu0/Q93/Ulbt/1xe8/9HQ6zFeEgsQXZF
+ JD9LKwxVNBwFZywaDnMxIzGHOys9fT80cpFDQJy/UlK42Wxt1fNqbeb/R0rh/2Bj+P9KTtPzMTF/SwEB
+ AwMiIkwVP0G3v0BD3P9LT+j/Y2b5/0VHw9coJ2AtAAAADQoLGS1AQazDR0ne/0RH4f9OUuv/QUTE6To7
+ kSUjI08FP0KtjUNH3P9NUOn/ZGf6/0lMy+siI1dZAAAAHQAAACMAAAAxAAAANwAAADUgIExXSErB5YKG
+ 9v+Jjfv/VVjt/0lN5f89P7LZGBk6YwAAAC0AAAARPUCvp0FE2v1KTeX/aW37/0ZJzfspKnGDJihuYSkr
+ d1smKW5jLS95j0FEyvVBRN7/UFTt/0lM3f87PqJlGRk2BzAxfj1CRMzxP0Pd/2pt+f9pbfn/QEO42wwN
+ H00AAAA5AAAANwAAADEAAAAZAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAwMBTc4h1lSUZurY1+tz3p2x+VAQZ2/CQkYVwEBBEcDAwpFGx1HdURG
+ x/lER+D/WVz0/1da7f8+P6SPEBAlBQAAAAc4OZZvQkXT+0lM5f+BhP3/c3f0/z9BsdkQEiljAAAASQAA
+ AEsgIVZ7RUfP90JG3/9VWO//W17y/0pGrcGFUi0/fVE7RVZMhp9fWZnLcGq04Whkvus4MV2lMx0FbTYf
+ BmkzIBVzOziBw0ZJ4P9JTOT/YGT5/0lN0O8yNIA5AQEDAyAgSBdAQre/Q0bf/09S6v9mafr/R0nD1ycl
+ XS8AAAAVJyllX0pMz/NGSOH/TE/n/05R6f9BQ66nPT2HC////wE9P6FFQ0fP9UpN5v9jZvj/WFvo/TY4
+ kZ8BAgQvBAQLPQMDDlUCAgxdAgIMXwMDDVshIVeJSk3D64qN+f+Lj/v/Vlnu/0xP5P9AQbHRGxtBVQAA
+ ABs9PqRlSUzc91FU7f9oa/v/U1ji/ywtdJkBAQRNAAAASQEBA000NoapUlPi+0dJ4v9QVOz/REbK9Tk6
+ kCcFBQoFMDF9PURGzfFDRuD/aGz6/3R4/P9NUNX3JilplwMDDFsLDCxnICBMawkIEi0AAAAL////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAPz8DRkesg25s
+ 4fmRi/f/gX34/05Q2vs6O5K3KChahy8vYotNTZa5Wlrl/UhK4v9YW/L/VFbo/T5Aon8ZHEEDAAAABzk5
+ lm9FR9X7TE/m/29y+/98f/n/VFbd+0BCrdMsLmmRMTJmkV5css9eXuf/RUjf/1VY7v9TVuj/Tkmlr5Zd
+ LjuEVklHWFa/34iD8f+Oifj/amny/0dHuOk+N2mvPTNToUc/Zq9eW7jnUFHn/0xP5v9cYPb/SUvO5TM2
+ fBv///8BHiBIF0FFuL9GSeH/UlXs/2pt+/9JSsTXIyJXMwMDCCE5O5OfT1Hi/UhL4v9TV+7/S07a/T0+
+ n2M0MWsD////ATg5kBVDRb/VS07m/1te8v9mafj/REe/2w0OIEU8PY2bX121y2Ngtc1jX7XNYV+1zWFf
+ tM1dXL3taWnf/5qc/P+Hivj/WFvv/0xP3/0+P6i/GxtDLTw9mS1JTMvfbG/5/3J1/f9cX/X/SkvI6zc4
+ hKctLmWPREKDq3Zx1fNcXOz/SUzi/0lM4v9DRbvDNDR/CwAAAAUxMn49RknO8UZJ4v9oa/v/am35/2Bi
+ 7f9NTsztXlq1zYR+xeFfXsXhJidlWQAAAA8AAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wFAQqUzSUvO43h69v+KjPf/XV/s/15d6Pt6duXzlY7o86Ga
+ 8ftiYu7/Sk3j/09S6f9LTdjzPj+jUf///wEAAAAHOzyaa0hL1/tRVOj/bG/7/2Fk6f98fvL/dnfy/3Fu
+ 5vWSi+b1k43y/V1e7P9JTOP/TlHn/0tN1PdbTIyFomMuOaZkLDlSSZmXWVvk+4uO+P96ffX/VFbp/2lm
+ 5PmGgOH1nJTn+ZOM9P9PUeb/TE/l/1BT6P9FR8O7MDRqC////wEdHkgXQ0a4v0lM4v9VWO3/bXD7/0pM
+ xdchIVI1Dg4kLUhKvtdOUOX/UFPn/1da8P9HSsftMziAG////wH///8BMzR9BUBDq4lLTuH/Vlnt/25x
+ +/9TVtr3JylldUFEsM1ubO3/f3v1/4B89f+AffX/gH31/4F98/+AfPP/enn2/5GS+P96ffb/YmX0/01Q
+ 0fEwMHRBLS1zBURGtnNucejztrj+/4yP9v9aXO7/YWHn+4J95PWfluz7fXn0/01Q5f9KTeP/R0rU60BC
+ qE3///8BAAAAAzM2hTtIS9DxSkzj/21w+/9aXez/bG/x/21v8f94dfT/iYX5/2Fi5/03OpaJAwMGEQAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AURE
+ mQVERraJeXvm99na/P/Jyvf/lpjw/42N8v+IiPX/f4D0/2ls9/9XWu7/TU/h/UZIwbE9PJsL////AQAA
+ AAM/QKZlT1LZ+5OW8/+Qk/3/T1HR+Vtdz/Ooqvj/rq/3/52d9v+DhfP/a271/1VY7P9MT+L/TUq2zYBY
+ VlGmYy47qGIxO3dVY1tUU77Zp6rz/+Hi/P+sr/L/kJHx/42M9P+EhPX/eXr2/2Jl9v9QU+j/Sk3T8URF
+ smslJUcD////AR0dSBdERrm/TVDk/1lc7v9wc/z/S07F1yMkVzMzNX9JV1ja93+C7/+ZnPj/YGPt/0RF
+ uK8oKHQH////Af///wH///8BPT+eT0pN1fmFh/T/pqn+/29y8v8/QaSrQEO1yWNm5/+doPX/pKf3/6Sn
+ 9/+kqPf/paj3/6Wo9/+mqff/oaT2/6mt+P+Vmf3/VVfY8TY3hjv///8BQEKfD0tNvpWJjOr53+D8/7+/
+ 9f+XmfH/hof0/3d59f9dYPL/T1Lm/0pN1fFER7V9RESQBf///wH///8BOz2aM0xO0+9+ge//mp3+/1lc
+ 3f1WWND7rbD5/7S29f+FiPj/bW/2/0hKwcUwM3IX////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUBAoA1ERbNnXmLRz5GT6f2ytPT/rrH4/5OW
+ 9v99gPT/Y2bs/09R1+VGSL6dQkOqHf///wH///8B////AUJErltVWNT5d3rk/3N15P9PUcjfP0CmY1FT
+ xrmHiuf9srX0/5aZ9/9sb/H/UFPb9U1LtbN+WV5VqGctPaZmMz+mZjM/q2krPXlVZV1WUKu5cnTZ86Om
+ 8f+2ufb/o6b3/4aJ9P90d/L/VVjh/UpNyNdCRa1pQECiCf///wH///8BHR1IF0VHur9QU+b/XF/w/3N2
+ /P9NT8jXKitrNURHr51dXt//dnnk/3V45P9XWtX3QUKnX////wH///8B////Af///wE7O5EJR0q92Wxv
+ 4f93euP/aWzi/0hKvtNER7XVZmng/3l75P94e+T/eHvk/3h75P94e+T/eHvk/3h75P95fOT/eHzl/3F1
+ 5f9TVc/pQECfKf///wH///8BQ0GfEUJDtHdlZtnfm53w/7S29v+Tlvb/bG/y/1ZZ4/NKTc7BQkSwV0BA
+ ogf///8B////Af///wFDRK0tUFLO73J15P91eOT/VVfR8UNFrq1qbNbrr7H1/4WI9f9aXef7TE7KyUBF
+ oxv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATo7nAM9P58ZP0CuTURDunVGR76JRUe6i0VHu3tER7ZdQUOlLUBCoQ3///8B////Af//
+ /wH///8BREanFz9CpkM8QKRFPUClRUBCpTk7QaAJOTueDT9CrlFERbp9Rki8jUZIuH1DRKpFkGI9Hadn
+ LjmhYzBBoWMwQaFjMEGhYzBBo2MuQZ1hMkNxUWdlYk6JgVpOn5tYTaOnV0yeo1xOmJVmUH51bVVvM29j
+ fQX///8B////Af///wEdHUgXR0i7v1NW6P9fYvD/d3r9/09RyNcoKmcvPkCgLz5CpEU8QKRFPECkRT9C
+ pUFHSK0R////Af///wH///8B////Af///wFAQ6Y5PUCkRTxApEU+QaVFQkOnPVJKlEdlT3dnaE5wb2hN
+ cG9oTXBvaE1wb2hNcG9oTXBvaE5wb2pQcm1nT3ZpY1B8Y2NPf0+XaVgVpHpVCb6WPgP///8BOzyZBTw+
+ oiVCRLZVRUe9eUVIu4lFR7ljQ0WtRUNFsg1AO54D////Af///wH///8B////AUBEpw1AQ6ZBPECkRTxA
+ pEVAQ6ZBQUOjFz8/pDVFRr11Rke6hUVGs1lDQqQhQESmA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BOjOVBTw8
+ kwk9PpYJPz+UBSIiiAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATo9lgc6PJMJP0KUB////wGebTEPoGQ0NaJjMUOgZDFFoGQxRaBkMUWgZDFFoWQwRaRl
+ K0OkZStDoWIvRZ9iMUWfYjFFomMvRaZmLUGjajEroHg5Cf///wH///8B////AR0dSBdISry/Vljq/2Jl
+ 8v96ff3/UVPJ1ygoYi0AAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wHMd1MDqGYzIaVoLD2lZipBpWUqQ6VlKkOlZSpDpWUqQ6VlKkOlZCpDpmYrQaZm
+ K0GmZys/qGYvO6VqNzehbDwrp3pBEf///wH///8B////Af///wE5PIoFPj+TCTs7gAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ATU1kQU9QJYH////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaFf
+ NAmhYzQtoWQxQ6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6Fl
+ Nzuma0EVyIl/A////wH///8BHh5JF0lMvb9YW+v/ZGfy/3x//f9SVMrXKSlmKwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AapwQA2hZDU1oWMyRaJk
+ MkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6FkMkehZDJHomUyR59kMzulbToT////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Blnw3A6FkNyGgZDJBoWQxSaJkMUuiZDFLomQxS6Jk
+ MUuiZDFLomQxS6JkMUuiZDFLomQxS6JkMUuiZDFLoGMzRaFoOSmceksJ////Af///wEnJ10RS07AvVxf
+ 7P9+gfb/g4b+/1RWzNUtLXInAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGbdkIDomI5H59kM0OhZDFJomQxS6JkMUuiZDFLomQxS6JkMUuiZDFLomQxS6Jk
+ MUuiZDFLomQxS6FkMUuhZDJJpmk0M6JrKQ3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BlGExEZ1jMTugYjJLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6Bk
+ M0ugZDNLoGY2P6N1Qhmvj4gD////ATs7iQ1PUsa7iYz3/8fJ/v+hpP7/WVvR0zk5kh////8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaZyPA+jZjg3n2MzS6Bk
+ M0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BmM0efazgljlMpB///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGmaDEHomQ1K6BhMkufYzFPn2MxT59j
+ MU+fYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fZDJLnmc3N5xuPxH///8BQkKXBUhL
+ tolXWcjFWFrHw1dayMVLTbmRQUGjDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGaak4JoGc5KaBjM0mfYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fYzFPn2MxT59j
+ MU+fYzFPn2MxT59jMU+fYzFPoWQ0QaR2PBeidjsD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbGNFgOiaDUZomU1Q59iMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9j
+ MlGfYzJRn2MyUZ9jMlGgZjVLomk3MbtyTAv///8BOz2eDTY2lRM1NZUTMzWVEzs8nQ3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BsHtOBZ5pPSGfZDZDn2MyUZ9j
+ MlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9iM0+kZjY1tXIwC///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaJyMguhajYznmExUZ9j
+ MVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWhZTNNomM3L6R0
+ SA2kgFYD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbGASAehbDwfoWc2Q59kMlOgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBj
+ MVWgYzFVoGMxVaBjMVWgYjFVn2I0S6JsOSGvgB8D////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BwoISA6NpMhugYzNJn2EyVaBjM1egYzNXoGMzV6BjM1egYzNXoGMzV6Bj
+ M1egYzNXoGMzV6BjM1egYzNXoGMyV6BjM1egZDVPoGk6NaVyQhWtf1wF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGedVEJo2g9JaBnNUWfZDNVn2MzV6Bj
+ M1egYzNXoGMzV6BjM1egYzNXoGMzV6BjM1egYzNXoGMzV6BjM1egYzNXoGMzV59iM1WdYzc9qnk5Df//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bq2Y0CZ9l
+ OS+fYTJTnmAxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9i
+ MVmfYzJXn2c3RZ5rOimjcEoRrnBFBaBeSwP///8B////Af///wH///8B////Af///wH///8B////Abea
+ bgOXb0oJom5DF59mOzOgYzRPnmExWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9g
+ MVmfYDFZn2AxWZ9gMVmfYDFZoGQzT6FrOyOvXkQD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bm2U9E55kNkGdYDFZn2AyXZ9gMl2fYDJdn2AyXZ9g
+ Ml2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYjJbn2M0U59kNkOjZzsto208G6hr
+ QhGfcU8LpnJEB5xzRgedbEcHp3VRB6VySAmlbUMToGlAH59kPTOeZDdJn2M0V59gMl2eYDJdn2AyXZ9g
+ Ml2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdnmAyXZ5hMlmfZTc9n3g6D///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGlehwFn2c2I51hMk+dYjFdnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51i
+ MV+dYjFfnWIxX51iMV+dYjFfnmIxXZ1jMlmgZjZPn2U3R6BmOD2iaTo5n2k6M55mOTOgZzo7oGc5PZ9l
+ NkebZTRTnmMyWZ1iMV2dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51i
+ MV+dYjFfnWIxX51iMV+eYjFdoGQzTaJnOyOXaCgD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGsezwJnWQ0L55jM1WdYTBhnWAvY51g
+ L2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OcYC5jnWAuY51h
+ L2OeYS9hnmEvYZ1iL1+fYjBdnWIvX51iL1+eYS9hnmAvYZ1gL2OdYC5jnWAvY51gL2OdYC9jnWAvY51g
+ L2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvYZ1iMVmfZjgzq2w8C///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGdZzwNn2U3N59hMludYTFjnWExZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1i
+ MWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1hMWWdYTFlnWIxZZ1i
+ MWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1i
+ MWWdYjFlnWIxZZxiMWWeYjJhnmU2QahlPRH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGlZUARnmU1O51h
+ MV2cYTBnnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51g
+ L2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51g
+ L2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYS9nnmExY59hM02faDQZp3ggA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AYVaPQOUaDgRnmY2PZxhMV+bYDFpm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrmmAwa5xhMWWfYjNPnm47Ia9/OQP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AZNr
+ KQOdZTkTnWU1PZtgMV2aYDFrm2AwbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtg
+ MW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtg
+ MW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2aYTJpn2U1T6BpOSWcYjcF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGpbDgPnmU2M5tiMlmaYDFtmWAwcZlg
+ L3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlf
+ L3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlg
+ L3GaYDBxnGAwa55kNk+cZzkjqFU2B////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAMAAAADAAAAAwAA
+ AAMAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wGkYDwHn2Q3I55jM02ZYDFpmV8vcZtgMXOaXzBzml8wc5pfMHOaXzBzml8wc5pf
+ MHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pf
+ MHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaYDFzmV8ycZxiM2WfZjlDo2s7F7ByQgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAMAAAADAAAABQAAAAUAAAAHAAAABwAA
+ AAcAAAAHAAAABQAAAAUAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAUAAAAHAAAACQAAAAsAAAALAAAACwAAAAsAAAALAAAACQAAAAUAAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAABwAAAAkAAAALAAAACwAA
+ AAsAAAALAAAACwAAAAkAAAAHAAAAA////wH///8B////Af///wH///8B////Af///wGQTUMDn2o6E6Bl
+ ODebYjRbnGAwbZpgMHOZXzB1ml8wdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpf
+ L3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WZXzF1ml8xc5pg
+ MmubYTVTnmc8LatkNQ2rXi0D////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAUAAAAJAAAACwAAAA8AAAARAAAAFQAAABcAAAAXAAAAGQAAABcAAAAVAAAAEwAAAA8AAAANAAAACQAA
+ AAcAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAACwAAABUAAAAdAAAAIQAA
+ ACMAAAAjAAAAIQAAAB8AAAAbAAAAEQAAAAcAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAkAAAATAAAAHQAAACEAAAAjAAAAIwAAACEAAAAfAAAAGwAAABMAAAAHAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8Bol8xCZ5iOh2cYzU9nGIzWZtgMmuZYDF1mV8wd5lg
+ MHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlh
+ MHmZYTB5mWEweZlgMHmZYDB3mWAxdZthMmmcYjNVoGM3N6FnORelaz0F////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAAAwAAAAcAAAANAAAAEwAAABkAAAAhAAAAJwAAAC0AAAAxAAAAMwAA
+ ADUAAAA1AAAANQAAADEAAAAtAAAAKQAAACMAAAAdAAAAFQAAAA8AAAAHAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcAAAATAAAAJwAAADcAAAA9AAAAPwAAAD8AAAA/AAAAOwAAADEAAAAdAAAACwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFAAAADwAAACUAAAA3AAAAPQAA
+ AD8AAAA/AAAAPwAAAD0AAAA1AAAAIwAAAA8AAAAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZhpMgmhaT4boGU4NZ1jNU+bYjNjmWEwb5lfMXWZXzB5l18xe5deMHuYXzB7mF8we5hf
+ MHuYXzB7mF8we5hfMHuYXzB7mF8we5hfMHuXXzF7l18xe5hfMHmYXzF1mmAxbZphM2GcZDRNnGU4MZxo
+ OhemdTIH////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAUAAAALAAAAEwAA
+ AB8AAAArAAAANwAAAD8AAABFAAAASQAAAE0AAABPAAAAUQAAAFEAAABPAAAATQAAAEsAAABHAAAAQQAA
+ ADkAAAAvAAAAIwAAABcAAAANAAAABwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwAAABkAAAA1AAABSQAA
+ AFMAAABVAAAAVwAAAFUAAABPAAABQQAAACcAAAAPAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcAAAAVAAAAMQAAAUkAAABTAAAAVwAAAFcAAABXAAAAUwAAAEcAAAAvAAAAEQAA
+ AAX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGXWD0Folw7D6Fo
+ PCGaaTg1mmU1SZxjMleZYTJhmF8xZZhfM3OZXzN9mWExhZtjNIubYzSNmmIyh5hhMoWYXzN9mF8ycZhg
+ MGOZYDJfnWEzV5xjNUWcZjgxomk/HaV4OQ2iUUUD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAMAAAAFAAAADwAAABsAAAAtAAAAPQAAAEkAAABRAAABVQEBA1cBAQVZAwMJXwoK
+ H2kQEi5xDxErcQsNH2kICBNlAwMHXQEBA1cAAAFXAAAAUwAAAEsAAABBAAAAMQAAACEAAAARAAAABwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJCgoYHS4ucnM1NYGbNTR7oTUzeqE1M3qhNTR7oTU1fZ83OISVJSZZSQIC
+ BQ8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwICBRkwMHFnNzeCmTU0
+ fKE1M3qhNTN6oTQ0e6E0NHyhODeAlSsqX1cAAAATAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqnNECaRvQy+kbj9NqXFBiapyQ7Oyd0bdtnpJ57p+
+ TOu/gU7vw4ZR88iJVPXKi1Xxy4xX782NWu3KjFnlxIhVy8CDUae6f097qHBFRZRiOhmIVSID////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABQAAAA8AAAAhAAAANQAA
+ AEcAAABPCAkaYRUYRH03N3qjVVOhx2JevOFnYsnlaWXQ621n2e9mYtbvYFzS61lWzelPTsDhQkGmzzIz
+ ha0fIlCFCgwdZQAAAFMAAABLAAAAOwAAACcAAAATAAAABwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkbHEEnQEG11VxX
+ 5vtqZOz7aWTs+2lk7PtpZOz7amTu+1RS4vs2NpKDCAgVDwAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHCwsRGTc4qr1fWub7aWTs+2lk7PtpZOz7aWTs+2pk7ftcWeT7OTqnpQcH
+ DRUAAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGfXVAFoW8/J6Nt
+ P3OmbT6vqG4+5a1xP/Wwc0H7sHNB/a5yQP+vc0H/sHRC/7J1Q/+ydUP/tHdE/7h6R/+9fkr/wYJN/8eH
+ Uv/Qj1j/15Ze/d6bZPnin2fx1pVg0cWKV6O5gE5bom5AG////wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAUAAAAPAAAAIQAAADkAAABLDxAqZTw7gaVpZMDbhXzd84R77/tvaO/9Xlns/1RP
+ 6P9KR+T/QD/h/z083/89PN//Pz7h/0NC5f9EQ+X/R0bk/UdH0vU/QLbdMDB/qRUVMWsBAQJPAAAAPQAA
+ ACcAAAATAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCc0N7PVKSzT/y0v1f8uMNb/LjDW/y8w1/8+P+b/PUDj/zU1
+ k4cKChcPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcMDBEZMjSpvSot
+ 0f8tL9b/LjDW/y4w1v8uMNb/Oz3k/0BD5f8zNKepDAwSFQAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGkcUgPo25BRaRrPZuhaTjXo2o496JoNv+gZjX/oGY1/6BmNf+gZjX/n2U0/59l
+ NP+gZjX/oWc1/6FmNf+hZzb/o2k3/6VqOP+mazn/qG07/6xwPv+wdEH/t3pG/8KET//Qj1j/25lh/d6c
+ Y/PRklvHuX9Pe6lyRjGbbEAJ////Af///wH///8B////Af///wEAAAADAAAACwAAAB0AAAA1BAUMTSIj
+ UntiXrnZhHzp+XJs8P9OTOX/Nzja/yst1P8mKdH/JSfQ/yQnz/8jJs//IybO/yMmzv8jJs7/JCfP/yQo
+ 0P8mKtH/LS/W/zM02f85O9X7Njez4SgqcpcLDBpXAAAAOwAAACEAAAANAAAABf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzU3
+ stUmKtD/JSnP/yUpz/8lKc//Ki3U/0JG7P8/QuP/NTWThwoKFw8AAAAF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAABwwMERkzNaq9KCvP/yUpz/8lKc//JSnP/ygr0v9AQ+r/Q0bn/zQ2
+ qKkMDBIVAAAABf///wH///8B////Af///wH///8B////Af///wGlcUUFpGtAKaFqPJ+iaDjrn2Q0/51i
+ Mf+bYTH/nGEx/5thMf+bYTH/nGEx/5thMf+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/m2Ex/5th
+ Mf+cYTL/nWMy/59lNP+jZzb/p2s6/6xwPv+zdkL/voBL/8+OVv/WlFz7zIxX37V9TYWkcEUV////Af//
+ /wH///8BAAAAAwAAAAcAAAAVAAAALQUGD0kuMXOVamXS7XRt8P9GReH/LjDV/ycq0P8lKc//JSnP/yUp
+ z/8mKtD/JirQ/yYq0f8nK9H/JivR/yYq0P8mKtD/JSnP/yUpz/8kKc7/JSjP/ygs0v8uMdf/NDfF8y4w
+ i7ENDSFTAAAAMQAAABcAAAAH////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkcHEAnNjmy1Skt0P8oLM//KCzP/ykt0P8vM9b/RUnt/0FF
+ 4/81NpOHCgoXDwAAAAX///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAHDAwRGTQ3
+ qr0qLs//KCzP/ygsz/8oLND/LTHV/0NH6/9FSef/NTeoqQwMEhUAAAAF////Af///wH///8B////Af//
+ /wH///8BonNGE6JsPnmhZzblnWIx/ZpgL/+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYTD/nWMy/6Fm
+ Nf+nazn/rHA+/7R2Q//BgU3/yopU+72ATcGmcUVFnWlAA////wEAAAADAAAACwAAACEBAQQ/LC1sjV9c
+ 0vNaV+z/LzLV/ykt0P8oLM//KCzP/ygsz/8oLND/Ki7S/y8z2P80ON3/PkLk/0pN6f9GSuf/QETk/zg8
+ 4P8wNNj/LDDT/ygs0P8oLM//KC3Q/you0v8xNdn/MzfK+y4xhKkCAgQ/AAAAIwAAAA0AAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwc
+ QCc3OrPVKy/R/you0P8qLtD/Ky7Q/zE11/9HS+7/Qkbk/zU3k4cKChcPAAAABf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcMDBEZNTervSww0P8qLtD/Ki7Q/you0P8vM9X/Rkrs/0dL
+ 6P81OKmpDAwSFQAAAAX///8B////Af///wH///8BmWVEA6RtQDmiaTrDnmQz/5pgMP+aYC//mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5lgMP+aYDD/mmAw/5phMP+eZDP/omc2/6ZqOP+tcD7/untH/76A
+ S++rc0SBnm9CFQAAAAUAAAATAAAALSQkW29RUMvtTU3n/y4x0/8qLdD/KS3P/yktz/8pLdD/Ki7Q/y4y
+ 1f87P+H/VVn1/3B0/P+UmP7/rrL+/8DE/v/Gyv7/tbj8/4KG+P9OUuv/Mzfa/yww0/8pLdD/Ky/R/zI2
+ 2f84PN7/NjnH9SYpaX0BAQQvAAAAEwAAAAf///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzc6s9UsMdL/LDDR/yww0f8sMNL/MjbY/0lN
+ 7/9ESOX/NjeThwoKFw8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwwM
+ ERk1N6u9LjHR/yww0v8sMNH/LDDS/zA01v9HS+z/SEzp/zY5qakMDBIVAAAABf///wH///8B////AaJ+
+ VQWhbT9ln2Y225xiMf2aYC//mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+bYDD/nGEx/6BlNP+laTf/rXE+/7N2Q/WsckOljF46IwAAABkHBxE9QUGow0dI
+ 3/0vM9T/LDDR/yww0f8sMNH/LDDR/yww0f8uMtT/NTnb/0NH5P9JTOD7UVXb6VZa1+NZXNrjZmne7Xl8
+ 5Pmho/L/y8/8/6+z/f9kaPL/ODzd/y0x0v8sMNH/MDTV/z1B4v9AROT/Nzqv0xISLkMAAAAbAAAACQAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAkcHEAnODu01S4y0/8tMdL/LTHS/y4y0/80ONn/S0/w/0ZK5v83N5OHCgoXDwAAAAX///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAHDAwRGTY4rL0vM9L/LTHS/y0x0v8tMdL/MjbX/0lN
+ 7f9KTun/NzmpqQwMEhUAAAAF////Af///wGlb0EJo24/aZ9mNeucYTD/mmAv/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5pgMP+aYDD/m2Ew/51j
+ Mf+gZTP/pmk3/6tvPPumbT61UjUhNSkra3VFRtH1NTfX/y0x0v8tMdL/LTHS/y4y0v8uMtL/LjLT/zE1
+ 1P83O8jrPD+7qT4/sGk9PalDOzynNzw8qjc7Pa1JPT6uX0NEv5NcX9DdlJfv/Zmd/P9PU+z/NDjZ/y4y
+ 0/8vM9T/OT3e/01R8f8+Qtf9KCpybwICAx8AAAALAAAAA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCc5O7TVLzPU/y4y0/8uMtP/LzPT/zY6
+ 2v9NUfH/SEvn/zc3k4cKChcPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAcMDBEZNjmtvTE00/8uMtP/LjLT/y8z0/80ONn/S0/u/0tP6v84OampDAwSFQAAAAX///8Bp29BCaNr
+ PXGhZzXznGEw/5thL/+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+cYTD/nGIx/5xiMf+cYjH/nGIx/5xiMf+cYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5xhMP+eYjH/omY0/6hsOfuVYjexQj+ZuTw+
+ 2f0wM9T/LzPT/y8z0/8vM9P/MDTU/zE11v8xNdX/Oz6/3T5BqU9DQ6AP////Af///wH///8B////Af//
+ /wH///8BQ0ORBzs7njFDRr7Jb3Pv/Wlt+v9AROT/MjbW/zA01P82Otr/S0/v/01Q7v83OqGzDxAlJwAA
+ AAsAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAJHBxAJzo8tdUyNdX/MTTU/zE01P8xNNT/ODvb/09S8v9KTOj/NzeThwoKFw8AAAAF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABwwMERk3Oa29MzbU/zE01P8xNNT/MjXV/zc6
+ 2v9NUO//TlDr/zg6qqkMDBIVAAAABah3RQejbT9poWY185xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+dYjH/nmMy/6NmNP+majj/p2s5/6ls
+ Ov+pbTv/qGw6/6ZqN/+iZjT/nmMy/51hMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+cYTD/nGEw/5xhMP+eYjH/oGUz/6NnNf1wVof7NTjW/zE11P8xNdT/MTXU/zI21v81Odn/Nzva/zk8
+ xOlAQp5B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABTU3izU9QL3VTlLs/0hM
+ 6v8zN9b/MTXV/zU52P9FSej/Wl/4/z5AvtUeH081AAAACwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnOz221TQ31v8zNtX/MzbV/zM2
+ 1f86Pdz/UVTz/0xO6P83N5OHCgoXDwAAAAX///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAHCQoRGTc6rr00N9X/MzbV/zM21f8zNtX/OTzb/09S8P9PUuv/OTqqqQwMEhUAAAAFom09UaJo
+ NuudYjD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+dYjD/nmMx/6FlM/+lajb/rW88/7Z3Qv+9fkj/woFL/8KCTP/BgUv/vH1I/7N1Qf+tcD3/qGw5/6Jm
+ NP+eYzH/nWIw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/51iMP+dYjD/nmMx/51m
+ PP9UR6n/NDnZ/zc72/84PNv/Nzva/z5C4P87PtT7PkCrfSIiSQP///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAcAAAAPAQEDGzExhns4PM75NzvZ/zM31f8zN9X/NTnX/0FF5P9cYPv/QEPI5Sst
+ cEMAAAAJAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAACRwcQCc8PrbVNjnX/zU41v81ONb/NTjW/zw/3f9TVvP/TVDo/zY4k4cJCRURAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAcGBhEbODquvTY51v81ONb/NTjW/zU4
+ 1v87Pdv/UVTw/1FU7P86O6upCwsRE5xoPC+haDjRnmMx/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/55jMf+iZjT/qW06/7BzP/u6fEbnwoNN4cmJ
+ U9vQjljb2JZd4d+cYe3fnWP925dd/82MU/+9fkf/r3E9/6ZpNv+fZDL/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nmMv/5RpYv+HheL/gob2/3d69f9dYOv/Q0fl/zxA
+ yNs6Opcj////Af///wH///8B////AQAAAAMAAAAFAAAABwAAAAkAAAANAAAAFQAAAB8AAAAxICBVZzs+
+ yvU1ONj/NTjW/zU41v82Odj/QEPi/1tf+v9DRs/xMjOBSQAAAAf///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzw/ttU4O9j/NjnX/zY5
+ 1/83Otf/PUDe/1RX9P9PUen/NjeQiQcHDxUAAAANAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAA
+ AAkAAAAJAAAADQUHDh84O6y/ODvX/zY51/82Odf/NzrX/zw/3P9SVfH/UlXs/zo7q6kuHxoZomo6v59k
+ Mv2dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+fYzH/o2c2+ahtPNOqckCPq3RDaap3RD+pdEUxqHVGJ6p1SCeud0g1sHhIS72DUHPPkFqz2ZZf49qW
+ XfnEgkz/rnA9/6NnNf+fZDL/nmIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/n2Uz/7OUkP+6vPX/v8L8/7e7+/9bXuj/Oz69qT09egsAAAADAAAABQAAAAUAAAAJAAAADQAA
+ ABEAAAAVAAAAHQAAACUAAAAvAAAAOwAAAEckJWKDP0LO9zc62f82Otf/NjrX/zg72f9AQ+H/WVz4/0NG
+ 0O80NYhFAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAkcHEAnPT+21Tk82f84O9j/ODvY/zg72P8/Qt7/Vln0/1BT6f8zNYiRBAQIJQAA
+ AB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAfAwMJLTc7qsM6Pdj/ODvY/zg7
+ 2P85PNj/PkHd/1RX8v9UV+3/Ojyrq49eOG+hZTT5nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/nmIx/55i
+ Mf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/oWU0+6NrOtOlbkFxpW9AIaqBRQX///8B////Af//
+ /wH///8B////Af///wH///8B////AYZbMQ2sdkYtu4BMg8eHUvG9fEj/qmw6/6NmNf+fYzL/nmIx/55i
+ Mf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYTD/mGND+2NYqtdRVdHXXF/U509S
+ ze0/Qq9tICAuBwAAAAsAAAAPAAAAEwAAABsAAAAhAAAAKQAAADEAAAA5AAAAQQAAAEsAAABRCwwdYUND
+ o8VQUOP/OT3Z/zg82P84PNj/OT3Z/0JG4v9VWfX/QkTM4zY3iDUAAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCc9QLfVOj7a/zk9
+ 2f85Pdn/OT3Z/0BD4P9XW/X/UVXq/y4yfpsCAgQ/AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA
+ ADsAAAA7AAAAOwAAAD0CAgZFNzqlyTo+2P85Pdn/OT3Z/zo+2f8+Q97/VVny/1RY7v9LRJ2/nmY24Z9j
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/6Jo
+ N+2kbj57pHhGGf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGVaTsDpnBDPbN5Rr+0dUH9p2o3/6FlM/+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+gZDH9oGk9oU1Ghxc7OYwbPDuPHx0dPxMAAAAVAAAAHQAAACUAAAAvAAAAOQAA
+ AD8AAABHAAAATQAAAFMAAABVAAABWRobTIFeW6rNd3Ts+0tN5P85Pdn/OT3Z/zk92f86Ptr/RUjk/01R
+ 7f8/QsTJNTaFHf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJHBxAJz5Bt9U8QNv/Oz/Z/zs/2f87P9r/QUXh/1hc9f9TV+r/LS13pQEB
+ A1UAAABVAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQEBBFk2OKLNPEDZ/zs/
+ 2v87P9n/Oz/a/0BE3/9WWvP/Wlzo/39da/ehZDH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/6BjMf+iaDfVo3BAR593Rwn///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpXBBF6xyQaerbjv7o2Y0/6Bk
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+iZzbrnGQ9MwIB
+ AA0AAAAXAAAAIwAAADEAAAA7AAAARQAAAE0AAABTAAAAVQICCFsRETFvIB9Rg0pHhatsaLPXl5De846H
+ 8/9UVuj/PEDb/zs/2f87P9n/Oz/a/z1B2/9ESOP/Rkrk/z5AsaE0NHwJ////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnP0G31T1B
+ 3P89Qdr/PUHa/z1B2/9DR+H/Wl71/1VZ6/88PI/DLi1hiy0sYo0tLGKNLSxijS0sYo0tLGKNLSxijS0s
+ Yo0tLGKNLSxijS0sYo0tLGGLLSxijT5Aq9s+Qtn/PUHa/z1B2v89Qdv/Qkff/1hc9P9pY9T/mmRD/6Bj
+ MP+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+hYzH/o2c326Jt
+ Pj+geEoD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8Bp3FCG6lvP6emaTf7oWQy/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bj
+ Mf+gYzH/oGMx/6BjMf+gYzH/oGMx/6FkMv2cZTqdEw0IIQAAADMAAABBAAAASwAAAFEBAQRXCwwjZyEh
+ S39GRYGlXVqjx4R+yeWYkOHzmpLw+4yF9P9oZ+7/Sk3j/z9C3P89Qdr/PUHa/z1B2v89Qdv/P0Pd/0RI
+ 4v9DRtL7P0GmSSwsYwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCc/QrfVP0Pd/z5C2/8+Qtv/P0Pc/0VJ4v9cX/X/bGz0/314
+ 4/uAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3eXXl/UtO
+ 3/8+Qtv/PkLb/z9D3P9ESOD/Wl70/4JpnP+gZDL/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bj
+ Mf+gYzH/oGMx/6BjMf+gYzH/oGMx/6NnNu2ibD5Pl4VGA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpW5CI6Vq
+ OcOjZjP/oGQx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bm
+ N+cxIRRNAAAASwEBBFcKCx5jKitZh0pJja93c7nXk4za8Z6W7vuVj/b/fXnz/2Vk7f9SU+b/Rkjh/0FE
+ 3f8+Qtv/PkLb/z5C2/8+Qtv/PkLb/z5C2/9ARN3/Qkbe/0FEv8c/QI4T////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0BD
+ uNVBRd7/QETc/0BE3P9ARNz/Rkri/1FU7P9PUeX/UFLl/1BS5f9QUuX/UFLl/1BS5f9QUuX/UFLl/1BS
+ 5f9QUuX/UFLl/1BS5f9QUuX/UFLl/1BS5f9RUuX/SUvi/0FF3f9ARNz/QUXd/0VK4v9hX+H/l2pd/6Bk
+ L/+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+iZjP7pWw9h5mA
+ TAX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BpW0/VaNnNfWgZDH/oGQx/6BkMf+gZDH/oGQx/6Bk
+ Mf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/omYz/18/JIcOECppNzd2oXl1uNmhmeX3pJv0/42H
+ 9/9savD/VFXo/0hK4v9DRt//QUXd/0BE3P9ARNz/QETc/0BE3P9ARNz/QETc/0BE3P9ARNz/QETc/0FF
+ 3f9BRcrtQkSoSUpKlgP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkcHEAnQUO41UNG3/9CRt7/Qkbe/0JG3v9DR9//Qkbe/0JF
+ 3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG
+ 3v9CRt7/Qkbe/0JG3v9DRt7/R0vk/3hiov+gZjb/oWQw/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6Fk
+ Mf+hZDH/oWQx/6FkMf+hZDH/oWQx/6NpOcOlc0MV////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGpbkMJo2o7paJlMv2hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6Fk
+ Mf+hZDD/j2Va8YeAze+on/X9iYT3/2Rj7v9OUOb/Rkjh/0NH3v9CRt7/Qkbd/0FG3f9CRt7/Qkbe/0JG
+ 3v9DR97/Q0ff/0RI4P9FSeH/Rkri/0ZK4v9ESN//QkXL6UBBq1////8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwc
+ QCdCRLjVRUjg/0VH3v9FR97/RUff/0dK4f9IS+P/SEzj/0hM4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hM
+ 4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hL4/9JTOP/Rkjg/0VI3/9JTOX/iGN5/6Fk
+ MP+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+jZjT7o2w8aaSI
+ TwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGlbUJJo2c18aFkMf+hZDH/oWQx/6Fk
+ Mf+hZDH/oWQx/6FkMf+hZDH/omUx/6JlMv+jZTL/omUy/6JlMf+kcE7/hXjY/1xb6/9LTeP/RUng/0VI
+ 3/9ER97/RUjf/0VI3/9FSN//RUjf/0ZJ4P9HSuH/SEvi/0pN4/9MUOf/UVTr/1FU6/9NUOj/SEvc/0RG
+ x9VBQq1XOTmeB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0NFudVHSuH/Rknf/0ZJ3/9HSuD/TVDm/2hr
+ 9P+Ag/j/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE
+ +P+BhPj/fYD4/1xf7P9HSuD/R0rg/1JR2P+WZVL/omQv/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6Jk
+ Mf+iZDH/omQx/6JkMf+iZDH/omQx/6NpONWlckEl////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaZtSAekaTm9o2Uy/6JkMf+iZDH/omQx/6JkMf+iZDH/o2Uy/6NlMv+lZjP/pWcz/6do
+ Nf+qajX/q2w3/6JqRP9kVrP/R0rh/0ZJ3/9GSd//Rkng/0dK4P9HSuH/SEvi/0pN4/9MT+b/TlHp/1NW
+ 7P9ZXPH/XF/1/11h9/9XWvH/TE/h/UdKz+VDRrqTQkOrNTo9igX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAkcHEAnQ0a61UlM4v9IS+H/SEvh/0hL4f9OUef/bXD5/6Sn/f+usfv/rrH7/66x+/+usfv/rrH7/66x
+ +/+usfv/rrH7/66x+/+usfv/rrH7/66x+/+usfv/rrH7/66x+/+Qk/P/UVTj/0hL4P9IS+L/Z1iz/59l
+ Ov+iZDD/omQx/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6JkMf+jZTH/pGs7n6Bx
+ Pgf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNqPGOlZzT3omQx/6Jk
+ Mf+kZjL/pGYy/6VmMv+mZzP/qGk1/6prN/+rbTn9qG5D/5xtZf99YY7/YlW3/0xM2P9HSuD/R0rg/0dK
+ 4P9JTOL/Sk3j/01Q5v9SVer/WFvw/2Fk9v9navr/Z2r7/2Fk9/9ZW+39UVPd9UdKyNtBQ7KRPDyaOyws
+ aQsAAAAHAAAABwAAAAcAAAAFAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCdER7rVSk3j/0pN4v9KTeL/Sk3i/1BT
+ 6P9navn/YmXw/0xNw9tOUMfDT1HKwU9Sy79PUsu/T1LLv09Sy79PUsu/T1LLv09Sy79PUsu/T1HLv05R
+ ycFNT8XFTE7M8UtO4f9JTOH/Sk3i/0pN4/9/YIT/o2Yx/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6Nl
+ Mf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6RnM/+ibj1N////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BpHFCNaRoNuekZTH/pWcz/6doNP+pajX/rG03/65vOv+sbzz1pGo7yX9b
+ V8VtY7/3WVjj/0hM5f9ITOP/SUzh/0lM4f9JTOH/S07j/05R5v9VWO3/YmX4/2ls/P9pbPz/ZGf2/1lb
+ 5v9NUNP3SErEw0RFtZE6OphbJydgKwoKGB0AAAAbAAAAGwAAABkAAAAXAAAAFQAAAA8AAAAHAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAJHBxAJ0VHu9VMT+T/S07i/0tO4v9MT+P/UlXp/2ls+v9iZe//ODiTiR4eSBcvL3YNNTWNCzU1
+ kgs1NZILNTWSCzU1kgs1NZILNTWSCzU1kgs1NY4LLCxsDRcXOiFAQ7LBTE/i/0tO4/9LTuP/TE/j/49j
+ Zf+kZTD/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+kZTH/pWk236Ny
+ Px3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGoaEMFpms4sahp
+ NP+tbTf/r3A8/65xPd+scT+3pW4/dYtbODMpHiYzRUa0wVdY6f9LTuP/S07i/0tO4v9LTuL/S07j/0xP
+ 5P9RVOn/Wl3y/19i9v9aXez/UVTa8UtNystHSLqbQ0SvX0FBoCk4OIkNCgoZBwAAARsAAAAxAAAAPQAA
+ AD8AAAA9AAAAOQAAADcAAAAxAAAAJQAAABMAAAAH////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnRUi81U1Q5f9NUOP/TVDj/01Q
+ 5P9UV+v/a277/2Rm8P83OJWHCAgWDwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAFBgcRGUFEs71NUOP/TVDk/01Q5P9OUeH/nGdI/6RlMP+kZTH/pGUx/6RlMf+kZTH/pGUx/6Rl
+ Mf+kZTH/pGUx/6RlMf+kZTH/pGUx/6VmMf+kajm5oHdCD////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGlbj1prXE+061yQKOqckJfpnNEKaVxQxF2UzIHAAAACyQk
+ WkVNT83nUVPn/01Q5P9NUOT/TVDk/05R5f9OUeX/T1Lm/1JV6P9OUdjzSkzHwUZHu3VERK87QkKmGT4+
+ mgk7O40D////AQAAAAUAAAAVAAAALQAAAEMAAABRAAAAVQAAAFMAAABTAAAATwAAAEcAAAAzAAAAGQAA
+ AAn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAACRwcQCdGSLzVT1Lm/05R5P9OUeT/T1Ll/1ZZ7P9tcPv/ZWjw/zc6locICBcPAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcGBhEZQkSzvU9S5P9OUeT/TlHl/1lV
+ 0v+iaD7/pWYw/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH/pmcx/6Nr
+ OpWdcTwF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaFv
+ Qg+kcUIlonNHC6qIVQP///8B////AQAAAAMAAAANMTF/Y09Q2PVPUub/T1Ll/09S5f9QU+b/U1bq/1VY
+ 7P9OUd/9RknBzz5ApF07PZgbLi5xBQAAAAMAAAADAAAAAwAAAAMAAAAFAAAADQAAACETFDFJNDRzizQ0
+ a48vMGaRKipahyMiSn8fH0Z5HBxEax0eSU0ICBUbAAAAB////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0dJvNVRVOf/UFPl/1BT
+ 5f9RVOX/V1rs/29y+/9navD/OTqWhwgIFQ8AAAAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABwYGERlDRbO9UVTl/1BT5f9QU+b/aVu4/6RnN/+lZjD/pWYx/6VmMf+lZjH/pWYx/6Vm
+ Mf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH9o289daJ3QQP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAk5O5JzUlTg+1JV5v9RVOb/UVTm/1NW6P9bXvD/YGP0/0lLxOUhI1ZJAQEEFQAAAA0AAAAJAAAABwAA
+ AAcAAAAHAAAACQAAAA8AAAAbAAAAMS4udIFratvziITq+YeC5vmHguT3hYDg9YSA3vOBfdvxXVzE3ycn
+ aysAAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAkcHEAnSEq91VNW5/9SVeb/UlXm/1JV5v9ZXO3/cXT8/2ls8f86OpaHCAgVDwAA
+ AAX///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAHBgYRGURFtL1TVeb/UlXm/1JV
+ 5/9zX6X/pmYy/6ZmMf+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6Zo
+ NP2lckJP////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAQEDBzw+mnNRVeD7UlXn/1JV5/9TVuf/Vlnr/2dq
+ 9/9navP/Pj+juQEBA0MAAAAxAAAAJQAAAB0AAAAZAAAAGQAAABsAAAAfAAAAJwAAADUAAABHP0GgvVpb
+ 6f1cXuz/X2Dt/2Jj7/9kZfD/aWnz/3R1+/9TVtDnLTJ4JwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCdISr3VVVjo/1RX
+ 5/9UV+f/VFfn/1pd7v9ydfz/a23x/zo6locICBUPAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcGBhEZQ0W0vVRX5v9UV+f/U1fo/3tilf+nZzD/pmYx/6ZmMv+mZjL/pmYy/6Zm
+ Mv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmk1+6RuPyX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAADOTuVW1BT2/dVWOn/VFfo/1RX6P9YW+z/bXD5/3Bz9v8/QaPFBQUNWQAAAEsAAABDAAAAOwAA
+ ADcAAAA3AAAAOQAAAD0AAABFAAAATRgZQHVXV87tWlzt/1RW5/9TV+j/U1fo/1RX6P9dYPD/aGv5/0tN
+ xs8uK3cZ////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJHBxAJ0lLvdVWWen/VVjo/1VY6P9WWej/XWDv/3N2/P9sbvL/OjqWhwgI
+ FQ8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwYGERlERrS9Vlnn/1VY
+ 6P9WWef/gmOK/6dnL/+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6Zn
+ Mv+majb5oW0/F////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAM6PJQ/T1LV7Vpd7v9ZXOz/Vlnp/1hb
+ 6/9jZvT/bHD6/1NW1/c0NYOtCwscZQAAAVcAAABTAAAAUQAAAFEAAABRAAAAVQEBBFkSEjNvW1mr0XJy
+ 8P1YWuv/VVjo/1VY6P9VWOj/V1rq/19i8v9eYe//RUiznzIjawn///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnSUu91Vda
+ 6v9XWun/V1rp/1da6f9eYfD/dHf8/21w8v86OpaHCAgVDwAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHBgYRGUVHtL1XWuj/V1rp/1ha5f+HZYD/p2cv/6ZnMv+mZzL/pmcy/6Zn
+ Mv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/p2cy/6ZpN/embD8R////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATY2fQ9LTsXJYmXz/2Nm9P9bXu3/WFvr/1pd7f9jZvX/YGLx/1lb3vtLTLDRODqApygo
+ V4ccHD95FBUycRgYN3MwMWKPSkmHrYWAxuWgmfH9bW7z/1ha6v9WWen/Vlnp/1da6f9aXez/X2Ly/1ZZ
+ 3/VBRKVZKChfA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCdKTL3VWl3r/1lc6v9ZXOr/Wl3q/2Bj8f93ev3/b3Lz/zo6
+ locICBUPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcGBhEZRke0vVlc
+ 6P9ZXOr/Wl3m/4hmf/+oZy//p2cy/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2cy/6dn
+ Mv+nZzL/pmk366pzRA////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AUVHsntnaen3gYT9/2pt
+ 9/9eYfD/WV3r/1te7P9bXu3/XF/u/29v9v9+e/D9f3zk94F92/WGgtjzlY/c86eg5vmyq/H9npr7/2tr
+ 8/9bXuz/WFvq/1hb6v9YW+r/WVzq/1te7P9aXer/TE7EwzU1fRH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHR1BJUtN
+ vtVcX+z/W17r/1te6/9cX+z/YmXy/3l8/f9xdPP/OzuWhQgHFA8AAAAF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAABwcHEhlHSbW9W13q/1te6/9dX+f/imd7/6loMP+oaDL/qGgy/6ho
+ Mv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+nazjjpnNID////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BPkCiHVNUy8mPkvn/oKP+/3N2+v9hZPL/W17t/1pd6/9aXev/W13s/19h
+ 7v9kZvH/bGz0/3Z29/96efj/dHP2/2lp8/9gYe//W13r/1pd6/9aXev/Wl3r/1pd6/9bXuz/XF/s/1NW
+ 1/FDRKhT////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcgIEkhTE+/1V5h7f9dYOz/XmHt/2Bj7/9kZ/P/en39/3N1
+ 8/87PZiDCAkYDQAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFCAgUFUhK
+ t7tdYOv/XF/s/2Bh5/+Oanj/qWgw/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6ho
+ Mv+oaDL/qGgy/6drONuidkQN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BRESsN2Jk
+ 1de3uvz/0dP+/5mc/f9ydfr/ZGfz/19i7/9dYOz/XF/s/1xg7P9dX+z/XGDs/11g7P9dYOz/XWDs/11g
+ 7P9dYO3/XmHt/15h7f9eYe7/X2Lu/15h7v9XWt31SEq2f0FClgv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAykp
+ XRtOUMHTX2Lu/2Zp8P9xdPj/c3b6/3R3+v9/gv7/dHb0/z4/oX0PECsHAAAAA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAMMDSAPSk27t15h7P9laO//cnT0/5NyiP+qaTH/qmkz/6pp
+ M/+qaTP/qmkz/6ppM/+qaTP/qmkz/6ppM/+qaTP/qmkz/6ppM/+qaTP/qWw526J2RA3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wFAQJcFR0iwUWZo1dnCxPn/6ur+/8rL/v+gov7/goX7/3Bz
+ +P9oa/T/ZGfy/2Jl8f9hZPD/YmXw/2Jl8f9jZvL/ZWjz/2hr9P9pbPX/am33/2Zp9f9hZO//V1rb90pL
+ u5M/QKAR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BNTl/E09RxM96fPP/t7r7/8TG///Exv//w8b//7W4
+ //97ffT/QUOodxocUQX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ARka
+ QAdLTb+1cHPv/7G0+v/Exfz/tZWU/65tN/+wbjr/sG46/7BuOv+wbjr/sG46/7BuOv+wbjr/sG46/7Bu
+ Ov+wbjr/sG46/7BuOv+tbz7bonZEDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wE1N48FPj+lNV9izcOen+752dn7/+zt/v/j5P//yMr+/7Cz/v+go/7/lpn9/4uO+/+Mjvz/jY/8/4qN
+ /P+Kjf3/jI/+/4GD/v9ydPn/YWPr/VRX0uFHSrNvQUOgE////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wE9P5cRUFG/z3x+6f+Tler/k5Xq/5OV6v+Tler/kZPr/3J05v9CRax1MzOIA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BNTqMBUlNu7N1d+b9kpTr/5KU6f+fgZP/uHVF/7h2
+ R/+4dkf/uHZH/7h2R/+4dkf/uHZH/7h2R/+4dkf/uHZH/7h2R/+4dkf/uXZI/7J0Rummd0QP////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BOz6hFUVItHVdX8zBfX/c97Cx
+ 8//Q0f7/4OH+/+Hj/v/Z2/7/zc/+/7/B/v+wsv7/oqT+/5OV/v90dvD/YWPg/VNVzNFHSLOHQkOrNSMl
+ WwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUREiANCRKk/QUSuWz9Crls/Qq5bP0KuWz9C
+ rls/Qq1dQ0auXURErBf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BREWqJ0FFrlk+Qq5bPUCtW45mZKe9ekz/vHlM/7x5TP+8eUz/vHlM/7x5TP+8eUz/vHlM/7x5
+ TP+8eUz/vHlM/7x5TP+8eUz/tHZJ76N0RhH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AS4lgAk1OqIpQESxaUtMuJVaXMq1XmDQx2Bi1NFgYtPXWlzOzVZY
+ zsNSU8azTE69p0VGrm1AQqovOTmcDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEvOokDKTqAAyk6gAMpOoADKTqAAyw7gQM2NogD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BKzuHAyk6gwM1N3gDqnNHb7x6
+ Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+0d0r5o3ZEF///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEsLIgDLS2XBTg5rA05NaYVOjyiGz0+pB86P6AZPT6iEzs8pgs7PqEHNTWIA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGncUNfunlN/bx6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6
+ Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7d3S/uldEcv////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaZx
+ QTe5eUz3vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/uXlN/ahx
+ RlOSaEgD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bo3JGD7h4TO+9e0//vXtP/717T/+9e0//vXtP/717
+ T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0/9qXJEc5tzOgP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGRckkDsnZI2b57T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0//vXtP/718
+ T/+sdEebonZFBf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGwdEe5vnxQ/718UP+9fFD/vXxQ/718
+ UP+9fFD/vXxQ/718UP+9fFD/vXxQ/718UP+9fFD/vXxQ/7J2S7eqcUQN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Aa50R3+9fVD7vXxR/718Uf+9fFH/vXxR/718Uf+9fFH/vXxR/718Uf+9fFH/vXxR/718
+ Uf+9fFH/t3lN8alzRjP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bn25BCZltQAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bp3BCUbp7T/W9fVL/vX1S/719
+ Uv+9fVL/vX1S/719Uv+9fVL/vX1S/719Uv+9fVL/vX1S/719Uv+7fFH/rXRHaZloNAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaZ1Qw24gFGJwI1bg7J/UU2seU4ZrHZIC55t
+ QAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGmcUAZuHlO1b99U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759
+ U/++fVP/vn1T/799U/+xdkqvpHVDDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BqXBGPcSHWuvxuYj/9L+N+eGufO/XpXXHyJVmibF9T2GldEUrnmBACf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGwdUihvnxS/b59
+ U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/7l7T+2pdEc/////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGudUmBvn1S+8yJXv/hnG//7Kh5//Oz
+ g//2vIr99b+N++q2hOvbp3fVy5lqo8OMXmeud0o7oG4/Gf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AatyR127fFH3vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759
+ U/++fVP/vn1T/759U/++fVP/vX5T/7J4TJebaz4J////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BpG5AC7V5TdG+flT/v39V/8mHXP/QjGD/1ZFk/9uXav/jnnD/6ad4//Kzg//zuIf987yK+ey6
+ iOvdqnjRu4lZnaJuPhv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bpm9BI7Z5
+ TtO/flT/vn5U/75+VP++flT/vn5U/75+VP++flT/vn5U/75+VP++flT/vn5U/75+VP++flT/unxR56x0
+ SEv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRuRAOrc0dfvX5T975+VP++flT/vn5U/8CA
+ Vv/Dglf/x4Va/8uIXf/PjGH/1JBk/9qWaf/inW//5qR1/9ygcf/BiFrVonFCIf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wG6dzMDr3VJgb9/VPu/f1X/v39V/79/Vf+/f1X/v39V/79/
+ Vf+/f1X/v39V/79/Vf+/f1X/v39V/79/Vf/AgFX/tntOw6BuQhv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BpHVFH7R5TdPAf1X/v39V/79/Vf+/f1X/vn9V/75/Vf+/f1X/v39V/8GAVv/Eglj/xoVa/8eG
+ W//Cglf/v35V/7B1SZWldE0H////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGtckcpuXtQ579/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/
+ Vv/EhFn9tntQtaNrQQ////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaVwQQ2wd0qhv39V/79/Vv+/f1b/v39W/79/
+ Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+9flT/rHdHRZN0NAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRvRQ2vdUqjv4BW/7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/8KDWf/LimD9u35VpaZwRhn///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGmbkIPr3dKhb1/VPe/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/v4BX/7Z6T9mkckER////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AahyRi24fFLlwIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wYFY/8iIXv/Vk2j7xYldubB6TDuiaUAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bp3FHKbJ4TJ2+f1X1wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP++gFb7rHRHe5VzMgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpnJFBax0SYW/gFf7wIFY/8CB
+ WP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/xYVc/9KQZf/loHP/25xu27yG
+ WX2mdEkjl2c8Bf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGjZ0ADpnBEEax0
+ SVm3e1DXwIFX/cCBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wIFY/7l8Utmnc0Il////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BoGpEE7Z7UNnBg1r/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/8CCWf/DhFv/yopg/9SSaP/ppnn/8rWG/dqod9vAi16FrHhLP55rPRNgQRAFUDchA///
+ /wH///8B////Af///wGgRDYDp3JEJ6t0SG+3fFC5v4JX98GDWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf+/gVf9sXhMiZhmIgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BqXRHQbyA
+ VuPEhVz/wYNa/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/ChFr/yIhf/9GQ
+ Zv/dnHD/8bKD//nCkv/wvYz53q187dakdMnOm2yxzZdpl8qRZI/HjF6fxolcrcSHW9PGiF3xyIle/cWH
+ XP/Bgln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/7Z7UM+ldEYh////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGfZTUFsHdMf8SGXPfHiF//xIVc/8KEW//Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv/Cg1v/xode/82OZP/WlWr/3pxw/+akeP/vsIL/9LaH//K0
+ hv/ysoP9761//emmef3enHD90ZBm/8iJYP/Ehl3/woRb/8GDWv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv+8gFX1q3VIXaJuOgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGib0IRtn1Rl8uMYfvJi2L/xYde/8OFXf/BhFv/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GD
+ W//BhFv/woVc/8aIXv/Li2H/z49l/9STaP/XlWv/1pVr/9aVav/Uk2n/0ZFn/8uMY//Fh17/woVc/8GE
+ XP/Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GD
+ W//Bg1v/v4JY+7B4TJmkcUIR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGncUITuX9SndCRZv3MjmX/x4ph/8WH
+ X//ChV3/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/ChVz/xIZd/8WH
+ Xv/GiF//x4hf/8aIXv/Fh17/w4Vd/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GE
+ XP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEW/+zek2xpXJDG////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGcbDYLuH5RodWVa/3QkWn/yoxk/8aJYf/ChV7/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/tHtR16V0QiH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGZaTgJuH5SkdSU
+ avfZmHD/z5Bp/8qMZP/GiGH/w4Zf/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wINb/bV8UsGnc0cr////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGeajsPt35TbdSVatvlo3n/2ppx/9GSav/Nj2f/yYpj/8SG
+ X//ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KF
+ Xv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/76C
+ WvezeVCdqXRHIf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGSZT0FsXtNOdOWaavqqn756qp//+Cgdv/Xl27/0JBo/8mMZP/FiGH/w4Zf/8KFXv/ChV7/woVe/8KF
+ Xv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KF
+ Xv/Dhl//woVe/8KFXv/ChV7/woVf/8KFXf+7gFbprnZLfahzRBX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bn3BCDb2FWHnXn3Hd77eK+/Gz
+ if/kpHr/25ty/9WWbv/PkWn/yY1l/8aKY//EiGH/w4dg/8KGX//Chl//woZf/8KGX//Chl//woZf/8KG
+ X//Chl//woZf/8KGX//Dhl//w4dg/8SIYf/EiGH/xYlh/8WIYf/EiGD/xIhh/8SIYP++hFr1tHtRwalz
+ SD2XYzIF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BSCYAA59sPh25hVh33Kl82/LBk/34wpb/8bWJ/+enff/ennX/2Jlx/9SV
+ bf/Qkmv/zI9o/8qNZv/JjGb/yYxm/8iLZf/Hi2T/yIxl/8iMZf/IjGX/yIxl/8mMZv/KjWb/yYxl/8mM
+ Zf/JjGb/yo5n/8qNZv/AhVz5tHxQu6l0R1OfazwL////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AYpc
+ LQOreEcXuIdZUc6dbqHgtYbh8MOV+fnIm//3wZX/8baL/+usgv/lpXz/3593/9ucdP/ZmnL/1Zdw/9SW
+ b//Ulm//1ZZv/9SWb//UlW7/1ZZu/9aXb//Wl2//0ZNr/8uOZvm/hVvXtXxSmah2SEmhdUEN////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpHBEC613SSfCk2VbxZVnm9Sl
+ ebnluYvZ6ryP8e69kPnwuo398baL/fCziP3sroP96aqA/eeofv3kpXr94aJ4/d6edPnXmnDpy5Bl1cGH
+ XL+2f1SPs3xRU6ZzSCOhb0QH////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wF7PQoFpXVKDap5SyeueUtFw5BiU8eWZ23Kl2mDzZhqg8qT
+ Zo/Ij2KTxo5hfcKKXW2+h1pjuYJVVax2STmqdUchpXdEDZJcKwX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BTSwAA2pBAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Classes/cCell.cs b/Cell-by-Cell and DB/Simulator/Classes/cCell.cs
new file mode 100644
index 0000000..2178cb2
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Classes/cCell.cs
@@ -0,0 +1,468 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HCSAnalyzer.Classes._3D;
+using HCSAnalyzer.Classes;
+using System.Drawing;
+using HCSAnalyzer.Simulator.Forms;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+
+namespace HCSAnalyzer.Simulator.Classes
+{
+ [Serializable]
+ public class cCellPopulation : List
+ {
+ public string Name;
+ public string Information;
+
+ ///
+ /// Variables for changing parameter within the plates
+ ///
+ public cListVariables AssociatedVariables;
+
+ public cCellPopulation(string Name)
+ {
+ this.Name = Name;
+ }
+
+ public cExtendedList GetVolumes()
+ {
+ cExtendedList ToReturn = new cExtendedList();
+ foreach (var Cell in this)
+ {
+ ToReturn.Add(Cell.GetVolume());
+ }
+ return ToReturn;
+ }
+
+ public void AddNewCell()
+ {
+ //cCell NewCell = new cCell(this[0].Type,
+ }
+
+ }
+
+ ///
+ /// Define the cell velocity
+ ///
+ ///
+ [Serializable]
+ public class cVelocity
+ {
+ cPoint3D Displacement = new cPoint3D(0, 0, 0);
+ public double Speed = 1;
+ public double Weight_Left;
+ public double Weight_Right;
+ public double Weight_Top;
+ public double Weight_Bottom;
+ public double Weight_Front;
+ public double Weight_Back;
+
+
+ public cVelocity(double[] DisplacementWeights)
+ {
+ this.Weight_Left = DisplacementWeights[0];
+ this.Weight_Right = DisplacementWeights[1];
+
+ this.Weight_Front = DisplacementWeights[2];
+ this.Weight_Back = DisplacementWeights[3];
+
+ this.Weight_Top = DisplacementWeights[4];
+ this.Weight_Bottom = DisplacementWeights[5];
+ }
+
+ public cVelocity(double Front, double Back, double Left, double Right, double Top, double Bottom)
+ {
+ this.Weight_Left =Left;
+ this.Weight_Right = Right;
+
+ this.Weight_Top = Top;
+ this.Weight_Bottom = Bottom;
+
+ this.Weight_Front = Front;
+ this.Weight_Back = Back;
+ }
+
+ public cVelocity()
+ {
+ this.Weight_Left = 1;
+ this.Weight_Right = 1;
+
+ this.Weight_Front = 1;
+ this.Weight_Back = 1;
+
+ this.Weight_Top = 0;
+ this.Weight_Bottom = 0;
+ }
+
+ public cPoint3D GetDisplacement(Random RND)
+ {
+ this.Displacement.X = this.Speed*(this.Weight_Right * RND.NextDouble() - this.Weight_Left * RND.NextDouble());
+ this.Displacement.Y = this.Speed*(this.Weight_Front * RND.NextDouble() - this.Weight_Back * RND.NextDouble());
+ this.Displacement.Z = this.Speed*(this.Weight_Top * RND.NextDouble() - this.Weight_Bottom * RND.NextDouble());
+
+ return Displacement;
+ }
+
+
+ }
+
+
+ ///
+ /// Define the cell cycle
+ ///
+ [Serializable]
+ public class cCellCycleStage
+ {
+ public string Name;
+ // public List
+ /// Define the cell cycle
+ ///
+ [Serializable]
+ public class cCellCycle
+ {
+ public List ListStages;
+
+ public cCellCycle(List ListStages)
+ {
+ this.ListStages.AddRange(ListStages);
+ }
+
+ //public
+
+ public cCellCycle()
+ {
+ // // this.ListProba = new List();
+ // //// List ListVolumeOverTime = new List();
+ // // for (int t = 0; t < 20; t++)
+ // // ListProba.Add(5);
+ // // for (int t = 0; t < 60; t++)
+ // // ListProba.Add(1);
+ // // for (int t = 0; t < 20; t++)
+ // // ListProba.Add(3);
+
+ }
+ }
+
+ //public enum eCellType { REGULAR, CANCER, SCENESCENT, APOPTOTIC, NECROTIC};
+
+ public class cListCellType : List
+ {
+ public cCellType FindType(string Name)
+ {
+ foreach (cCellType item in this)
+ {
+ if (item.Name == Name) return item;
+ }
+ return null;
+ }
+
+ public int FindIdxType(cCellType Type)
+ {
+ int Idx = -1;
+ foreach (cCellType item in this)
+ {
+ Idx++;
+ if (item == Type) return Idx;
+ }
+ return Idx;
+
+ }
+ }
+
+ [Serializable]
+ public class cTransitionValue
+ {
+ public cCellType DestType;
+ public double Value;
+
+ public cTransitionValue(cCellType DestCellType, double Value)
+ {
+ this.Value = Value;
+ this.DestType = DestCellType;
+ }
+ }
+
+ [Serializable]
+ public class cListTransition : List
+ {
+ public cTransitionValue FindTransitionFromDestination(string DestTransitionName)
+ {
+ foreach (cTransitionValue item in this)
+ {
+ if (item.DestType.Name == DestTransitionName) return item;
+ }
+
+ return null;
+ }
+
+ }
+
+ [Serializable]
+ public class cCellType
+ {
+ public cCellCycle Cycle { get; private set; }
+ public Color TypeColor;
+
+ public int CurrentType;
+ private List CycleProba = new List();
+ public cListTransition ListInitialTransitions = new cListTransition();
+ public cVelocity Velocity;
+
+ public string Name { get; private set; }
+
+ public void SetCellCyle(cCellCycle NewCycle)
+ {
+ this.Cycle = NewCycle;
+ }
+
+ public cCellType(int CellType, FormForSimuGenerator Parent)
+ {
+ this.CurrentType = CellType;
+
+ // for(int i=0;i<100;i++) CycleProba.Add(i);
+
+ switch (CellType)
+ {
+ case 0:
+ this.TypeColor = Color.LightGreen;
+ this.Name = "Regular";
+ this.Cycle = new cCellCycle();
+ this.Velocity = new cVelocity();
+ this.ListInitialTransitions.Add(new cTransitionValue(this,1));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Cancer"), 0.0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Scenescent"), 0.0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Apoptotic"), 0.0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Necrotic"), 0));
+ this.Velocity.Speed = 20;
+ break;
+
+ case 1:
+ this.TypeColor = Color.Blue;
+ this.Name = "Cancer";
+ this.Cycle = new cCellCycle();
+ this.Velocity = new cVelocity(new double[] { 1, 1, 1, 1, 1, 1 });
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Regular"),0));
+ this.ListInitialTransitions.Add(new cTransitionValue(this, 1));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Scenescent"), 0.0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Apoptotic"), 0.0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Necrotic"), 0.0));
+ this.Velocity.Speed = 40;
+ break;
+
+ case 2:
+ this.TypeColor = Color.Yellow;
+ this.Name = "Scenescent";
+ this.Cycle = new cCellCycle();
+ this.Velocity = new cVelocity(new double[] { 1, 0.95, 1, 1, 1, 1 });
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Regular"),0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Cancer"), 0.0));
+ this.ListInitialTransitions.Add(new cTransitionValue(this, 1));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Apoptotic"), 0.0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Necrotic"), 0));
+ this.Velocity.Speed = 10;
+ break;
+
+ case 3:
+ this.TypeColor = Color.Red;
+ this.Name = "Apoptotic";
+ this.Cycle = new cCellCycle();
+ this.Velocity = new cVelocity(new double[] { 0, 0, 0, 0, 0, 0.1});
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Regular"),0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Cancer"), 0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Scenescent"), 0));
+ this.ListInitialTransitions.Add(new cTransitionValue(this, 0.1));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Necrotic"), 0.0));
+ this.Velocity.Speed = 1;
+ break;
+
+ case 4:
+ this.TypeColor = Color.Wheat;
+ this.Name = "Necrotic";
+ this.Cycle = new cCellCycle();
+ this.Velocity = new cVelocity(new double[] { 0, 0, 0, 0, 0, 0.1});
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Regular"),0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Cancer"), 0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Scenescent"), 0));
+ this.ListInitialTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType("Apoptotic"), 0));
+ this.ListInitialTransitions.Add(new cTransitionValue(this, 1));
+
+ this.Velocity.Speed = 1;
+ break;
+
+ }
+
+ }
+
+
+ public cCellType(string Name, cVelocity Velocity, Color Color, cCellCycle NewCycle, List NewListInitialTransitions)
+ {
+ this.Velocity = Velocity;
+ this.Name = Name;
+ this.TypeColor = Color;
+ this.Cycle = NewCycle;
+ this.ListInitialTransitions.AddRange(NewListInitialTransitions);
+ }
+
+
+
+ }
+
+
+ public class cInfoCell
+ {
+ cCell Cell;
+
+ public cInfoCell(cCell Cell)
+ {
+ this.Cell = Cell;
+ }
+
+ public double GetDistPath()
+ {
+ double Dist = 0;
+ for(int Mem=0;Mem PreviousStates = new List();
+
+ public bool MemoryOn = false;
+
+ public cCell(cCellType intialCellType, cPoint3D InitialPosition, double CurrentCyclePos)
+ {
+ BasicInit(intialCellType, InitialPosition);
+ this.CurrentCyclePos = CurrentCyclePos;
+ }
+
+
+
+
+
+ public cCell(cCell CellToCopy)
+ {
+ this.CentroidPosition = new cPoint3D(CellToCopy.CentroidPosition.X,
+ CellToCopy.CentroidPosition.Y,
+ CellToCopy.CentroidPosition.Z);
+ this.CurrentCyclePos = CellToCopy.CurrentCyclePos;
+ }
+
+
+
+ void BasicInit(cCellType intialCellType, cPoint3D InitialPosition)
+ {
+ this.CentroidPosition = new cPoint3D(InitialPosition.X, InitialPosition.Y, InitialPosition.Z);
+ //this.InitialVolume = InitialVolume;
+ this.Type = intialCellType;
+ //this.CurrentListProbaTransitions = this.Type.ListInitialTransitions;
+ // InitProba(intialCellType);
+ }
+
+ public c3DSphere Get3DObj()
+ {
+ return new c3DSphere(this.CentroidPosition,Math.Sqrt(this.GetVolume()), this.Type.TypeColor , 8);
+ }
+
+ public double GetVolume()
+ {
+ double VolumeToReturn = InitialVolume;// *Type.Cycle.ListProba[((int)CurrentCyclePos) % Type.Cycle.ListProba.Count];
+ return VolumeToReturn;
+ }
+
+ // public cExtendedList CurrentListProbaTransitions = new cExtendedList();
+
+ //void InitProba(cCellType intialCellType)
+ //{
+ // //switch (intialCellType.Name)
+ // // {
+ // // case "regular":
+ // // this.ListProbaCellType = new cExtendedList { 1, 0, 0, 0, 0};
+ // // break;
+ // // case 1: // cancer
+ // // this.ListProbaCellType = new cExtendedList { 0, 1, 0, 0, 0};
+ // // break;
+ // // case 2: // scenescent
+ // // this.ListProbaCellType = new cExtendedList { 0, 0, 1, 0, 0};
+ // // break;
+ // // case 3: // apoptotic
+ // // this.ListProbaCellType = new cExtendedList { 0, 0, 0, 1, 0};
+ // // break;
+ // // case 4: // necrotic
+ // // this.ListProbaCellType = new cExtendedList { 0, 0, 0, 0, 1};
+ // // break;
+ // // }
+ //}
+
+ void ChangeType(cCellType NewType)
+ {
+ this.Type = NewType;
+ }
+
+ public void RunSingleTick(Random RND, FormForSimuGenerator Parent)
+ {
+ if (MemoryOn)
+ {
+ cCell CopyCell = new cCell(this);
+
+ this.PreviousStates.Add(CopyCell);
+ }
+
+ double RNDForCellState = RND.NextDouble();
+
+ List Cumulated = new List();
+ Cumulated.Add(this.Type.ListInitialTransitions[0].Value);
+ for (int Idx = 1; Idx < this.Type.ListInitialTransitions.Count; Idx++)
+ {
+ if (RNDForCellState <= Cumulated[Idx - 1])
+ {
+ if((Idx-1)!=this.Type.CurrentType)
+ this.ChangeType(Parent.ListCellTypes[Idx - 1]);
+ //this.Type = new cCellType(Idx-1);
+ //this.Type = eCellType[0];
+ break;
+ }
+ Cumulated.Add(Cumulated[Idx - 1] + this.Type.ListInitialTransitions[Idx].Value);
+ }
+
+ cPoint3D CurrentMvt = this.Type.Velocity.GetDisplacement(RND);
+ if ((CurrentMvt.X + this.CentroidPosition.X < 0) || (CurrentMvt.X + this.CentroidPosition.X >= Parent.NewWorld.Dimensions.X))
+ CurrentMvt.X = 0;
+ if ((CurrentMvt.Y + this.CentroidPosition.Y < 0) || (CurrentMvt.Y + this.CentroidPosition.Y >= Parent.NewWorld.Dimensions.Y))
+ CurrentMvt.Y = 0;
+ if ((CurrentMvt.Z + this.CentroidPosition.Z < 0) || (CurrentMvt.Z + this.CentroidPosition.Z >= Parent.NewWorld.Dimensions.Z))
+ CurrentMvt.Z = 0;
+
+ this.CentroidPosition += CurrentMvt;
+ CurrentCyclePos++;
+ }
+
+
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Classes/cClassForVariable.cs b/Cell-by-Cell and DB/Simulator/Classes/cClassForVariable.cs
new file mode 100644
index 0000000..d3d92f7
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Classes/cClassForVariable.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HCSAnalyzer.Simulator.Classes
+{
+
+ [Serializable]
+ public class cClassForRandomParam
+ {
+ public double Min = 0;
+ public double Max = 1;
+
+ }
+
+ [Serializable]
+ public class cListVariables : List
+ {
+ public cListVariables(List ListVar)
+ {
+ foreach (cClassForVariable item in ListVar)
+ {
+ this.Add(item);
+ }
+ }
+
+ public cClassForVariable FindVariable(string Name)
+ {
+ foreach (cClassForVariable item in this)
+ if (item.Name == Name) return item;
+
+ return null;
+ }
+ }
+
+ [Serializable]
+ public class cClassForVariable
+ {
+ public string Name;
+ public bool IsConstant = true;
+ public bool IsVariableAlongColumns = false;
+ public bool IsVariableAlongRows = false;
+ public bool IsVariableRandom = false;
+ public double Increment = 1.0f;
+
+ public double Cst_Value;
+
+ public cClassForVariable(string Name, double Value)
+ {
+ this.Cst_Value = Value;
+ this.Name = Name;
+ }
+
+ public cClassForRandomParam RandomInfo = new cClassForRandomParam();
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Classes/cSimulator.cs b/Cell-by-Cell and DB/Simulator/Classes/cSimulator.cs
new file mode 100644
index 0000000..b1cd04d
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Classes/cSimulator.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HCSAnalyzer.Simulator.Classes
+{
+ class cSimulator
+ {
+
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Classes/cWorld.cs b/Cell-by-Cell and DB/Simulator/Classes/cWorld.cs
new file mode 100644
index 0000000..9883fdf
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Classes/cWorld.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HCSAnalyzer.Classes._3D;
+using HCSAnalyzer.Simulator.Forms;
+
+namespace HCSAnalyzer.Simulator.Classes
+{
+ public class cWorld
+ {
+ public cPoint3D Dimensions { get; private set; }
+ public cCellPopulation ListCells = new cCellPopulation("Complete Cell Population");
+ public Random RND = new Random();
+ //List CellNumber = new List();
+ //List CellPosition = new List();
+
+ FormForSimuGenerator Parent;
+ public cWorld(cPoint3D Dimensions, FormForSimuGenerator Parent)
+ {
+ this.Dimensions = new cPoint3D(Dimensions.X, Dimensions.Y, Dimensions.Z);
+ this.Parent = Parent;
+ }
+
+ public void RunSimu(int TickNumber)
+ {
+ //CellNumber.Clear();
+
+ for (int Tick = 0; Tick < TickNumber; Tick++)
+ {
+ //CellNumber.Add(ListCells.Count);
+
+ for(int IdxCell=0;IdxCell
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormFor3DVisu));
+ this.renderWindowControlFor3D = new Kitware.VTK.RenderWindowControl();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.buttonDisplayVolumes = new System.Windows.Forms.Button();
+ this.groupBox1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // renderWindowControlFor3D
+ //
+ this.renderWindowControlFor3D.AddTestActors = false;
+ this.renderWindowControlFor3D.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.renderWindowControlFor3D.Location = new System.Drawing.Point(12, 12);
+ this.renderWindowControlFor3D.Name = "renderWindowControlFor3D";
+ this.renderWindowControlFor3D.Size = new System.Drawing.Size(745, 535);
+ this.renderWindowControlFor3D.TabIndex = 1;
+ this.renderWindowControlFor3D.TestText = null;
+ this.renderWindowControlFor3D.Load += new System.EventHandler(this.renderWindowControlFor3D_Load);
+ //
+ // groupBox1
+ //
+ this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox1.Controls.Add(this.buttonDisplayVolumes);
+ this.groupBox1.Location = new System.Drawing.Point(763, 8);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(152, 543);
+ this.groupBox1.TabIndex = 2;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Info";
+ //
+ // buttonDisplayVolumes
+ //
+ this.buttonDisplayVolumes.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonDisplayVolumes.Location = new System.Drawing.Point(25, 31);
+ this.buttonDisplayVolumes.Name = "buttonDisplayVolumes";
+ this.buttonDisplayVolumes.Size = new System.Drawing.Size(106, 23);
+ this.buttonDisplayVolumes.TabIndex = 0;
+ this.buttonDisplayVolumes.Text = "Display Volumes";
+ this.buttonDisplayVolumes.UseVisualStyleBackColor = true;
+ this.buttonDisplayVolumes.Click += new System.EventHandler(this.buttonDisplayVolumes_Click);
+ //
+ // FormFor3DVisu
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(926, 559);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.renderWindowControlFor3D);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "FormFor3DVisu";
+ this.Text = "Simulation 3D Display";
+ this.groupBox1.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public Kitware.VTK.RenderWindowControl renderWindowControlFor3D;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.Button buttonDisplayVolumes;
+
+ }
+}
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormFor3DVisu.cs b/Cell-by-Cell and DB/Simulator/Forms/FormFor3DVisu.cs
new file mode 100644
index 0000000..b51bed9
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormFor3DVisu.cs
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Classes._3D;
+using LibPlateAnalysis;
+using HCSAnalyzer.Simulator.Classes;
+using HCSAnalyzer.Forms.FormsForGraphsDisplay;
+
+namespace HCSAnalyzer.Simulator.Forms
+{
+ public partial class FormFor3DVisu : Form
+ {
+ c3DWorld CurrentWorld;
+ cScreening CompleteScreening;
+ //cWorld NewWorld;
+ FormForSimuGenerator Parent;
+
+ public FormFor3DVisu(cScreening CompleteScreening, FormForSimuGenerator Parent)
+ {
+ InitializeComponent();
+ this.CompleteScreening = CompleteScreening;
+ //this.NewWorld = NewWorld;
+ this.Parent = Parent;
+ }
+
+ private void renderWindowControlFor3D_Load(object sender, EventArgs e)
+ {
+ Display3D();
+ }
+
+ private void Display3D()
+ {
+
+
+ int[] ListPos = new int[3];
+ ListPos[0] = 0;
+ ListPos[1] = 0;
+ ListPos[2] = 0;
+
+ if (CurrentWorld == null)
+ {
+ CurrentWorld = new c3DWorld(Parent.NewWorld.Dimensions, new cPoint3D(1,1,1), this.renderWindowControlFor3D, ListPos, CompleteScreening);
+ }
+ CurrentWorld.ren1.RemoveAllViewProps();
+ foreach (var CurrentCell in Parent.NewWorld.ListCells)
+ {
+ c3DSphere CurrentSphere = CurrentCell.Get3DObj();
+
+ if (Parent.ListClusteringAlgo.GetListParams("3D").GetListValuesParam().ListCheckValues.Get("checkBoxDisplayText").Value)
+ CurrentSphere.AddText(CurrentCell.Type.Name,CurrentWorld,2,CurrentCell.Type.TypeColor);
+
+ if (Parent.ListClusteringAlgo.GetListParams("3D").GetListValuesParam().ListCheckValues.Get("checkBoxDisplayCellPath").Value)
+ {
+ for (int Memory = 0; Memory < CurrentCell.PreviousStates.Count-1; Memory++)
+ {
+ c3DLine NewLineForMemory = new c3DLine(CurrentCell.PreviousStates[Memory].CentroidPosition,CurrentCell.PreviousStates[Memory + 1].CentroidPosition);
+ NewLineForMemory.Colour = CurrentCell.Type.TypeColor;
+ CurrentWorld.AddGeometric3DObject(NewLineForMemory);
+ }
+
+ c3DLine NewLineForMemoryFinal = new c3DLine(CurrentCell.PreviousStates[CurrentCell.PreviousStates.Count - 1].CentroidPosition,
+ CurrentCell.CentroidPosition);
+ NewLineForMemoryFinal.Colour = CurrentCell.Type.TypeColor;
+ CurrentWorld.AddGeometric3DObject(NewLineForMemoryFinal);
+
+ }
+
+
+ CurrentWorld.AddGeometric3DObject(CurrentSphere);
+ // CurrentSphere.Colour = CurrentCell.Type.TypeColor;
+
+ }
+
+
+ CurrentWorld.DisplayBottom(Color.White);
+
+ CurrentWorld.Render();
+
+
+ }
+
+ private void buttonDisplayVolumes_Click(object sender, EventArgs e)
+ {
+ cWindowToDisplayHisto WindowToDisplayHisto = new cWindowToDisplayHisto(CompleteScreening, Parent.NewWorld.ListCells.GetVolumes());
+ WindowToDisplayHisto.Show();
+ }
+
+ }
+}
diff --git a/Forms/ClusteringForms/FormForEMInfo.resx b/Cell-by-Cell and DB/Simulator/Forms/FormFor3DVisu.resx
similarity index 100%
rename from Forms/ClusteringForms/FormForEMInfo.resx
rename to Cell-by-Cell and DB/Simulator/Forms/FormFor3DVisu.resx
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormForCellTypeRelationships.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/FormForCellTypeRelationships.Designer.cs
new file mode 100644
index 0000000..b875f0a
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForCellTypeRelationships.Designer.cs
@@ -0,0 +1,84 @@
+namespace HCSAnalyzer.Simulator.Forms
+{
+ partial class FormForCellTypeRelationships
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormForCellTypeRelationships));
+ this.panel = new System.Windows.Forms.Panel();
+ this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.refreshToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.contextMenuStrip.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.panel.Location = new System.Drawing.Point(12, 12);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(480, 387);
+ this.panel.TabIndex = 0;
+ //
+ // contextMenuStrip
+ //
+ this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.refreshToolStripMenuItem});
+ this.contextMenuStrip.Name = "contextMenuStrip";
+ this.contextMenuStrip.Size = new System.Drawing.Size(153, 48);
+ //
+ // refreshToolStripMenuItem
+ //
+ this.refreshToolStripMenuItem.Name = "refreshToolStripMenuItem";
+ this.refreshToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F3;
+ this.refreshToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.refreshToolStripMenuItem.Text = "Refresh";
+ this.refreshToolStripMenuItem.Click += new System.EventHandler(this.refreshToolStripMenuItem_Click);
+ //
+ // FormForCellTypeRelationships
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(504, 411);
+ this.Controls.Add(this.panel);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "FormForCellTypeRelationships";
+ this.Text = "Cell Type Relationships";
+ this.contextMenuStrip.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public System.Windows.Forms.Panel panel;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
+ private System.Windows.Forms.ToolStripMenuItem refreshToolStripMenuItem;
+ }
+}
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormForCellTypeRelationships.cs b/Cell-by-Cell and DB/Simulator/Forms/FormForCellTypeRelationships.cs
new file mode 100644
index 0000000..a5a3f82
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForCellTypeRelationships.cs
@@ -0,0 +1,80 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using Microsoft.Msagl.GraphViewerGdi;
+using HCSAnalyzer.Simulator.Classes;
+
+namespace HCSAnalyzer.Simulator.Forms
+{
+ public partial class FormForCellTypeRelationships : Form
+ {
+ FormForSimuGenerator Parent;
+ GViewer GraphView;
+ Microsoft.Msagl.Drawing.Graph graph;
+
+ public FormForCellTypeRelationships(FormForSimuGenerator Parent)
+ {
+ InitializeComponent();
+ this.Parent = Parent;
+
+ GraphView = new GViewer();
+ graph = new Microsoft.Msagl.Drawing.Graph("graph");
+ GraphView.Size = new System.Drawing.Size(panel.Width, panel.Height);
+ GraphView.Anchor = (AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right);
+
+ RefreshDisplay();
+
+ }
+
+
+
+ void RefreshDisplay()
+ {
+
+
+ foreach (cCellType item in Parent.ListCellTypes)
+ {
+ Microsoft.Msagl.Drawing.Node NewNode = new Microsoft.Msagl.Drawing.Node(item.Name);
+ NewNode.Label.FontColor = new Microsoft.Msagl.Drawing.Color(item.TypeColor.R, item.TypeColor.G, item.TypeColor.B);
+
+ NewNode.Attr.FillColor = Microsoft.Msagl.Drawing.Color.DimGray;
+ NewNode.Attr.Shape = Microsoft.Msagl.Drawing.Shape.Ellipse;
+ graph.AddNode(NewNode);
+ }
+
+
+
+ foreach (cCellType item in Parent.ListCellTypes)
+ {
+ foreach (cTransitionValue Transitions in item.ListInitialTransitions)
+ {
+ if (Transitions.Value == 0) continue;
+ Microsoft.Msagl.Drawing.Edge Currentedge = new Microsoft.Msagl.Drawing.Edge(item.Name, Transitions.Value.ToString(), Transitions.DestType.Name);
+ //Currentedge.Label.FontSize = Transitions.Value;
+ //Currentedge.LabelText = ;
+ graph.Edges.Add(Currentedge);
+ }
+
+
+ }
+
+ GraphView.Graph = graph;
+
+ GraphView.Dock = System.Windows.Forms.DockStyle.Fill;
+
+ this.panel.Controls.Add(GraphView);
+
+
+ }
+
+ private void refreshToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+
+ }
+ }
+}
diff --git a/Forms/FormsForGraphsDisplay/FormToDisplayTable.resx b/Cell-by-Cell and DB/Simulator/Forms/FormForCellTypeRelationships.resx
similarity index 99%
rename from Forms/FormsForGraphsDisplay/FormToDisplayTable.resx
rename to Cell-by-Cell and DB/Simulator/Forms/FormForCellTypeRelationships.resx
index ec2cd0b..bb8e796 100644
--- a/Forms/FormsForGraphsDisplay/FormToDisplayTable.resx
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForCellTypeRelationships.resx
@@ -117,7 +117,7 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
17, 17
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormForInfoSingleCellPopInit_Simulator.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/FormForInfoSingleCellPopInit_Simulator.Designer.cs
new file mode 100644
index 0000000..ef0bd3d
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForInfoSingleCellPopInit_Simulator.Designer.cs
@@ -0,0 +1,471 @@
+namespace HCSAnalyzer.Simulator.Forms
+{
+ partial class FormForInfoSingleCellPopInit_Simulator
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormForInfoSingleCellPopInit_Simulator));
+ this.buttonOK = new System.Windows.Forms.Button();
+ this.labelForCellNumber = new System.Windows.Forms.Label();
+ this.numericUpDownInitialCellNumber = new System.Windows.Forms.NumericUpDown();
+ this.label2 = new System.Windows.Forms.Label();
+ this.comboBoxCellType = new System.Windows.Forms.ComboBox();
+ this.textBoxName = new System.Windows.Forms.TextBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.groupBoxCellPos = new System.Windows.Forms.GroupBox();
+ this.panelManualPos = new System.Windows.Forms.Panel();
+ this.labelZ = new System.Windows.Forms.Label();
+ this.numericUpDownManualZ = new System.Windows.Forms.NumericUpDown();
+ this.labelY = new System.Windows.Forms.Label();
+ this.numericUpDownManualY = new System.Windows.Forms.NumericUpDown();
+ this.labelX = new System.Windows.Forms.Label();
+ this.numericUpDownManualX = new System.Windows.Forms.NumericUpDown();
+ this.radioButtonPosRandom = new System.Windows.Forms.RadioButton();
+ this.radioButtonPosManual = new System.Windows.Forms.RadioButton();
+ this.contextMenuStripForManual = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.worldCenterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.randomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.radioButtonPosWorldCenter = new System.Windows.Forms.RadioButton();
+ this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+ this.groupBoxForVolume = new System.Windows.Forms.GroupBox();
+ this.radioButtonVolumeFixed = new System.Windows.Forms.RadioButton();
+ this.radioButtonVolumeRandom = new System.Windows.Forms.RadioButton();
+ this.numericUpDownInitialVolumeManual = new System.Windows.Forms.NumericUpDown();
+ this.label3 = new System.Windows.Forms.Label();
+ this.richTextBoxDescription = new System.Windows.Forms.RichTextBox();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownInitialCellNumber)).BeginInit();
+ this.groupBoxCellPos.SuspendLayout();
+ this.panelManualPos.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownManualZ)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownManualY)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownManualX)).BeginInit();
+ this.contextMenuStripForManual.SuspendLayout();
+ this.groupBoxForVolume.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownInitialVolumeManual)).BeginInit();
+ this.SuspendLayout();
+ //
+ // buttonOK
+ //
+ this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.buttonOK.Location = new System.Drawing.Point(315, 358);
+ this.buttonOK.Name = "buttonOK";
+ this.buttonOK.Size = new System.Drawing.Size(75, 23);
+ this.buttonOK.TabIndex = 0;
+ this.buttonOK.Text = "Ok";
+ this.buttonOK.UseVisualStyleBackColor = true;
+ this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
+ //
+ // labelForCellNumber
+ //
+ this.labelForCellNumber.AutoSize = true;
+ this.labelForCellNumber.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.labelForCellNumber.Location = new System.Drawing.Point(197, 16);
+ this.labelForCellNumber.Name = "labelForCellNumber";
+ this.labelForCellNumber.Size = new System.Drawing.Size(64, 13);
+ this.labelForCellNumber.TabIndex = 11;
+ this.labelForCellNumber.Text = "Cell Number";
+ this.toolTip.SetToolTip(this.labelForCellNumber, "Click to tansform this constant into a variable");
+ this.labelForCellNumber.Click += new System.EventHandler(this.labelForCellNumber_Click);
+ //
+ // numericUpDownInitialCellNumber
+ //
+ this.numericUpDownInitialCellNumber.Location = new System.Drawing.Point(284, 13);
+ this.numericUpDownInitialCellNumber.Maximum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownInitialCellNumber.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownInitialCellNumber.Name = "numericUpDownInitialCellNumber";
+ this.numericUpDownInitialCellNumber.Size = new System.Drawing.Size(100, 20);
+ this.numericUpDownInitialCellNumber.TabIndex = 10;
+ this.numericUpDownInitialCellNumber.Value = new decimal(new int[] {
+ 300,
+ 0,
+ 0,
+ 0});
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(197, 47);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(51, 13);
+ this.label2.TabIndex = 9;
+ this.label2.Text = "Cell Type";
+ //
+ // comboBoxCellType
+ //
+ this.comboBoxCellType.FormattingEnabled = true;
+ this.comboBoxCellType.Items.AddRange(new object[] {
+ "Regular",
+ "Cancer",
+ "Scenecent",
+ "Apoptotic",
+ "Necrotic"});
+ this.comboBoxCellType.Location = new System.Drawing.Point(284, 43);
+ this.comboBoxCellType.Name = "comboBoxCellType";
+ this.comboBoxCellType.Size = new System.Drawing.Size(100, 21);
+ this.comboBoxCellType.TabIndex = 8;
+ //
+ // textBoxName
+ //
+ this.textBoxName.Location = new System.Drawing.Point(55, 14);
+ this.textBoxName.Name = "textBoxName";
+ this.textBoxName.Size = new System.Drawing.Size(116, 20);
+ this.textBoxName.TabIndex = 12;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(14, 17);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(35, 13);
+ this.label1.TabIndex = 9;
+ this.label1.Text = "Name";
+ //
+ // groupBoxCellPos
+ //
+ this.groupBoxCellPos.Controls.Add(this.panelManualPos);
+ this.groupBoxCellPos.Controls.Add(this.radioButtonPosRandom);
+ this.groupBoxCellPos.Controls.Add(this.radioButtonPosManual);
+ this.groupBoxCellPos.Controls.Add(this.radioButtonPosWorldCenter);
+ this.groupBoxCellPos.Location = new System.Drawing.Point(188, 74);
+ this.groupBoxCellPos.Name = "groupBoxCellPos";
+ this.groupBoxCellPos.Size = new System.Drawing.Size(200, 191);
+ this.groupBoxCellPos.TabIndex = 13;
+ this.groupBoxCellPos.TabStop = false;
+ this.groupBoxCellPos.Text = "Position";
+ //
+ // panelManualPos
+ //
+ this.panelManualPos.Controls.Add(this.labelZ);
+ this.panelManualPos.Controls.Add(this.numericUpDownManualZ);
+ this.panelManualPos.Controls.Add(this.labelY);
+ this.panelManualPos.Controls.Add(this.numericUpDownManualY);
+ this.panelManualPos.Controls.Add(this.labelX);
+ this.panelManualPos.Controls.Add(this.numericUpDownManualX);
+ this.panelManualPos.Enabled = false;
+ this.panelManualPos.Location = new System.Drawing.Point(42, 91);
+ this.panelManualPos.Name = "panelManualPos";
+ this.panelManualPos.Size = new System.Drawing.Size(108, 88);
+ this.panelManualPos.TabIndex = 3;
+ //
+ // labelZ
+ //
+ this.labelZ.AutoSize = true;
+ this.labelZ.Location = new System.Drawing.Point(6, 62);
+ this.labelZ.Name = "labelZ";
+ this.labelZ.Size = new System.Drawing.Size(14, 13);
+ this.labelZ.TabIndex = 19;
+ this.labelZ.Text = "Z";
+ this.toolTip.SetToolTip(this.labelZ, "Click to tansform this constant into a variable");
+ this.labelZ.Click += new System.EventHandler(this.labelZ_Click);
+ //
+ // numericUpDownManualZ
+ //
+ this.numericUpDownManualZ.DecimalPlaces = 1;
+ this.numericUpDownManualZ.Location = new System.Drawing.Point(22, 59);
+ this.numericUpDownManualZ.Maximum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownManualZ.Minimum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ -2147483648});
+ this.numericUpDownManualZ.Name = "numericUpDownManualZ";
+ this.numericUpDownManualZ.Size = new System.Drawing.Size(74, 20);
+ this.numericUpDownManualZ.TabIndex = 18;
+ //
+ // labelY
+ //
+ this.labelY.AutoSize = true;
+ this.labelY.Location = new System.Drawing.Point(7, 36);
+ this.labelY.Name = "labelY";
+ this.labelY.Size = new System.Drawing.Size(14, 13);
+ this.labelY.TabIndex = 17;
+ this.labelY.Text = "Y";
+ this.toolTip.SetToolTip(this.labelY, "Click to tansform this constant into a variable");
+ this.labelY.Click += new System.EventHandler(this.labelY_Click);
+ //
+ // numericUpDownManualY
+ //
+ this.numericUpDownManualY.DecimalPlaces = 1;
+ this.numericUpDownManualY.Location = new System.Drawing.Point(22, 33);
+ this.numericUpDownManualY.Maximum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownManualY.Minimum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ -2147483648});
+ this.numericUpDownManualY.Name = "numericUpDownManualY";
+ this.numericUpDownManualY.Size = new System.Drawing.Size(74, 20);
+ this.numericUpDownManualY.TabIndex = 16;
+ //
+ // labelX
+ //
+ this.labelX.AutoSize = true;
+ this.labelX.Location = new System.Drawing.Point(7, 10);
+ this.labelX.Name = "labelX";
+ this.labelX.Size = new System.Drawing.Size(14, 13);
+ this.labelX.TabIndex = 15;
+ this.labelX.Text = "X";
+ this.toolTip.SetToolTip(this.labelX, "Click to tansform this constant into a variable");
+ this.labelX.Click += new System.EventHandler(this.labelX_Click);
+ //
+ // numericUpDownManualX
+ //
+ this.numericUpDownManualX.DecimalPlaces = 1;
+ this.numericUpDownManualX.Location = new System.Drawing.Point(22, 7);
+ this.numericUpDownManualX.Maximum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownManualX.Minimum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ -2147483648});
+ this.numericUpDownManualX.Name = "numericUpDownManualX";
+ this.numericUpDownManualX.Size = new System.Drawing.Size(74, 20);
+ this.numericUpDownManualX.TabIndex = 14;
+ //
+ // radioButtonPosRandom
+ //
+ this.radioButtonPosRandom.AutoSize = true;
+ this.radioButtonPosRandom.Location = new System.Drawing.Point(12, 44);
+ this.radioButtonPosRandom.Name = "radioButtonPosRandom";
+ this.radioButtonPosRandom.Size = new System.Drawing.Size(65, 17);
+ this.radioButtonPosRandom.TabIndex = 2;
+ this.radioButtonPosRandom.Text = "Random";
+ this.radioButtonPosRandom.UseVisualStyleBackColor = true;
+ this.radioButtonPosRandom.CheckedChanged += new System.EventHandler(this.radioButtonPosRandom_CheckedChanged);
+ //
+ // radioButtonPosManual
+ //
+ this.radioButtonPosManual.AutoSize = true;
+ this.radioButtonPosManual.ContextMenuStrip = this.contextMenuStripForManual;
+ this.radioButtonPosManual.Location = new System.Drawing.Point(12, 68);
+ this.radioButtonPosManual.Name = "radioButtonPosManual";
+ this.radioButtonPosManual.Size = new System.Drawing.Size(88, 17);
+ this.radioButtonPosManual.TabIndex = 1;
+ this.radioButtonPosManual.Text = "Fixed Manual";
+ this.radioButtonPosManual.UseVisualStyleBackColor = true;
+ this.radioButtonPosManual.CheckedChanged += new System.EventHandler(this.radioButtonPosManual_CheckedChanged);
+ //
+ // contextMenuStripForManual
+ //
+ this.contextMenuStripForManual.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.worldCenterToolStripMenuItem,
+ this.randomToolStripMenuItem});
+ this.contextMenuStripForManual.Name = "contextMenuStripForManual";
+ this.contextMenuStripForManual.Size = new System.Drawing.Size(143, 48);
+ //
+ // worldCenterToolStripMenuItem
+ //
+ this.worldCenterToolStripMenuItem.Name = "worldCenterToolStripMenuItem";
+ this.worldCenterToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
+ this.worldCenterToolStripMenuItem.Text = "World center";
+ this.worldCenterToolStripMenuItem.Click += new System.EventHandler(this.worldCenterToolStripMenuItem_Click);
+ //
+ // randomToolStripMenuItem
+ //
+ this.randomToolStripMenuItem.Name = "randomToolStripMenuItem";
+ this.randomToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
+ this.randomToolStripMenuItem.Text = "Random";
+ this.randomToolStripMenuItem.Click += new System.EventHandler(this.randomToolStripMenuItem_Click);
+ //
+ // radioButtonPosWorldCenter
+ //
+ this.radioButtonPosWorldCenter.AutoSize = true;
+ this.radioButtonPosWorldCenter.Checked = true;
+ this.radioButtonPosWorldCenter.Location = new System.Drawing.Point(12, 21);
+ this.radioButtonPosWorldCenter.Name = "radioButtonPosWorldCenter";
+ this.radioButtonPosWorldCenter.Size = new System.Drawing.Size(124, 17);
+ this.radioButtonPosWorldCenter.TabIndex = 0;
+ this.radioButtonPosWorldCenter.TabStop = true;
+ this.radioButtonPosWorldCenter.Text = "Current World Center";
+ this.radioButtonPosWorldCenter.UseVisualStyleBackColor = true;
+ this.radioButtonPosWorldCenter.CheckedChanged += new System.EventHandler(this.radioButtonPosWorldCenter_CheckedChanged);
+ //
+ // groupBoxForVolume
+ //
+ this.groupBoxForVolume.Controls.Add(this.radioButtonVolumeFixed);
+ this.groupBoxForVolume.Controls.Add(this.radioButtonVolumeRandom);
+ this.groupBoxForVolume.Controls.Add(this.numericUpDownInitialVolumeManual);
+ this.groupBoxForVolume.Location = new System.Drawing.Point(188, 271);
+ this.groupBoxForVolume.Name = "groupBoxForVolume";
+ this.groupBoxForVolume.Size = new System.Drawing.Size(200, 81);
+ this.groupBoxForVolume.TabIndex = 14;
+ this.groupBoxForVolume.TabStop = false;
+ this.groupBoxForVolume.Text = "Initial Volume";
+ //
+ // radioButtonVolumeFixed
+ //
+ this.radioButtonVolumeFixed.AutoSize = true;
+ this.radioButtonVolumeFixed.Checked = true;
+ this.radioButtonVolumeFixed.Location = new System.Drawing.Point(31, 47);
+ this.radioButtonVolumeFixed.Name = "radioButtonVolumeFixed";
+ this.radioButtonVolumeFixed.Size = new System.Drawing.Size(50, 17);
+ this.radioButtonVolumeFixed.TabIndex = 16;
+ this.radioButtonVolumeFixed.TabStop = true;
+ this.radioButtonVolumeFixed.Text = "Fixed";
+ this.radioButtonVolumeFixed.UseVisualStyleBackColor = true;
+ this.radioButtonVolumeFixed.CheckedChanged += new System.EventHandler(this.radioButtonVolumeFixed_CheckedChanged);
+ this.radioButtonVolumeFixed.MouseDown += new System.Windows.Forms.MouseEventHandler(this.radioButtonVolumeFixed_MouseDown);
+ //
+ // radioButtonVolumeRandom
+ //
+ this.radioButtonVolumeRandom.AutoSize = true;
+ this.radioButtonVolumeRandom.Location = new System.Drawing.Point(31, 22);
+ this.radioButtonVolumeRandom.Name = "radioButtonVolumeRandom";
+ this.radioButtonVolumeRandom.Size = new System.Drawing.Size(65, 17);
+ this.radioButtonVolumeRandom.TabIndex = 15;
+ this.radioButtonVolumeRandom.Text = "Random";
+ this.radioButtonVolumeRandom.UseVisualStyleBackColor = true;
+ this.radioButtonVolumeRandom.CheckedChanged += new System.EventHandler(this.radioButtonVolumeRandom_CheckedChanged);
+ this.radioButtonVolumeRandom.MouseClick += new System.Windows.Forms.MouseEventHandler(this.radioButtonVolumeRandom_MouseClick);
+ //
+ // numericUpDownInitialVolumeManual
+ //
+ this.numericUpDownInitialVolumeManual.DecimalPlaces = 1;
+ this.numericUpDownInitialVolumeManual.Location = new System.Drawing.Point(87, 47);
+ this.numericUpDownInitialVolumeManual.Maximum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownInitialVolumeManual.Name = "numericUpDownInitialVolumeManual";
+ this.numericUpDownInitialVolumeManual.Size = new System.Drawing.Size(84, 20);
+ this.numericUpDownInitialVolumeManual.TabIndex = 14;
+ this.numericUpDownInitialVolumeManual.Value = new decimal(new int[] {
+ 20,
+ 0,
+ 0,
+ 0});
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(14, 47);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(60, 13);
+ this.label3.TabIndex = 15;
+ this.label3.Text = "Description";
+ //
+ // richTextBoxDescription
+ //
+ this.richTextBoxDescription.Location = new System.Drawing.Point(17, 74);
+ this.richTextBoxDescription.Name = "richTextBoxDescription";
+ this.richTextBoxDescription.Size = new System.Drawing.Size(154, 277);
+ this.richTextBoxDescription.TabIndex = 16;
+ this.richTextBoxDescription.Text = "";
+ //
+ // FormForInfoSingleCellPopInit_Simulator
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.Control;
+ this.ClientSize = new System.Drawing.Size(402, 388);
+ this.Controls.Add(this.richTextBoxDescription);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.groupBoxForVolume);
+ this.Controls.Add(this.textBoxName);
+ this.Controls.Add(this.groupBoxCellPos);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.labelForCellNumber);
+ this.Controls.Add(this.numericUpDownInitialCellNumber);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.buttonOK);
+ this.Controls.Add(this.comboBoxCellType);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.Name = "FormForInfoSingleCellPopInit_Simulator";
+ this.Text = "Cell population initialization";
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownInitialCellNumber)).EndInit();
+ this.groupBoxCellPos.ResumeLayout(false);
+ this.groupBoxCellPos.PerformLayout();
+ this.panelManualPos.ResumeLayout(false);
+ this.panelManualPos.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownManualZ)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownManualY)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownManualX)).EndInit();
+ this.contextMenuStripForManual.ResumeLayout(false);
+ this.groupBoxForVolume.ResumeLayout(false);
+ this.groupBoxForVolume.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownInitialVolumeManual)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button buttonOK;
+ private System.Windows.Forms.Label labelForCellNumber;
+ private System.Windows.Forms.NumericUpDown numericUpDownInitialCellNumber;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.ComboBox comboBoxCellType;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.TextBox textBoxName;
+ private System.Windows.Forms.GroupBox groupBoxCellPos;
+ private System.Windows.Forms.Panel panelManualPos;
+ private System.Windows.Forms.Label labelZ;
+ private System.Windows.Forms.NumericUpDown numericUpDownManualZ;
+ private System.Windows.Forms.Label labelY;
+ private System.Windows.Forms.NumericUpDown numericUpDownManualY;
+ private System.Windows.Forms.Label labelX;
+ private System.Windows.Forms.NumericUpDown numericUpDownManualX;
+ private System.Windows.Forms.RadioButton radioButtonPosRandom;
+ private System.Windows.Forms.RadioButton radioButtonPosManual;
+ private System.Windows.Forms.RadioButton radioButtonPosWorldCenter;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStripForManual;
+ private System.Windows.Forms.ToolStripMenuItem worldCenterToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem randomToolStripMenuItem;
+ private System.Windows.Forms.ToolTip toolTip;
+ private System.Windows.Forms.GroupBox groupBoxForVolume;
+ private System.Windows.Forms.NumericUpDown numericUpDownInitialVolumeManual;
+ private System.Windows.Forms.RadioButton radioButtonVolumeFixed;
+ private System.Windows.Forms.RadioButton radioButtonVolumeRandom;
+ private System.Windows.Forms.Label label3;
+ public System.Windows.Forms.RichTextBox richTextBoxDescription;
+ }
+}
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormForInfoSingleCellPopInit_Simulator.cs b/Cell-by-Cell and DB/Simulator/Forms/FormForInfoSingleCellPopInit_Simulator.cs
new file mode 100644
index 0000000..af1413d
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForInfoSingleCellPopInit_Simulator.cs
@@ -0,0 +1,309 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Simulator.Classes;
+using HCSAnalyzer.Classes._3D;
+
+namespace HCSAnalyzer.Simulator.Forms
+{
+ public partial class FormForInfoSingleCellPopInit_Simulator : Form
+ {
+ public cCellPopulation CellPopulation;
+ cPoint3D WorldDim;
+ //cWorld CurrentWorld;
+ Random RND = new Random();
+
+
+ public cListVariables ListVariables = null;
+
+ public cClassForVariable v_CellNumber = null;
+ public cClassForVariable v_InitPosX = null;
+ public cClassForVariable v_InitPosY = null;
+ public cClassForVariable v_InitPosZ = null;
+ public cClassForVariable v_InitPosType = null;
+ public cClassForVariable v_InitVolType = null;
+ public cClassForVariable v_InitVol = null;
+
+ FormForSimuGenerator Parent;
+
+ public FormForInfoSingleCellPopInit_Simulator(cPoint3D WorldDim, cListVariables ListVariablesInput, FormForSimuGenerator Parent, cCellPopulation CellPopulation)
+ {
+ InitializeComponent();
+
+ if (CellPopulation == null)
+ {
+ this.comboBoxCellType.Text = "Regular";
+ this.ListVariables = ListVariablesInput;
+ this.textBoxName.Text = "Population_" + Parent.MyPanelForParamCellPopulations.listViewForCellPopulations.Items.Count;
+ }
+ else
+ {
+ this.comboBoxCellType.Text = CellPopulation[0].Type.Name;
+ this.textBoxName.Text = CellPopulation.Name;
+ ListVariables = CellPopulation.AssociatedVariables;
+ }
+
+ this.WorldDim = WorldDim;
+ this.Parent = Parent;
+
+ this.v_CellNumber = ListVariables.FindVariable("v_CellNumber");
+ this.v_InitPosX = ListVariables.FindVariable("v_InitPosX");
+ this.v_InitPosY = ListVariables.FindVariable("v_InitPosY");
+ this.v_InitPosZ = ListVariables.FindVariable("v_InitPosZ");
+ this.v_InitPosType = ListVariables.FindVariable("v_InitPosType");
+ this.v_InitVolType = ListVariables.FindVariable("v_InitVolType");
+ this.v_InitVol = ListVariables.FindVariable("v_InitVol");
+
+ if (v_InitVolType.Cst_Value == 0)
+ {
+ this.radioButtonVolumeRandom.Checked = false;
+ this.radioButtonVolumeFixed.Checked = true;
+ }
+ else if (v_InitVolType.Cst_Value == 10)
+ {
+ this.radioButtonVolumeRandom.Checked = true;
+ this.radioButtonVolumeFixed.Checked = false;
+ }
+
+
+ if (v_InitPosType.Cst_Value == 0)
+ {
+ this.radioButtonPosWorldCenter.Checked = true;
+ this.radioButtonPosRandom.Checked = false;
+ this.radioButtonPosManual.Checked = false;
+ }
+ else if (v_InitPosType.Cst_Value == 1)
+ {
+ this.radioButtonPosWorldCenter.Checked = false;
+ this.radioButtonPosRandom.Checked = true;
+ this.radioButtonPosManual.Checked = false;
+ }
+ else
+ {
+ this.radioButtonPosWorldCenter.Checked = false;
+ this.radioButtonPosRandom.Checked = false;
+ this.radioButtonPosManual.Checked = true;
+ }
+
+ this.numericUpDownInitialCellNumber.Value = (decimal)v_CellNumber.Cst_Value;
+ this.numericUpDownManualX.Value = (decimal)v_InitPosX.Cst_Value;
+ this.numericUpDownManualY.Value = (decimal)v_InitPosY.Cst_Value;
+ this.numericUpDownManualZ.Value = (decimal)v_InitPosZ.Cst_Value;
+ this.numericUpDownInitialVolumeManual.Value = (decimal)v_InitVol.Cst_Value;
+
+ if (v_InitVol.IsConstant)
+ {
+ this.radioButtonVolumeFixed.Checked = true;
+ this.radioButtonVolumeRandom.Checked = false;
+ }
+ else
+ {
+ this.radioButtonVolumeFixed.Checked = false;
+ this.radioButtonVolumeRandom.Checked = true;
+ }
+
+ this.comboBoxCellType.Items.Clear();
+
+ foreach (cCellType item in Parent.ListCellTypes)
+ this.comboBoxCellType.Items.Add(item.Name);
+ }
+
+ private void buttonOK_Click(object sender, EventArgs e)
+ {
+ CellPopulation = new cCellPopulation(this.textBoxName.Text);
+ string CellType = comboBoxCellType.Text;
+ cCellCycle ClassicCellCycle = new cCellCycle(); // default cell cycle
+ cPoint3D InitialPos = null;
+
+ if (radioButtonPosWorldCenter.Checked)
+ InitialPos = new cPoint3D(this.WorldDim.X / 2, this.WorldDim.Y / 2, this.WorldDim.Z / 2);
+
+ for (int i = 0; i < (int)numericUpDownInitialCellNumber.Value; i++)
+ {
+ if (radioButtonPosManual.Checked)
+ {
+ InitialPos = new cPoint3D((double)numericUpDownManualX.Value,
+ (double)numericUpDownManualY.Value,
+ (double)numericUpDownManualZ.Value);
+ }
+ else if (radioButtonPosRandom.Checked)
+ {
+ InitialPos = new cPoint3D(RND.NextDouble() * this.WorldDim.X,
+ RND.NextDouble() * this.WorldDim.Y,
+ RND.NextDouble() * this.WorldDim.Z);
+ }
+
+ cCellType CurrentCellType = Parent.ListCellTypes.FindType(CellType);
+ if (CurrentCellType == null) continue;
+
+ cCell NewCell = new cCell(Parent.ListCellTypes.FindType(CellType), InitialPos, RND.NextDouble() /** ClassicCellCycle.ListProba.Count*/);
+
+ //new cCell(
+ // InitialPos,
+ // 2,
+ // RND.NextDouble() * ClassicCellCycle.ListProba.Count);
+ CellPopulation.Add(NewCell);
+ }
+
+ List ListToReturn = new List();
+ this.v_CellNumber.Cst_Value = (double)numericUpDownInitialCellNumber.Value;
+ ListToReturn.Add(this.v_CellNumber);
+
+ this.v_InitPosX.Cst_Value = (double)numericUpDownManualX.Value;
+ ListToReturn.Add(this.v_InitPosX);
+
+ this.v_InitPosY.Cst_Value = (double)numericUpDownManualY.Value;
+ ListToReturn.Add(this.v_InitPosY);
+
+ this.v_InitPosZ.Cst_Value = (double)numericUpDownManualZ.Value;
+ ListToReturn.Add(this.v_InitPosZ);
+
+ if (this.radioButtonVolumeFixed.Checked)
+ this.v_InitVol.IsConstant = true;
+ else
+ this.v_InitVol.IsConstant = false;
+
+
+ this.v_InitVol.Cst_Value = (double)numericUpDownInitialVolumeManual.Value;
+ ListToReturn.Add(this.v_InitVol);
+
+ ListToReturn.Add(this.v_InitPosType);
+ ListToReturn.Add(this.v_InitVolType);
+
+ this.ListVariables = new cListVariables(ListToReturn);
+ }
+
+ private void radioButtonPosWorldCenter_CheckedChanged(object sender, EventArgs e)
+ {
+ RefreshGUIPosition();
+ }
+
+ private void radioButtonPosRandom_CheckedChanged(object sender, EventArgs e)
+ {
+ RefreshGUIPosition();
+ }
+
+ private void radioButtonPosManual_CheckedChanged(object sender, EventArgs e)
+ {
+ RefreshGUIPosition();
+ }
+
+ void RefreshGUIPosition()
+ {
+ panelManualPos.Enabled = radioButtonPosManual.Checked;
+
+ if (radioButtonPosWorldCenter.Checked)
+ this.v_InitPosType.Cst_Value = 0;
+ else if (radioButtonPosRandom.Checked)
+ this.v_InitPosType.Cst_Value = 1;
+ else
+ this.v_InitPosType.Cst_Value = 2;
+ }
+
+
+ void RefreshGUIVolume()
+ {
+ this.numericUpDownInitialVolumeManual.Enabled = this.radioButtonVolumeFixed.Checked;
+
+ if (this.radioButtonVolumeFixed.Checked)
+ this.v_InitVolType.Cst_Value = 10;
+ else
+ this.v_InitVolType.Cst_Value = 0;
+ }
+
+
+ private void worldCenterToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ numericUpDownManualX.Value = (decimal)(this.WorldDim.X / 2);
+ numericUpDownManualY.Value = (decimal)(this.WorldDim.Y / 2);
+ numericUpDownManualZ.Value = (decimal)(this.WorldDim.Z / 2);
+ }
+
+ private void randomToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ numericUpDownManualX.Value = (decimal)(this.RND.NextDouble() * this.WorldDim.X / 2);
+ numericUpDownManualY.Value = (decimal)(this.RND.NextDouble() * this.WorldDim.Y / 2);
+ numericUpDownManualZ.Value = (decimal)(this.RND.NextDouble() * this.WorldDim.Z / 2);
+ }
+
+ #region UpDate Variables and associated display
+ private void UpdateVar(cClassForVariable Var, Label CurrentLabel)
+ {
+ FormForVariableDef WindowForVarDef = new FormForVariableDef(Var);
+ if (WindowForVarDef.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
+ Var = WindowForVarDef.thisVariable;
+
+ if (CurrentLabel != null)
+ {
+ if (Var.IsConstant == false) CurrentLabel.ForeColor = Color.Firebrick;
+ else CurrentLabel.ForeColor = Color.Black;
+ }
+ }
+
+ private void labelForCellNumber_Click(object sender, EventArgs e)
+ {
+ UpdateVar(this.v_CellNumber, labelForCellNumber);
+ }
+
+ private void labelX_Click(object sender, EventArgs e)
+ {
+ UpdateVar(this.v_InitPosX, labelX);
+ }
+
+ private void labelY_Click(object sender, EventArgs e)
+ {
+ UpdateVar(this.v_InitPosY, labelY);
+ }
+
+ private void labelZ_Click(object sender, EventArgs e)
+ {
+ UpdateVar(this.v_InitPosZ, labelZ);
+ }
+ #endregion
+
+
+ private void labelFixedManual_MouseDown(object sender, MouseEventArgs e)
+ {
+ UpdateVar(this.v_InitVol, null);
+ }
+
+ private void radioButtonVolumeRandom_CheckedChanged(object sender, EventArgs e)
+ {
+ this.RefreshGUIVolume();
+ }
+
+ private void radioButtonVolumeFixed_CheckedChanged(object sender, EventArgs e)
+ {
+ this.RefreshGUIVolume();
+ }
+
+ private void radioButtonVolumeFixed_MouseDown(object sender, MouseEventArgs e)
+ {
+
+ if (e.Button == System.Windows.Forms.MouseButtons.Right)
+ {
+ UpdateVar(this.v_InitVol, null);
+ }
+
+ }
+
+ private void radioButtonVolumeRandom_MouseClick(object sender, MouseEventArgs e)
+ {
+ // if (e.Button == System.Windows.Forms.MouseButtons.Right)
+ // {
+ FormForRandSpecOfVar WindowForRandSpec = new FormForRandSpecOfVar(this.v_InitVol.RandomInfo);
+ if (WindowForRandSpec.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ this.v_InitVol.RandomInfo = WindowForRandSpec.RandomParam;
+
+ // }
+ }
+
+
+
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormForInfoSingleCellPopInit_Simulator.resx b/Cell-by-Cell and DB/Simulator/Forms/FormForInfoSingleCellPopInit_Simulator.resx
new file mode 100644
index 0000000..3810b26
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForInfoSingleCellPopInit_Simulator.resx
@@ -0,0 +1,1793 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 224, 17
+
+
+ 17, 17
+
+
+
+
+ AAABAAUAEBAAAAAAIABoBAAAVgAAACAgAAAAACAAqBAAAL4EAAAwMAAAAAAgAKglAABmFQAAQEAAAAAA
+ IAAoQgAADjsAAICAAAAAACAAKAgBADZ9AAAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAA
+ AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wEKChoPAAAAA////wH///8B////Af//
+ /wH///8B////Af///wFDQaM5OjufVTY2mDs+OpoxUkaLRUE+nFs3Npg9Pz/KdystvV9AP6JVPj2iTUxK
+ pUktLokrOTmfM////wH///8BTE7HlU5R0tdAQ86dP0LQh1BMtbFRUs/fQEPOnzo9wXtBRM6tW17Zo0tO
+ u4VNT9HXT1HGoUFE0JkAAAAD////AXFy1VtdXtWHXF/abWNi0Zd/a5+BZ2HBoVVY3JdQUstvWl3bXW1l
+ s5l2cMeTb3DYh05Q1FNkZ9ydTU67H////wH///8B////Af///wH///8BoGMyRZ9jMk98bKlLaVBmA59k
+ NRufYjJRoGMyQf///wH///8B////Af///wH///8B////Af///wH///8B////AZ1iMhWcYTBfm2AwaZxh
+ MWWbYDBpnGEwY55jMhf///8B////Af///wH///8B////ATAwn1c1NqQ/////ATIypHcyM5cfn2Y3GaBm
+ NpOmazq7sXVDm7d6SCEvLmIfOjmpiywtqZcgIXk9////Af///wEvM8ihQEPVc////wE0N9Dba1KEZ5xh
+ MOWbYTD/pWo4/Z9kM/+iZzXrVEipzTU506dnatyDOT3U6RYXOgf///8BOz/OoUpLzLtGRqyHQ0bW7ZVh
+ R/OfYzH5oWY1T695SAmwc0Bdn2Mx/ZxnReNRUKN1TEy/tUBE2uMzM4ED////AUhL1aFmaee1c3bpeWVa
+ vOujZTD/o2Uyqf///wH///8B////AaVoNYl5XInVT1Hg105Q1Y1FRJdb////Af///wFVWN2fZGbkc///
+ /wFzXpzZp2cy/6doM4H///8B////Af///wH///8BZmnmiWFj18teX9DDWVzluf///wH///8Bg4bgL4CD
+ 3yH///8Bo3p9cbp4Sv+4d0qF////Af///wH///8B////AVVYwQWkputLgILsU1NVzQ3///8B////Af//
+ /wH///8B////AbV4Sxu9fVL9vHxSw////wH///8B////AcqMX43VmGptonBBA////wH///8B////Af//
+ /wH///8B////Af///wH///8Bv4BXocCBWP/PkWah2ZtvV7+CWJ3AgVj/voBWs////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AcGFWQvOkGefzJBo+8aIYf/Eh2D/wINcu7p/VRn///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AdKjdhHgpnsvyo9kG////wH///8B////Af//
+ /wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
+ //8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAA////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B2IVLA9iFSwPYhksD////Af//
+ /wH///8BBwgTEQsLHCsAAAAL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkAAAAHAAAACQAAAAUAAAAH////AU0vGg2eZzoNcEoqEXFK
+ KxEWEA4JAAAABQAAAAkyM7tlTUze8yEipIEAAAADAAAABwAAAAkAAAAJAAAABQAAAAMAAAAJAAAABf//
+ /wEAAAAJAAAAA////wH///8B////Af///wEuLW8rS0m3rzw9nps+PaupLy+LSz09qZMaG0MLPz2pqUc4
+ YktOSayrREKipzw7qakuL4RFPj2rpSYnXg0vMbl5MzbW6xISLhE9PaSRR0ausURDrbE8PKNzRUKNY1RS
+ u7UyNJuLFBU3Fz4+rqknKHEb////Af///wH///8B////ATk8x306PcvdREe2pT1B2OkxM7JfPkLX2Scp
+ Zg88QNn3Qj6nmzs90fFNSZqfPUHd/TQ2m0s9Qdr1Hh9LDzU4wbc+Qt//NjijV1RY2qVfYuL5YWXKnUhL
+ vHE6PNT3NjmglUpNxtUuMIdLPUHb+zI0lCn///8B////Af///wH///8BPT+dL3ByzcdpatbnS07e5zg6
+ tl9MUNvfFhY5G0dK3/lWRXxrcG6+yWxrz+VPUuL7NzibSUlM4PUnKGYvQ0bZ9z9CyKlLTtCzHR9UG2Jl
+ 389ER8G9LS+ERVNV5f9tbdfRYmLe8UdJvXFNUOT7Ky5+QQAAAAf///8B////Af///wFQULpDenrc52Zm
+ yslNUN7PQkXBW2dq6ftvbsPBUlTk+2pRfGt6edrvbGe3zU9S4u09P6c9VFfk9UlKt4NTVd3LQUO4MV5h
+ 5/VTU66ldXTQ14OF9P9QUsKBcnXr3Wdnw8NSVN7vPT+pM15h6PtsbdXdTE2yV////wH///8B////Af//
+ /wF2eNZBcnTgYUlMxh9NT8IbXV/MQXh62lNlWa1JomQwQ4lqgGmHdauLaFaXQUNErzdgYun1UFK4QVpc
+ yy////8BXmDPT2xcnGeAa5l9gWuafXxhhU1cWbode37hXU1QzSdCRKsFXF7PT25w1E9QUs8n////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AZ5lMwWgYzJFoGMyTaBjMk2gZTNBVVCrKXR2
+ 4q00NIMH////Af///wGgaToLoGMySaBjMk2gYzJNoWUzP51mKgP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AZ9kMymfYTFZn2ExWZ9i
+ MVmfYzRDoWc5E6RvRgOkcEgDn2Y7FZ9jM0mfYTFZn2ExWZ9iMVmgZTUj////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bomw2A55i
+ MkedYTBjnWEwY51hMGOdYTBhnmIxWZ1iMVudYTBjnWEwY51hMGOdYTBjnmIySaRoOgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BnGY3B5xhMkmaYDBvmmAwb5pgMG+aYDBvmmAwb5pgMG+aYDBvmmAwb5xiMlWgZjYL////Af//
+ /wH///8BAAAAA////wH///8B////Af///wH///8B////Af///wEAAAANAAAALwAAACcAAAAD////Af//
+ /wEAAAAhAAAAMQAAABX///8BnGY6A5xiMyWaYTJXmWAwcZlgMXuZYDF7mWAwc5phMV+bYTMxomY6Bf//
+ /wEAAAAJAAAAJwEBBTsFBQ5BAAABMwAAABkAAAAD////Af///wH///8B////ATAxkjs8PMrnQUHIyQYG
+ DgX///8BAAAAAzc4uKNAQM3nPD20Zf///wH///8Bomk6O6BnNqOkajnlqm49+7B0Qvu4e0jrxYZRscmK
+ Vk+jb0UDAAAACTc1cmVMSsPTQUHT9zo71fszNMntKSugrw4PKi3///8B////Af///wH///8BMTSdQSsv
+ 0f8+QdjhCAgSBf///wEAAAADLTDAtTM32f89QcVxoW5ACZ1kNJuaYDD9mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+cYTH/pmo4/61xP7FBNmZLOjvS9Ssv0f8+Qtrhb3Lmy21x6PUwNNX/NTm7sQAAAAn///8B////Af//
+ /wE0Np5BMjXV/0RH2+EICBEF////AQAAAAMyNcS1Oj7d/0VGxHOfZTOtnGEw/5xhMP+cYTD/nmMx/6tu
+ O/m3eUT5qm06/51iMP+cYTD/nWIw/4VbXvVER9z/OTzQtz0/oQcAAAADPT+dSTs/2/1ESN71ICFTEf//
+ /wH///8B////ATY4oEE5PNj/SEvZ5QAAAS8AAAAtAAAALTU4vL9BReD/dlqB055iMf+eYjD/nmIw/59k
+ MtekajlPqnVEEbR8SxPKilRZqGs5555iMf+eYjD/nmIx/5Z8krk7PZ1DAAAAKRAQI0dPTZiXPD/Z/0NH
+ 3vMzM4EL////Af///wH///8BOTugQUBD3P9QUuL7VFTO4VRTzuFUU87hSkzY9UpM3f+aZEb/oGMx/6Bj
+ Mf+hZDLjo2o6F////wH///8B////Af///wGmazsxoWQy+aBjMf+gYzH/mGAz1VtYmpdhX8rVXl7f+UlM
+ 4P9ARN3/QUXRmf///wH///8B////Af///wE7PaJBSErg/2Vo7P10d+rvdHfq73R36u9naun7YlSz/6Jk
+ MP+iZDH/omQx/6NnNXX///8B////Af///wH///8B////Af///wGjZjSnpGYy/6RnNveKY3L/T0/e/01Q
+ 5v9VWOr/UVTi2URHx30iI1sN////Af///wH///8B////AT0/pEFOUeT/W17k4RkZQAc1NZIDIyNcBUhL
+ 0LV5XIz/pGUx/6RlMf+kZTH/o2s6Lf///wH///8B////Af///wH///8B////AahsOjOtcD1PTkmkW09S
+ 5f9PUuHvUFLVcUFCrCUsLGA7S0mEg0E/eVsAAAAD////Af///wH///8BQEGlQVVY6P9hZObhBwcRBf//
+ /wEAAAADTlDStYhidv+mZjL/pmYy/6ZnM/2lcEEL////Af///wH///8B////Af///wH///8B////Af//
+ /wFKTMVNWFvr/1lb2NsZGjpXFBQoTVlZwr9YW+r/XF7ir////wH///8B////Af///wFERqs/X2Lu/2ls
+ 6eEHBxQF////AQAAAANVV9ezkGdz/6hoMv+oaDL/qGgz96V0RQX///8B////Af///wH///8B////Af//
+ /wH///8B////AURGrwuDhu7PeHvz/2hp7v10c+79ZGbw/1te6fdQUs07////Af///wH///8B////AUxO
+ uyGPkeiXgIPggf///wH///8B////AXF02WWuf2/XuHVH/7h1R/+2dUb7o3ZEBf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AVVYwRGkpeZ9pafvsYuN7rdydOmTU1XNM////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Abl5TIe8ek7/vHpO/7x6Tv+pc0Yb////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bt3lMV718Uf+9fFH/vXxR/7Z5
+ TVH///8B////Af///wH///8B////Af///wHMlGU12qd2O6x4Swv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGtc0cTvX1T8759
+ VP++fVT/u31Su6BtQgP///8B////Af///wH///8BpHVFA71+U8fQj2P/2Zpt9dKWaLeicEEF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wG7fVOVv4BX/7+AV//AgVf/zIxhlbaBVAv///8B////Aat0SAe7flONv4BX/7+AV/+/gFf/vH5Uq///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbJ4TRPChFrfwYNa/8CCWv/HiF//2p5x6d+jdbHTlGirwYRa48CCWv/Agln/wIJZ/7+C
+ WPe2e1Av////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AcGFWSfNj2bdxohh/8GEXf/BhF3/woVd/8KEXf/BhF3/wYRd/8GE
+ Xf/Ag1z5un9VXf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AceNYBHeoneN3KJ369SYcP/LjWb/yItk/8iL
+ ZP/HimP9wIVcv7d9VDn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wG5h1oJ1qd6O+Ot
+ gVvcoHVh0ZVqTbiAVR3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AdiFSwPYhUsD2IVLA9iFSwPhhFED////Af///wH///8B////AQIC
+ BgkMDR87CgoYPQAAABf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bq182B7NvPgm2c0AJqGg7C6hoOwu6e1AH////Af//
+ /wH///8B////ASkrfh9KSNfxOznU8R8flJEBAQML////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAMAAAAZAAACMQAAACkAAAAlAAAALQAAAA8AAAApAAAAIQAAAAMAAAAXIRQKOWJAJR9YOSMhJxkPPSoa
+ DjsiFw4pAAAALwAAABMAAAAjAAAAKTAzjB0+P8t7TE7g4Swt2vkgIWI1AAAAAwAAACEAAAAxAAAAMQAA
+ ADEAAAAxAAAAFQAAAAsAAAAnAQEENQAAACcAAAAJAAAABwAAACsAAAAh////Af///wH///8B////Af//
+ /wH///8B////AQkJFxFOTLGxVFLW605PxNc5OazHSUjF3SwsbSdEQ8HXQ0O8rQAAAAM2N6R1TErL5Uc7
+ eVtNRpOPVlLR6VRUzOM1NaLDS0nL4Tg4mEM/P7azSEfC1SEhUhEAAAAFLS+xoTQ34/8xNKuNAAAABz4+
+ tatUU8rjUVDJ409OyeNRT8zjODmmbzo4e2VcWcjXZGPc7T9AvtUfIWVXICJZGUZFxNtCQ7ejAwEBA///
+ /wH///8B////Af///wH///8B////ATY3mz82Odn/NDfC0VpcxJc7Ptj9QkXY4ScnXhsyNs/1Q0fVxwAA
+ AAMxNLOHPkLj/0U9hXU3Oc/1NTjJ61lVq5NER9XxP0Pf+y4veyUwM8PNQ0fd8SYmXRMMDR4VNTjI5zc7
+ 3P9DRtLZCgsYE0NGzaNna+7/ZWnb92pu2NNobOHLNjmodz0/0O0yNc3tTVC9l1xg4vVCRczTJyhoIzQ3
+ 0vlDRs+5AwICA////wH///8B////Af///wH///8B////AT0+qSdnaur3UlTO3zc3jZM3OsnvS07c2SYm
+ XRs6PdP1SUzXxwAAAAM2OLaHR0ro/1FEh29ZW9rjZGbd8UI9jqs4ObTbSUzi+ScnYB02OcfNS07h8SUl
+ WRMzNZBhPkDe/zs+xedLTuj9LS6BTT5AqRVjZuTVUFTk+y4wjIEAAAEPNTedSz1A3v9TUsfXV1OopVZU
+ scFQTqqxKCtsLzs/1/lKTdS9BgYMA////wH///8B////Af///wH///8B////AQAAAQc2N39lc3XDvXt9
+ 3+VgYuP/UVTf2yYmXRlFSNj1UlXV0wAAABc4OrKTT1Lq/1hGgW9OOVFpbGmsw3x81eFrbeT7UFPl+yws
+ cR89P8rNUlXk8RsbQRs/Qb23RUjd+z0/q1dMT+b9REe7oQAAABMlJ2k5bG/k6VJW4fknKXFrNTecU01Q
+ 5v9nat3laWzXv19h2+1MT+L3MjWGMUZJ3flTV9XRAAECIQAAABH///8B////Af///wH///8B////ATc5
+ ig9qaNHfVVXF0VFPi5FPUdv3UVPczSsraRdMT931a27r+URElJtYWMnXUFPo/2dPe2doYr7FY2HP6VVK
+ d6VWVcrpUVTj8ystaw9DRs7NWVzm8SQlXDtKTNv3TE7Xxzg5iAdIS9fXWFvg6zg4f3dcWauvXly9z4OE
+ 9f9VWN/zMjOFSWJk6e9YWtjjTkyMlVhY2/FIS9XJMDF6G01Q4PljZu37XFqzuUJCl2kAAAAD////Af//
+ /wH///8B////Af///wFtb9V3m53s7YiJ8fddX+fpR0rKWTg5jQ9madzjXmDWy5CR6+N1d+73Uk/Gu5ph
+ PENxXJJ5nJzl6Y2O7/lnaejzSUvMiQcHDgNKTNLNYWPo8URFrHNzdefvSkzIb////wFNT8qDd3rq70lL
+ vceDhObzhojn84eI5/OAg+rxRke0R2Nmz0+dn+zjgoPw91JU389GSL8vPT6eEWhr3+lcXtbZj5Hv9VVX
+ 1aX///8B////Af///wH///8B////Af///wH///8BOjmpDz9Arx0/QqgN////Af///wE5PZsLOj2cBzk8
+ qAtAQq0bmmM6G6FjMUWhZDFFmGA6SYVZVVePXkhNoGs8DwAAAANPUtXNaGrq7ywtbxc3O5gLQEKjA///
+ /wE9QaAFNzuZC45eSyeXXzlJl185SZdfOUmYYTtHoGY5M6l2QAc5O6YLP0GuGUFCowX///8B////ATk8
+ mgs8P50HPT6tF0JDpgn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BnmM0CaBjMkWgZDJLoGQyS6BkMkugZDJLoGc2MX9iQwNlaNrJeXzl7TQ0
+ gw3///8B////Af///wH///8Bom0/B6BkM0GgZDJLoGQyS6BkMkugZDJLoWYzPZxkKgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaBlMzGfYjFTn2IxU59iMVOfYjFToGMyUaNn
+ OCVAPZIPNjeXEf///wH///8B////Af///wGpckMFoGY2NZ9iMVOfYjFTn2IxU59iMVOfYjFToWY1Jf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaBlNg2fYjNRn2ExW59h
+ MVufYTFbn2ExW59iMlmfZTY5omg7E6VtRgWecUcDpnBIBZ9nPhWfYzVBn2EyWZ9hMVufYTFbn2ExW59h
+ MVufYzNPoms8Cf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGeZDQjnWExX51hMGGdYTBhnWEwYZ1hMGGdYTBhnWIwX55jMlWeYzJPnmMyVZ1iMF+dYTBhnWEwYZ1h
+ MGGdYTBhnWEwYZ1hMF+gZTYl////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BnWM0L5xhMGWcYTBpnGEwaZxhMGmcYTBpnGEwaZxhMGmcYTBpnGEwaZxh
+ MGmcYTBpnGEwaZxhMGmcYTBpnGEwZ55kMzunazID////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wEAAAADAAAAA////wH///8B////AZ1jNCmaYDFlmmAwcZpgMHGaYDBxmmAwcZpf
+ MHGaYDBxmmAwcZpgMHGaYDBxml8wcZpgMHGaYDFtnWQ1O6JlOAX///8B////Af///wH///8BAAAAAwAA
+ AAMAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAMAAAAXAAAAHwAA
+ AB0AAAAL////Af///wH///8B////AQAAABEAAAAfAAAAHwAAABMAAAAD////Af///wGfZTgRnGEzRZpg
+ MW2ZYDB3mWAweZlgMHmZYDB5mWAweZlgMHmZYDB3mmAwc5thM1WeZDcdrV4xA////wH///8BAAAABQAA
+ ABEAAAAhAAAALQAAADEAAAArAAAAIQAAAA8AAAAD////Af///wH///8B////Af///wH///8B////AQEB
+ AwktLGpnMjBthTMxcX8fH1Ar////Af///wH///8BAAAAAygnX0cyMW6DMjBtgyopYU8AAAAF////Af//
+ /wH///8B////AaJmPBGiaztXqG4+ma5zQrW1eEa/unxKubt+TKO1eUhro20+IZtjPQP///8B////Af//
+ /wEAAAAJAAAAKxQULFlAPXiNTEmcpUhGpK09O5ilKChshQoKGlEAAAAlAAAAB////wH///8B////Af//
+ /wH///8B////AQUFDQk1N8XZOTna/0RF5v8yM6JZ////Af///wH///8BAAAAAzEzs5E4Odr/Pz/g/z5A
+ x6UAAAAF////Af///wGjbD8NoWg5d6BmNtehZjb9oWY2/6FmNf+iZzb/pmo5/61xP/+9fkr/yIlU6cyN
+ V5W2fU0h////AQAAAAUDAwgtTEqdo1lW2/U9Pdr/LS/U/ygr0v8pLNP/LjDV/zEzx+0lJ3yNAQECIQAA
+ AAP///8B////Af///wH///8B////AQUFDQkvMsHZKi7Q/z9D5f8zNaJZ////Af///wH///8BAAAAAy4x
+ sZEqLtD/Njrc/z5ByKUAAAAF////AaFpOkOdYzPdmmAw/5pgMP+aYDD/ml8v/5pfL/+aYDD/ml8v/5pg
+ MP+aYDD/nWMy/6drOf+1d0TvsndGYwcEAxM8PKCbOzzZ/ykt0P8sMNP/SEzo/3J27/+Hi/L/U1fk/ysv
+ 0f80ONb9Jyl9cQAAAAn///8B////Af///wH///8B////AQUFDQkyNcPZLjLT/0RH5/81N6JZ////Af//
+ /wH///8BAAAAAzE0s5EuMtP/Oz7f/0FEyaUFBAIFomk5XZxiMfmbYC//m2Av/5tgMP+bYC//m2Ew/5xh
+ MP+cYjH/nGIx/5thMP+bYC//m2Av/5tgMP+cYTD/o2c2/YhbQpk4O9D1LjLT/zA01P82Ocm5Pj+5RTs8
+ sC1JS8JReX3k0UNH5P81Odn/REfS1QgIFBP///8B////Af///wH///8B////AQUFDQk2OcXZMzbV/0lM
+ 6v83OKNZ////Af///wH///8BAAAAAzQ2tZEzNtX/QEPh/0VHyqWcZjdJnmMx+ZxhMP+cYTD/nGEw/5xh
+ MP+cYTD/oGUz/65xPfm+f0rxxYVP+bd5RP+jZzX/nGEw/5xhMP+cYTD/nWEw/51jNP9gVLP/S0/i/zxA
+ 1N09Pp4P////AQAAAAMAAAAJJSZqRTo91/01ONf/TFDk9SYnZB3///8B////Af///wH///8B////AQUF
+ DQk5PMfZODvY/01Q6/8wMoxnAAAAGwAAABsAAAAbAAAAHTM2q5k4O9j/REjj/1FOvrefZDPlnmIw/55i
+ MP+eYjD/nmIw/55iMf+gZjXNp248V6p1Qx2pdUcRtn1MIc+PWWO7fEjdomY0/55iMP+eYjD/nmIw/55i
+ MP+hbk39iovfv0tNx3UAAAANAAAAGwAAACsAAAFBNDNzgz9B2v04PNn/Sk3j9TMzghX///8B////Af//
+ /wH///8B////AQUFDQk8QMjZPEDa/1FV7f83OIijKilWeSopVnkqKVZ5KilWeTk7pb88QNr/SEzm/4Fg
+ gfufYzD/n2Mw/59jMP+fYzD/n2Mx/6JnNpmhckMJ////Af///wH///8B////Af///wGqckIVqGs6x6Bj
+ Mf+fYzD/n2Mw/59jMP+fYzH/lF8zaQAAAC8CAgdJKytQdWJem6VwbMjTYGDj+zxA2v89Qdv/REfVyTEx
+ eAP///8B////Af///wH///8B////AQUFDQlAQ8rZQUTd/0xP5v9ZWuf/Wlrn/1pa5/9aWuf/Wlrn/1ZX
+ 5f9BRN3/UVHZ/51lQP+gYzH/oGQw/6BkMf+gZDH/omc1wZ9wQwX///8B////Af///wH///8B////Af//
+ /wH///8BpWs8H6JlM/GgZDH/oGQx/6BkMf+gZDH/lF8222dipa1zcNnramjp/01P4/9BRd3/QUXd/0JG
+ 3v9BRdn3QUS/R////wH///8B////Af///wH///8B////AQUFDQlERszZRknf/11g7P96ffL/en3y/3p9
+ 8v96ffL/en3y/3l88v9PUuT/aFaq/6JkMP+hZDD/oWQw/6FkMf+iZDH/o2s6R////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaNnNpGhZDH/omQx/6NlMv+maDX/nWhN/1hV2v9GSeD/SEvh/01Q
+ 5v9UV+3/VFfr/UpN2MtDRb1FBgYTA////wH///8B////Af///wH///8B////AQUFDQlHSs/ZS07i/2Fk
+ 8/9YWsmdY2bVa2Nm1mtjZtZrY2XUbVRXzr9LTuL/gl53/6NkMP+jZDD/o2Qw/6NkMP+kZjPlonJACf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRsOzmoaTX7qm0526RpOZlpWqfdTk/f/0pN
+ 4v9QU+j/Wl3r81td5MFPUtJ9MjOISwYGDy8AAAApAAAAFwAAAAP///8B////Af///wH///8B////AQUF
+ DQlKTdDZT1Ll/2Rn9P9AQqlZ////Af///wH///8BAAAAA0RHvpFPUuX/k2NZ/6RlMf+kZTH/pGUx/6Rl
+ Mf+laDS3////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNwQgWpcUEvpXJFBRob
+ QxNOUNrzUFPl/1RX6P1ER72LOjuYGwsLGAUAAAAPNzd4Z1tYoKdWVJafRkWKYQAAAAP///8B////Af//
+ /wH///8B////AQUFDQlOUNLZVFfn/2ls9f9CQ6pZ////Af///wH///8BAAAAA0dJv5FUV+b/n2ZC/6Zm
+ Mv+lZjH/pmYy/6ZmMv+maTaR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ASwtbg9RVN7zVVjp/2Nm6vcTEzBZAAAANQAAADMCAwdFUVLI01ha6v9fYvD/V1rWl///
+ /wH///8B////Af///wH///8B////AQUFDQlRU9TZWFvp/21w9/9ERatZ////Af///wH///8BAAAAA0pM
+ wJFbXOT/o2c8/6ZnMv+mZzH/pmcy/6ZnMf+naTaB////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////ATAxcwNdX9+7Zmny/11g7/9aW9nrXVyzu2torrOAfNHbZ2jt/1da
+ 6f9aXev/Sky+Rf///wH///8B////Af///wH///8B////AQgIEwdWWNfXZGfx/3V4+f9ISbJV////Af//
+ /wH///8BAAAAA09Rx41kZef/pWk8/6hoMv+oaDL/qGgy/6hoMv+oazd3////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFPUMItnZ/x65OW+f9oa/L/YGPv/2Nl
+ 8P9hY+//YWTw/15h7f9TVdOfODiMA////wH///8B////Af///wH///8B////Af///wFoa9W3m57q35CS
+ 6t9OUMBB////Af///wH///8B////AVVXzHGVluffsnVL/bZzRP+2c0T/tnNE/7ZzRP+yc0R7////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BVVjBJ5uc
+ 4qWys+/pqqz1+ZeZ9fuDhvD1bG7oyVNWz2tDRKQH////Af///wH///8B////Af///wH///8B////Af//
+ /wEwOYsDKTqAAy46ggP///8B////Af///wH///8B////Af///wE4PHoFuHhM47t5Tf+7eU3/u3lN/7t5
+ Tf+1eEuL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEwMZkHPj+vGUFDrR09P6cNNzeIA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BuXlMvbx6
+ Tv+8ek7/vHpO/7x6Tv+4eUyv////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bt3lNk718Uf+9fFH/vXxR/718Uf+6e0/fp3FDB////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Aax2Rwmxfk4T////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8Bs3dLTb59Uv+9fVL/vX1S/719Uv+9fFL9sXdLP////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AbZ5TV/cn3Dz5Kl5yeStfI/WonJRu4hZGf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqXBEDbx8UuW+flT/vn5U/75+VP++flT/un1Ru6Bt
+ QgX///8B////Af///wH///8B////Af///wH///8BpHVFBbt8Uce/f1X/xYRZ/8+MYP/bmm3/zpNl46Jw
+ Qgn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Abh7UIO/gFf/v4BX/7+A
+ V/+/gFf/wIFY/8OFWpWicUIH////Af///wH///8B////Af///wGkcEMDuHxQh7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/un1Sm////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Aat0
+ SRO9gFbhwIFY/8CBWP/AgVj/wIFY/82MYv/eoHLH1qR0UbJ/UBmndEYLqnNGE7h9UUe8f1W7wIFY/8CB
+ WP/AgVj/wIFY/8CBWP+/gVf7sHdKLf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wG2e1FFxYdd+cKEW//Ag1r/wINa/8GDWv/Ki2H/3Z5y/+SnevffoHTt0pJn88WG
+ Xf/Bg1r/wINa/8CDWv/Ag1r/wINa/8CDWv+4fVKT////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BwYVZVc2PZvfFh2D/wYRc/8GEXP/BhFz/wYRc/8KF
+ Xf/DhV3/wYRd/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/7uAV72pc0QJ////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AcSIXUHbnHLb15hv/8iK
+ Yv/Dhl//woVe/8GFXv/ChV7/wYVe/8GFXv/ChV7/woVe/8KFXv/BhV39un9Wn6t1SQv///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGueUwN2qV4c+WugtXkq4D92p51/9GTa//Mj2j/y45n/8uOZ//Nj2j/yItk+cCFXLuzfFBD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaJtQAXElGcv2qx/Y+OvgoXhpnuT255zjdWXbX3DiV9VsXtQHaBu
+ RAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAAAAP//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//AAAAAAAA//8AAAAAAAD//ygA
+ AABAAAAAgAAAAAEAIAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAD///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcAAAALAAAACQAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bx3Q+A9iFSwPYhUsD2IVLA9iF
+ SwPYhUsD2IZLA////wH///8B////Af///wH///8B////AQAAAAUJCRgzDxAmVQkJFkcAAAAjAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Aa9q
+ OweydkAJtHhACbJ2QAmuckAJrnJACbV2QwnjmYYD////Af///wH///8B////Af///wEHCBMHNzW7uUlE
+ 3PMsKsnpICGIkwICBRv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAAAwAAAAsAAAATAAAADwAAAAkAAAAPAAAADwAAAAcAAAALAAAAEQAA
+ AAv///8BAAAAAxMLBQ9UNB0dgFQwFbJxQQ90Sy0XTjQdH1E0Hh9wSi0VFxMQDwAAABEAAAAJAAAABwAA
+ ABEAAAANHB5KBzAyxMttbuXvU1Tr/yQl2PskJHNdAAAABf///wEAAAALAAAAEQAAABEAAAARAAAAEQAA
+ ABEAAAAPAAAABf///wEAAAAHAAAAEQAAABMAAAANAAAABf///wEAAAADAAAADwAAAA8AAAAF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAR0PECxTIiFRbxUWNV0DAwg/EhIvXRQU
+ NFkKChoXFBQyPxESL2EQEi07AAAAAwYGDQ0WFTBVIRsxaUUuLzVgPSkjJRkZTyolSXcpIj9xIBURTRIS
+ LFUSEzFfEhMtKQ0OISMSEzBfFBQzUwcHEQ1ERqMPNjiWIS8yy90wM+b/LjCztwEBAg8AAAAFEhIvOxES
+ LmEQEi1jEBItYxASLWMQEi1jEhMxXQwNIBsAAAATAwQLPRYXPWUkI1NzFBQyWQEBAikAAAAHBwcRDxMU
+ MlMSEzFdDg4iH////wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAk7Oo+DZF/f91hW
+ 6v9dXt/7NTiq0UxL2vtOTdT3MjJ7Hz09u7NWU+P9QULAsQAAAAMpK2kbQ0PK7VRT4/1FPpF3QDRWW2Fc
+ 0eVaV+f/X1/n/T9At91DQ8nxU1Hg/T4+qmE3OKVpT03b/UxM0uklJV0X////AQkKGBUwMrrPLzLc/z1B
+ 2vUaG0MvAAAABT0+uatZVt/9Xlzg/VtY3/1YVt/9WFbf/VRS4P0yNJFVLSxpX2dizd1kYOn/cW/u/0lL
+ 2PktL56zDAweJScqbyFJSNP1U1Lh/TIzkU3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEcHkYROjzL6TE01/82OcTVXF7Op1RY3/c1Odz/P0LR2xERJg0xM7i1Oz/i/zw/xbUAAAADKixtGy4y
+ xO9DR+j/QzyNez89s7cyNtf/MjXI8VdVvaVhY9jlMjbY/0JF4PsyM4UxNDeoazA01/9FSNvrJiddFwAA
+ AAMmJ2dFNDfP+TU52/9GSuv/MDGOewAAAAc6PcGdYGTs/2xw6/90d+P7cnbl+XF15/dZXeL1MTOMX0JD
+ yd8zNtj/NjrL41lczLdsb+n7Sk7n/zY4pHUoKm4jLjLL+UZK5/8xM5JP////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BNjd/DTs+0PFMUO7/LjCKnwUFDkMwM6axPkLi/0VHz80GBg8JNTi7tUNH
+ 5v8/Qse1AAAAAyosbRs0N8fvSk7s/0lAjn0+Pry/SU3q/z49stMuIB9nNi9jiTY62f9KTeH5KytuJzc6
+ qWs3O9v/Sk3d6yYnXhcAAAALNzmmmzk93P86Pc39RUnn/0BCxMkICBIVQEKpHV1g3tlfY+//Oz7I7SQm
+ X2UqLGcjP0CXGTI1kFc3Otb9PEDY/R0fVW8KCyJNMDKRqTM1mbMrLXxrJSdnJTQ3zvlNUOv/MzWWUf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFOT8iNmpzy+3h56P1cXdTnSEnG50NG
+ 5P9JS9PPBgYRCTk8vrVJTen/Q0bGtwAAAAUpK2sbOTvK71BT7/9OQ45/W02QaYqM6vWGiO3/Y2PZ8VJQ
+ veE8P9v/UFPj9yoqZyU5O6prPkHe/09S3+smJ1wZERIsIT9ByeVBROH/PT+xpz9C2vtSVeb5JidmRQAA
+ AAM/QrMxaWzo6V1h7v89QMThFRY3RwAAAA04OqlvPUDc/2pq7f9+fOXzfnvl83585fNtauDzUlLGwykr
+ byU5PdH5VVnw/zU2mFkAAAAD////Af///wH///8B////Af///wH///8B////Af///wEAAAAFCAgSJygq
+ bXlZW7Sren3V1YSF5vdSVej/TVDUzQYGEAk8Pr+1Wl7u/0dKw8cAAAAdGhtEMT5B0PNWWfD/UkWNg2c9
+ G0M7LEZ/UUyUtXV0xtGEhd/zW17l/1VY5vkvL3kpPD2sa0RH4f9UV+DrISFPHTEygmNER939R0rc+Ts8
+ nCtBRM/XWFvx/zk8oY8AAAAXAAAAIS8xf11zd+r5XmLu/zw/tssLCxo3ODulY0RH4P9gZOv9VFbAtVZZ
+ xqtSVczfSk3l/0ZJz7stL3cjP0LU+WVo9/8yNZGFAAAAJQAAABkAAAAD////Af///wH///8B////Af//
+ /wH///8BABcXA1dWt599edztPT6gsx4eQWdHSLPJT1Lq/01Q0sMFBQ0FQELBtWFk8f9iZeD1KSpqgzc3
+ cYlLTd39Vlnu/1xLi3tiUo2De3bR61dUut06LDyJSEF7s0pN5P9UV+T1MTR8FT1ArGtKTuX/WVzh6xgX
+ OydERry7S07m/0hLzsE6On8FQkTBiVVY7v9RVNPdICBLU0VCgpNFQoGVT06ry4aI9P9gY+7/P0GyuS4v
+ ejdUV+T1Y2b0/zU2ip8nJ1B1WVjR5UpN5P9CRb57Li93IURH1/lrb/v/TE7H31FOjJ0+PYZ1AAAAB///
+ /wH///8B////Af///wH///8B////Af///wFGSMFplZf0/YaI7/+Jhu35e3ry/09S5/9HScZ/AgIFA0dJ
+ x7F4e/X/YmTf+5CQ8v2RjvD9WVzs/01O1vF+V15Td1RpWXl75fWXmfP/g4Hr+4uI8v1TVur/SkzSxSgr
+ WAVAQq1rUVTo/15h4usjJVk3XF7c82hr7/9ERrxv////AT9BpTdcX+b9dnnx/Tw+oq17e/D/kpL2/5OS
+ 9f+Rkvb/lZj3/2dq5/cyM3whWVzPg6ut9/2Ehe/9h4Xu+15f7P9IS9TXQEKnFTY4ix1XWt73bnHw/3d5
+ 6/+Ojvb/WFrV0xsdQQv///8B////Af///wH///8B////Af///wH///8BQECgA1NWxFWHid+xgYPixWNm
+ 4LVKTMhvQkOqB////wFNUMJraWzWo0hKumFoatGFhIbhw1da2K1tVYBXpGQwP6RlLz92V3RngHrEt4yK
+ 1tFwbdLNV1K9n0RFqh3///8BQkOva1da7P9jZuTrOjyWS2Bj1KNeYdGfQkOoHf///wE7O5EDVVjIlWVo
+ 1qFHSLOLbWjBtXNtwbdzbcG3c23Bt3Rvw7VjYMKnZFKCEVdOkAVWV8hhi43js21w4rtPUtOBQUSuGf//
+ /wFCRKsPWl3OnV1gz51VV8B5foDiv1FS0ZFARaMH////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BOjOVAz09lAU6OpID////Af///wH///8B////Af///wH///8B////ATo9lAU/QpQDoGU0H6Fj
+ MUWhZDFFoWQxRaNkL0WhYzFFoWMxRaNmMjumcUMJ////AURGsWtdYO7/aGrm6ycnYRf///8B////Af//
+ /wH///8B////Af///wH///8BpWc3GaNlL0OjZC5Fo2QuRaNkLkWkZS5FpGUwQ6JnNTmncz8J////ATY6
+ hQM9PpAD////Af///wH///8B////Af///wH///8B////ATo8lAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZ1jNA2gZDJFoWQyS6FkMkuhZDJLoWQyS6FkMkugZDJJoWo6I////wFLTb1lio32/3d6
+ 6OkyMn4T////Af///wH///8B////Af///wH///8BpHQ9BaBkNTmhZDJLoWQyS6FkMkuhZDJLoWQyS6Fk
+ MkuiZzQ7nGQpBf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGobywDoWQ0NZ9jMVGfYzFRn2MxUZ9jMVGfYzFRn2MxUZ9l
+ NEelbDwTSEqzJ1VWw2tQUr5dQECiA////wH///8B////Af///wH///8BsH1OA59mOSWfYzJPn2MxUZ9j
+ MVGfYzFRn2MxUZ9jMVGfYzFPpGg2Jf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNrMxefYjJRoGMyVaBj
+ MlWgYzJVoGMyVaBjMlWgYzJVoGQ0SaJtPxethGUD////Af///wH///8B////Af///wH///8Bn3VUA6Jp
+ OSOfZDNRoGMyVaBjMlWgYzJVoGMyVaBjMlWgYzJVn2IzTaRwOA3///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGnZjQDnmM2NZ5gMVufYDFbn2AxW59gMVufYDFbn2AxW59hMVufYzNVn2Y3NaRpPBWlbUcHonJFBaJx
+ TAWlb0YHn2hAF59lODufYTJZn2AxW59gMVufYDFbn2AxW59gMVufYDFbnmExW6BnNy////8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaJsNQ2eYjJNnWEwYZ1hMGGdYTBhnWEwYZ1hMGGdYTBhnWEwYZ1h
+ MGGeYjFbn2MyUZ9lM0meYzNLn2MyUZ1iMV2dYTBhnWEwYZ1hMGGdYTBhnWEwYZ1hMGGdYTBhnWEwYZ5j
+ M02jaDoN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BoGU6F55hMlWcYTBlnWEwZZ1h
+ MGWdYTBlnWEwZZ1hMGWdYTBlnWEwZZ1hMGWdYTBnnWEwZ51hMGWdYTBlnWEwZZ1hMGWdYTBlnWEwZZ1h
+ MGWdYTBlnWEwZZ1hMV2gZjcb////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGcZjcZnGEyWZpgMGubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5xhMmGfZjYn////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAMAAAADAAAAA////wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAMAAAAD////Af///wH///8B////AaFmNxOcYjJNmWAvb5pgMHGaYDBzmmAwc5pgMHOaYDBzmmAwc5pg
+ MHOaYDBzmmAwc5pgMHOaYDBzmmAwc5pgMHOaYDBzmmAwcZxhMmGeZjgjqFU2A////wH///8B////Af//
+ /wH///8BAAAAAwAAAAMAAAAFAAAAAwAAAAMAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAsAAAAVAAAAFwAAABUAAAAPAAAAA////wH///8B////Af//
+ /wH///8BAAAACQAAABUAAAAXAAAAFQAAAA8AAAAD////Af///wH///8BnWY6B51jNi2bYTJdmmAxc5lg
+ MHeZYDB3mWAwd5lgMHeZYDB3mWAwd5lgMHeZYDB3mWAwd5lgMHeZYDB1m2AyaZxiNUOhZjoR////Af//
+ /wH///8B////AQAAAAMAAAAJAAAAEwAAAB0AAAAjAAAAJwAAACUAAAAfAAAAFQAAAAsAAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAUAAAAhAAAAQwAAAEsAAABHAAAALQAA
+ AAn///8B////Af///wH///8BAAAAAwAAAB8AAABDAAAASwAAAEkAAAAzAAAAC////wH///8B////Af//
+ /wH///8Bn2k7CZ5iNyebYzRLmmEyY5hfMW+YXzJ5mWAxgZlhMoOYXzF9mF8xc5lgMWuaYTNXnWU1N5xl
+ OROndDMD////Af///wH///8B////AQAAAAcAAAAZAAAANQAAAEcAAAJPBAQLWQkKGmEFBg5bAQEDUQAA
+ AEkAAAA3AAAAHQAAAAn///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFMzSLY1FO
+ wM1VUcDPVVHBzUFAqZcEBAsJ////Af///wH///8B////AQAAAAUuLoJVUk/AzVVRwM9VUcDPREOsowMD
+ BQ3///8B////Af///wH///8B////Af///wGjbj8np24+c6xyQLGvc0LjtHdG87p8Sfm/gU35xYZS98mL
+ VuvQkFvH0pNeh8CGVEGhbkAH////Af///wH///8B////AQAAAAcAAAAjBQUOSzw6do1jXbbDYl3R6VtX
+ 2vNTUdz3TErY9UZFzus8PLLJKClxjwcHEU8AAAAnAAAACf///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABTEzoX0oK9L/KizS/zY53/87PcfDCAgSCf///wH///8B////Af///wEAAAAFLjCYayks
+ 0f8qLNL/NDfd/zw+zdUKCg4N////Af///wH///8BpXFFA6JrPTehaDmzn2U0855kM/+eYzP/nWMy/51j
+ Mv+eYzL/nmQz/6BmNf+jaDf/qm48/7l7SP/KilT7zo9Yz8CEUmejb0UH////AQAAAAMAAAAbFhc2WWBc
+ ws9aV+T9NDbX/ycq0P8lKdD/JSjQ/yQoz/8lKM//JyvR/y4x1P0xM7fbGRpJZQAAAB0AAAAD////Af//
+ /wH///8B////Af///wH///8B////AQAAAAUyNaJ9KS3Q/ykt0P87P+L/PUDIwwgIEgn///8B////Af//
+ /wH///8BAAAABS8ymGsqLtD/KS3Q/zk94P8/Q8/VCgoODf///wH///8BpG1AD6BoOJOcYjH5mmAv/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+bYTD/n2Qz/6hsOv+4eUb/un1Kvalz
+ RCcAAAAJEBApP05Nxts4Otn/KS3P/ykt0P8vM9b/Sk7p/3J28v+Dh/L/aGvr/zU52v8pLdD/LjLV/zQ4
+ wuUSEzJDAAAAC////wH///8B////Af///wH///8B////Af///wEAAAAFNDaifS0x0v8tMdL/P0Pk/0BD
+ ycMICBIJ////Af///wH///8B////AQAAAAUxM5prLTHS/yww0v89QeL/QkXP1QoKDg3///8Bo29AH55l
+ NcubYTD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/nGIx/6RoN/+scD7lhlgzSTg5nps2Odf/LTHR/y0x0f8uMtP/Oz7T5UlM0aVSVc+NY2XUo4yP
+ 5NuQlPf/Oj7d/y4y0/9BReX/NDanoQAAARP///8B////Af///wH///8B////Af///wH///8BAAAABTU3
+ o30wNNT/MDPU/0NG5v9DRcrDCAgSCf///wH///8B////Af///wEAAAAFMTObazE01P8wM9T/QUTk/0RH
+ 0NUKCg8No24/H6BlNNWcYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/nGEw/55jMf+hZjX/o2c2/6Fm
+ NP+eYzH/nGEw/5thMP+bYTD/m2Ew/5thMP+cYTD/nmMx/6FnNutJQ7btMDTU/zA01P80N9f/ODvFwT9C
+ pxn///8B////Af///wE4OJMPUFPLtVBU7f8yNtX/P0Pi/0lM1uETFDId////Af///wH///8B////Af//
+ /wH///8B////AQAAAAU3OaR9NDfW/zQ31v9HSuj/RUfLwwcHEQv///8B////Af///wH///8BAAAABTI0
+ m2s1ONb/NDfW/0VI5f9HSdHVVzsnF6BnNcOdYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nWIw/6Jn
+ NP+vcj73v4BK78qJUu/OjVX5woJM/61wPP+gZDL/nWIw/5xhMP+cYTD/nGEw/51iMP+dYjD/iV5e/11g
+ 4/9RVOX/PkLZ9T0+pSn///8B////AQAAAAMAAAAHAAAAEx8fVEs4O9L7NDfW/zs/3f9PU+T1KittJ///
+ /wH///8B////Af///wH///8B////Af///wEAAAAFODqlfTg72P83Otf/SUzp/0ZIyMUDAwYZAAAAEwAA
+ ABEAAAARAAAAEQAAABUvMpFzODvX/zg71/9IS+f/SUzS1ZliNo+eYjH/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nmIx/aJoN8+obz5hq3VDK6l0RResd0gXt35NL86PWXXKiVPbrnA9/6BkMv+dYjD/nWIw/51i
+ MP+dYjD/nWIw/55iMf+chJz1jJDo701QzsEcHDUHAAAACwAAABUAAAAfAAAALwAAAEEmJmB9QELZ/Tc7
+ 1/89QN3/TVDj8zMzgyH///8B////Af///wH///8B////Af///wH///8BAAAABTg7pX06Ptr/Oj7Z/0xQ
+ 6v9ER7/PAAACSQAAAEcAAABHAAAARwAAAEcAAABJKCp3jTs/2f86Ptn/Sk/o/19Xuu2fZDL3n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+fYzH/oGQy9aNrO22keEYH////Af///wH///8B////Af///wH///8BpXBDEbF1
+ Q5+laTb/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/oGU042RJWR0WFTMbAAAAJwAAADkAAABHBgYRWSMi
+ R3VdWpepb2zf8T9C3P86Ptn/QETf/0VI1tszNH8L////Af///wH///8B////Af///wH///8B////AQAA
+ AAU6PKZ9PkLb/z5C2/9PU+v/YGDZ72JetcFiXrXBYl61wWJetcFiXrXBYl61wV9dwNdBRdz/PkLb/05S
+ 6v+JZXr/oGMw/6BjMf+gYzH/oGMx/6BjMf+gYzH/oWQy+6NqOlv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGncUIHp2s6oaFkMv+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+EVi99AAABRRER
+ JmFEQ3aRdG+3xX562Ot6dun7X17o/0FF3f89Qdv/PUHb/0FF3/9BRMOH////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAFOz2mfUFF3v9BRd3/R0vj/0lL4f9JTOH/SUzh/0lM4f9JTOH/SUzh/0lM
+ 4f9JTOH/Q0fe/0FF3f9ZVdL/nmY9/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6NpOJeZgEwD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaVtPxmiZjTloGQx/6BkMf+gZDH/oGQx/6Bk
+ Mf+gZDH/kl873XBrsb2CfuLzcW7s/1FT5f9DR9//QUXd/0FF3f9CRt7/Q0ff/0JG3v9BRM3NQkSoE///
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABT0/p31GSeD/Rkjf/1FU6P9kZ+7/ZGju/2Ro
+ 7v9kaO7/ZGju/2Ro7v9kaO7/ZWju/1te6v9GSeD/blmi/6FkMP+hZDH/oWQx/6FkMf+hZDH/oWQx/6Jm
+ M/OkbT4l////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpGk5f6Jk
+ Mf+hZDH/omQx/6JkMf+kZjL/pmc0/6VrPv9jXdb/R0rg/0ZJ3/9GSeD/SEvi/0xP5v9SVev/VFju/01P
+ 4fdFSMqnQEGqGf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAU+QKh9SUzi/0lM
+ 4f9dYPH/goTs94WH5eGGiOffhojn34aI59+GiOffhYjm34GE5O1dYOb/SUzi/4phaf+iZDD/omQx/6Jk
+ Mf+iZDH/omQx/6JkMf+kaDW7onRBA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaNtPiekZjP3pGYy/6dpNP+qazj9oGg/44Nmkv1cVMP/SUzf/0lM4f9NUOb/Wl3x/2Jl
+ 9v9dYOz9VFbd1UdJwpU0NYtBBgYQEQAAAA8AAAAH////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAFP0GpfUxP5P9MT+P/X2Ly/1RW0MMbGkINNTWQBTU1kgU1NZIFNTWSBSYmYgc7PaFtTE/j/01Q
+ 4/+dZUP/pGUx/6RlMf+kZTH/pGUx/6RlMf+kZTH/pGo4cf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqGw5u61wPMGscT9zkmE5L0JCpolQUub/TE/j/01Q
+ 5P9QU+f/VVjk7VFU16lISsBhQkOpIxERKgsAAAAvAAAASQAAAEcAAAA/AAAAIQAAAAX///8B////Af//
+ /wH///8B////Af///wH///8BAAAABUBCqn1QU+X/T1Ll/2Jl9P9WWdHDBwcSCf///wH///8B////Af//
+ /wEAAAAFOz2ga1BT5f9YVdX/pGc1/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6NtO0X///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNwQg2jdkgF////AQAA
+ AAdISsOxUFPm/1FU5v9ZXO7/RknCvzEzgCcLCxsFAAAABQAAAAkAAAAfRUWWk2hlucVlYrC9YmCss0RD
+ k10AAAAD////Af///wH///8B////Af///wH///8B////AQAAAAVBQ6p9U1bn/1NW5/9laPX/WVvSwwcH
+ EQn///8B////Af///wH///8BAAAABTw+oWtTVub/ZVvC/6ZmMf+mZjL/pmYy/6ZmMv+mZjL/pmYy/6Zn
+ M/2lcUEd////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAEDSk3Jr1NW6P9VWOn/a272/y4vd4cAAAA5AAAAKwAAACkAAAAzCQkXT1RV
+ 1OlZW+r/W13s/2hq9v9LTsF9////Af///wH///8B////Af///wH///8B////Af///wEAAAAFQkSqfVZZ
+ 6f9WWen/aGv2/1td0sMHBxEJ////Af///wH///8B////AQAAAAU9P6FrVlno/25ftf+mZzD/pmcy/6Zn
+ Mv+mZzL/pmcy/6ZnMv+maDT7o2w/C////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUpNxYFeYfD/WFvr/2Nm9P9SVdHnLy9tjRUV
+ LmkNDR5hKChNe3NvuMlkZe7/Vlno/1da6v9dX+39Q0WrQf///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABURFq31aXev/Wl3r/2xv9/9eX9PDBwYRCf///wH///8B////Af///wEAAAAFP0Gia1pd
+ 6v9yYrL/qGcx/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2g186hzRgf///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wFERq8ndHfs73d6
+ +P9cX+7/W17s/2pq8P90cun7g4Dp+Y2K8P1xcfL/Wl3r/1lc6v9aXez/UlTUwTU1fQX///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAANISrN5YGPu/2hr9P90d/r/YWPWvwgJGAf///8B////Af//
+ /wH///8BAAAAA0RGrGVfYu3/fGy3/6loMf+paDL/qWgy/6loMv+paDL/qWgy/6lqNe2idkQH////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AVdYxlmvsfP1r7H9/3l89/9kZ/H/YGPv/19i7v9gY+//YmXw/2Nm8v9hZPD/V1nc30ZI
+ sSf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BTlC+cZCS8P+rrvT/p6n1/2Zo
+ 2LsfIFkD////Af///wH///8B////Af///wFJTLpdiozu/6qcw/+zcT//tHJB/7RyQf+0ckH/tHJB/7Ry
+ Qf+yckHxpHdEB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BVlnCQ5SW4cvAwfP9ysz+/7y//v+oq/3/mp39/4eK
+ +v9rberzVVfSp0ZIsCH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AUJE
+ qBFAQ60vPkKtLz5CrS9DRa0d////Af///wH///8B////Af///wH///8BREWqCz9DrS+CYG1dvHlN/7x5
+ TP+8eUz/vHlM/7x5TP+8eUz/uHhL+aN1RQv///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEuJYADPUCsJVJU
+ wVdbXc1xWlzLd1JUx2VISrZHP0CnD////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bp3FCJ7t5Tf28ek7/vHpO/7x6Tv+8ek7/vHpO/7p5Tf2mckYh////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaByRwW6eU3xvXtP/717T/+9e0//vXtP/717T/+9e0//q3NFRf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BuHlNzb18UP+9fFD/vXxQ/718
+ UP+9fFD/vXxQ/7R3S3v///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZ5uQQP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbZ4
+ TI29fVL/vX1S/719Uv+9fVL/vX1S/719Uv+4ek/FonNBBf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AahxRRPRmGi94K17k9CdbVetekwjnV8/A////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGudEg/vX1S/b59U/++fVP/vn1T/759U/++fVP/vH1S+653Sjf///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGyd0tXwoFW/dmWaf/mpnf/665++eat
+ fd3jrXyhzJloY6JuPgf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bp3BBC7p8UdO+flT/vn5U/75+VP++flT/vn5U/75+
+ VP+5fFG9oG1CB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wGkdUUJunxRyb5+
+ VP+/f1X/woFX/8eFWv/Oi2D/1JJm/8WJXNujcUQL////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGzeE1vv4BW/79/
+ Vv+/f1b/v39W/79/Vv+/f1b/wYJY/7+CV5mmcEYH////Af///wH///8B////Af///wH///8B////Af//
+ /wGmbkIFtXpOi7+AVv+/f1b/v39W/79/Vv+/f1b/v39W/7+AVv+3e1CN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bp3JGDbt+VNnAgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/NjGL91ZZps7eCVSn///8B////Af//
+ /wH///8B////Af///wGrdEgbuHxRp7+AV/3AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP++gFb1qnRGKf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGyeU1LwYNZ98CCWf/Agln/wIJZ/8CCWf/Agln/xIVb/9WU
+ af/nq3z15K+Ar9emdnPNmWpTyI9hTcSHW2HBhFihwIJY68CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/uH1Snf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bn2U1A7t/VInIiWD9w4Vc/8GD
+ Wv/Bg1r/wYNa/8GDWv/ChFz/y4xi/9eWbP/jo3f/5KR3/9+ecv/QkGb/xIZd/8GDW//Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/vIBW4ap1Rx3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGncUIFwoZakc6PZv/FiGD/wYRd/8GEXP/BhFz/wYRc/8GEXP/BhFz/w4Vd/8OGXv/DhV3/wYRc/8GE
+ XP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/voJZ9bB4Szv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AZlpOAPEiF2B2Jhv9c6QaP/HiWH/woVe/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/vYFZ47J6T0P///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AciOYT3eonXT5qh+/9aX
+ bv/LjWb/xYhh/8OGX//ChV7/woVe/8KFXv/ChV7/woVe/8KGX//Dhl//xIdg/8OGX//Chl79un9Wua11
+ SSf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bm2g7Cc2ZbFvms4a76rWI9+mwhf/go3n/15hw/9GTbP/OkWr/zpFq/86Raf/Qkmr/zpFp/8iL
+ ZPO/hVy3sHlNR59rPAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bnmo+A7uJXCHLm29Z3a6BjeSwg63kq37B3qJ3x9ue
+ c7nWmW6ry5BlhbuCV1eveU4doG5EA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AVw3AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABACAAAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAA////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAMAAAADAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAkAAAAPAAAAEwAAABUAAAARAAAACwAAAAUAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAHAAAAGQAAAC8AAAA7AAAAOwAAADcAAAArAAAAGwAA
+ AAsAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaNfKwPaf0gF34BJBd+ASQXfgEkF34BJBd+ASQXfgEkF34BJBd+ASQXfgEkF34BJBd+A
+ SQXfgEoF9oxkA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAsMDB0tEBEqUxYXN20aGT5zEBAqZQoLF1UBAQE/AAAAJQAAAA8AAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BqksqBbRgRQe2YUYHtmFGB7Zh
+ Rge2YUYHtmFGB7ZhRge2YUYHtmFGB7ZhRge2YUYHtmFGB61sRgfumIkF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAgIGCy8whXNST8PbXFXU51VP1OtFQsjlMjGdxSIi
+ YYUFBQtBAAAAHwAAAAf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZlgLwOyZzcHrH89CauAPAmziDwJs4g8CbOIPAmziDwJrIE8Cap+PAmqfjwJqn48Cap+
+ PAmrfzwJxYNFCdeYfwX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wENDiENLS+kmykl2f1BPeX/NTLi/yAd3f8cG9n/IyPF9ScneZEFBQozAAAADwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAUAAAAFAAAABQAAAAP///8BAAAAAwAAAAMAAAAFAAAABQAAAAUAAAAD////Af//
+ /wEAAAADAAAABQAAAAUAAAAFAAAAA////wH///8B////Af///wEAAAADXycUB5lRLA+XWzQRoGE3D7Fn
+ QA2+akQNwW5EDbJpQA2dYDYPklcwEYNPLxOFUC4Tk1cyEZ5gNg+sdEANgmhnBwUFBQUAAAAFAAAABQAA
+ AAP///8B////AQAAAAMAAAADAAAABQAAAAUAAAAD////ASMkWAkwMbCxKive/3p79v+lpvn/dXbx/yMj
+ 2/8bHNv/JifE7yYmZ28AAAAbAAAABf///wH///8B////AQAAAAMAAAADAAAABQAAAAUAAAAFAAAABQAA
+ AAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAA////wH///8B////Af///wEAAAADAAAABQAA
+ AAUAAAAFAAAABQAAAAUAAAAD////Af///wH///8B////Af///wH///8BAAAAAwAAAAUAAAAFAAAAAwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABwAAAA8AAAAZAAAAHwAAACEAAAAdAAAAFwAA
+ AA8AAAAPAAAAGQAAAB0AAAAdAAAAGQAAAA8AAAAHAAAACwAAABcAAAAdAAAAHQAAABcAAAANAAAAA///
+ /wH///8BAAAABwAAABUTDQYfNSMTKUAsGidXPCIfiGE2FbR7RBGdbjsTbU0uGU80ICM5KhgrNCYVLzYn
+ Fi0/KhgpVDkiIVw/KxkaFw8VAAAAGwAAAB0AAAAdAAAAFQAAAAkAAAAHAAAAEQAAABsAAAAdAAAAGwAA
+ ABUAAAAJOz6bBzg8s6syNMTPPD3H1U5P2elsbfL/R0jw/ygp5P8nKNv/LS6gvQwMGi8AAAAL////Af//
+ /wEAAAADAAAACwAAABkAAAAdAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHQAA
+ ABkAAAAPAAAAA////wEAAAADAAAACQAAABEAAAAbAAAAIQAAACMAAAAhAAAAGwAAABMAAAALAAAAA///
+ /wH///8B////AQAAAAkAAAAVAAAAHQAAAB0AAAAZAAAAEQAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAcAAAAZAAAALwAAAD8AAAFFAAACRwAAAEMAAAA7AAAALQAAAC0AAAA7AAAARQAAAEUAAAA3AAAAHQAA
+ AA0AAAAdAAAANwAAAEUAAABFAAAANwAAAB0AAAAH////AQAAAAMAAAATAAAALwoGAUcXDwdRIBMLSzUg
+ ETdwRy8fnWdBF2dDKh87JRczJRYORRwRC08bEQhVHBAHUyASCk0oGQ5DLBsRNQoGAzUAAAA/AAAARQAA
+ AEEAAAAtAAAAEQAAAA8AAAApAAAAPwAAAEcAAABDAAAALwAAABMYGD8DQkOoHUdJnx1FSJwfNjijVTEy
+ w+s0Nuj/Ky3h/zQ37P8uMMTxISFSVQAAABMAAAAD////AQAAAAcAAAAbAAAANwAAAEUAAABHAAAARwAA
+ AEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABFAAAAOwAAACEAAAAHAAAABQAAAA8AAAAhAAAANQAA
+ AEEAAABHAQEESQAAAUcAAABBAAAANQAAACUAAAARAAAABf///wEAAAADAAAAFQAAADEAAABDAAAARQAA
+ AD0AAAAlAAAACf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAFAAAAGQAAAjcQEi5fHB1QfS4ucpM0NHmdKClkjxYX
+ NGsBAgRPCAgUUxwcRnUbHEl/GxxJeyMiWGkZGT8nAAABDxkZPTUgIlNvGhxJfRscSX0eIE9rEBIvLwAA
+ AAf///8BAAAAAwoKFxsfH0pdHh1KgSIfRYcnI0qBNSlEV146LCVvSDIhOyQZNyAUClEeGCxzKCVckTo3
+ d6c1MWufKiVLhx4WHGkUCwZVFxg2ZxscSnsaHEl9HR5OdyIjVVMGBg0RAAABDxocQkceHk53GhxHfxwc
+ S3siIlNdCwwaGwAAAAP///8B////Af///wEWFzUNNDaXjygr0/8pLN3/Oj3u/zM13P0uMIaZAQEDHQAA
+ AAf///8BAAAACRETLisfIFJtGh1JfRocR38aHEd/GhxHfxocR38aHEd/GhxHfxocR38aHEd/GhxHfxsc
+ SH0eIE5xFxg8OwAAAQsAAAARAAAAKQAAAkMJChxdGx1QgScoZ402NnqfMjF1myYnX4kUFC9nAwIFRQAA
+ ACsAAAARAAAAAwAAAAUNDSAhHiBOYRsdS3saHEh/HiBQdxobP0MAAAAN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AA0FBQwxLS5rg2ljxuOHfuf9fXXz/2Re7v9JR+L/OjrE7TIzjbUtMHWhWVbU925o4/trZeL7VFLL+T09
+ mU8FBQ4JNjaTa1NQz/dtZ+P7bWfi+1NQ0PczNI5nAAAABf///wEAAAADKSpmMUFBtddmYN/7bmfi+2Je
+ 3ftFQ6u3XT0rLVM2HS8sHyNVSkWNr3x01euGfe//c2zw/1ZT6v9AP9b5OTmx3y4saZ85O6DRZmHe+21o
+ 4vtlYd37RES30ykpaRMaGj0VPz+ttWRf2fttZ9z7aGLc+0NEtdMlJmArAAAAA////wH///8BAAAABQEB
+ AxcuMHyBLzDM/SUo1f82OOX/QUTu/zI1st0UFC83AAAADQAAAAMAAAAHMzWEX1NSy/VsZt37bGbc+2xm
+ 3PttZ9z7bWfc+21n3PttZ9z7bWfc+21n3PttZ9z7bWbc+1tY1Pk5O5+RAwMKDwAAACUODiRPOTd2mXBq
+ w+GIf+X9gHjw/21m7/9ZVe3/SUfg/Ts9wOsvMYuvExQtWQAAACkAAAALAAAABSotdzlQT8jpbWfj+21o
+ 4/taWNb7NziaiwYGBg3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAADAAAAEyorbGlUU8ztYVzr/z9A4P8xNNr/T1Ls/4OG
+ 7/9tb+X/PT/S/TY5ufMxM9T/Ozzf/0FD5/84ObvnLS1pHQAAAQkzM5NvLzLK+zY32/9HSOz/Oz7Z/TQ2
+ k20AAAAF////Af///wEqLW8zMjS23zM02f8+PuL/RUfq/zs7rcFXOCIzQysZPUNAk61lYOb5U1Ho/zY3
+ 2/85POH/Zmnw/3+C7P9ZW+D/NTfF+zY5xf00Ndr/QUHm/zk72/04OaKVIiJCBSAgSBc0NrPBLzLX/zs7
+ 3/9JS/D/ODu91ycnYC0AAAAD////Af///wEAAAAJERIrLTY4pcMuMNb/LTHY/zM33v9ITPP/Oj3P/SYn
+ ZGMBAQIXAAAABQAAAAU3OZBhLTDM+zo63f9SU+T/VVbm/0tM4v9JSuL/R0ji/0RF4f9EReH/REXh/0RF
+ 4f9JSen/QEPm/zc6pJkCAgYXFBY4S0tKq8F6c+r7aWXt/0JD4v9GSOv/bG/x/5KU7f9tb+P/NDfa/zE0
+ 0PsxNKHHFxc4TwAAABUAAAAJLS9/PTI0xfE0Ntv/RUbp/0JE4v8zNZ6PDQYGDf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAMHBxIXPj+vvURE4P8uMdT/LDDU/ywv0v9FSNjxYWTe53d65/eBhPD/OTza/ysu0f85PeD/Q0fp/zY4
+ sL8gIEMTAAAABzQ0k28uMcj7KS3R/0lN8f8+Qdn9NTeTawAAAAX///8B////ASosbzMzNrbfKCzQ/zo+
+ 4v9ITOz/PT2swVE1HjdDN11hRkbN8zo73P8rL9L/Ky/T/zM30v1SVNvram3f7YOG6vtfY+b/MDTU/ysv
+ 0v9DR+v/Oz7T9zU3jmcHBw0DICBIFzY5sr8pLdD/Mzfb/0xQ8/85PL3XJyhgLQAAAAP///8BAAAAAwAA
+ ABEkJVxTOj3C7Swv0/81Od3/Mzfa/0VJ6/9DR+b/NDaVpwsLGSUAAAAJ////AT0+nFswNMv7RUrf/2ds
+ 6v+OkvL/nKD2/5qf9v+YnPf/kpb3/5CU9/+Pk/f/j5P4/4SI+f9LTuj/OTynlwYGDiE4OZWjUlHf+0JC
+ 3/8sMNP/LDDV/0JG3/1YXOLxe3/o+6+z9/9eYuv/OT3f/zk90/s1N5ijBgYJFQAAAAkuL309MzfE8Scr
+ z/9ESOv/Q0fi/zU2no8IBgYN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////ASstaSU5O8DpLjHU/zI22P82Otz/NTe98TEy
+ iHUrLIFBNzmlfUxPyd1LT+f/MTXW/0FF5/9ITOv/ODqsrRAQJg8AAAAHNDWTbzE0yvsuMtT/TVLz/0FE
+ 2v00N5NrAAAABf///wH///8BKixvMzQ4t98sMNL/P0Pl/0tP7v8+PqvBWj4fN0U/i4szNtP9LTHT/zY6
+ 3P8yNtP/Ojmhx0U2Y1tIO3VfRUOjo1JU2/c9QeH/MjbX/0tP8v8+QdHzMTGBVQMDBQUgIEgXNzqzvy0x
+ 0/84PN7/T1P0/zs+vtcnKGEtAAAAA////wEAAAAHAQEDHTQ1jZM6PNH9MDTW/zo+4P8xNdf/PkLk/1BU
+ 9v86PLTZGRtAQQAAAA8AAAADP0GiOUFEzelydvb/YGTx/0FE4v9FSeH/Sk7R/U9SzfVRVNHzUVTT8VJV
+ 1e9RVdXtUVTV7UJFzus6PKSBIiRYQUFDwuE4Otr/LzPV/zE11/8zNsTvNzmmnzI0kmc2OaCLREfM8Vtf
+ 8/9lavj/UVXw/zs/xOsxMnAvAAABCS4vfD01OcbxKi7S/0lN7v9GSuP/NTeejwYGBg3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BNziEJzc6wu0wNNT/QETk/0dL6v8zNZrBBQYORwAAADUCAgYpLzF9eTU5zf0zN9j/R0vr/0pN
+ 6v84OqWdCwsbCwAAAAk1NpRvNDfM+zE01f9RVfT/Q0fb/TM1lGsAAAAF////Af///wEqLG8zNjm33zAz
+ 1P9DRuf/TlLv/0A/rMNoQSI1SEKUjzI20/0zN9j/S07u/z1A0PszK1GJLx4KVTskD0tBKiBPOzqgxTU5
+ 2f84PNz/UVX0/0BDzvMuLnlPAQEDBSAgSBc5PLS/MDTU/zs/3/9TV/X/PD+/1ycnYS0AAAAD////AQAA
+ AA0TFTA1Oj2tyzc62f84PNz/Oz/b/zM2z/84PNz/Vlr4/0BE1P0qK3JvAQEBGQAAAAX///8BP0Gqa05S
+ 2e+AhPv/X2Pw/zs/4P85PMz9NTaPvyAhTmMqLGdHPT+TMT9CnC9AQ50vQkObLSkpah0zNo9/PD7V+TI1
+ 1v88QOD/ODvW/zEzi6MICBE5AAAAMwICBjM1NpGlQUTV+0RHzvE/QsHjPD6xzS4vck8EBAgNLjB+PTc7
+ x/EuMdP/TFDv/0pO5f83OJ6PBgYGDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEzM2wLPT+92UdK5/9YW/T/U1b0/z1A
+ ve0kJFyJDg4kYwAAAE8ODiNbODvB9zI21v9MT+7/TVDr/zk7opsKChgLAAAACTU2lG82Os37NDjY/1RY
+ 9v9GSd39MzSUawAAAAX///8B////ASosbzM3OrnfMzfW/0ZK6f9RVfH/QUCsw25BIjdTSIdzPUDU+09T
+ 7f9YXPf/Rkjk/zs5kMcrJECJJxoQcSQUA2c1NHWrNDfV/zo93P9VWfb/QkTN8SsrbEUAAAAFICBIFzo9
+ tL8zN9f/P0Pi/1db+P8/QcDXKClhLQAAAAMAAAADAAAAFy4wfHVBQs33NTjY/0JF5f88P8/9PD66+Tg8
+ 2v9NUe7/T1Lu/zc4pLkODiIrAAAAC////wFLS6EHP0Cwf1VZ3feHi/3/W1/w/0BD5P88P9L5MTSJqQUF
+ CUMAAAAjAAAACwAAAAMAAAADAAAAETc6pK02OdX9Nzva/0VJ6P84PMP7GRxMew4QMWcOEDFnDhAxZxYY
+ QnUgI1iNGhxGgRMVOHUSEzdfEBAtMQEBAxEsL3s/ODzI8TE11f9QU/H/TVDp/zc5ppkPDyEP////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AUBAdQM/P7B/XV/j962x/f+Qkvf/T1Hj/0pK1vVJScHdQ0SlvzU1gak7PcH5NjjX/05R
+ 7/9QU+3/OjynnwsLHAsAAAAHNjeVbzk8z/s3O9r/WFv4/0lM3v0zNZFtAAAAB////wH///8BKixvMzk8
+ ut82Odf/SUzr/1RX8v9DQazDckcmOX1YUDtFRsDZgob2/7O1+/9wcu//SUve/UxL0vNJSLDXQj6Kvz08
+ js02OdX/PD/d/1hb9v9ER87xKipnQQAAAAUgIEgXOz60vzY52P9CReP/WV34/0FDwdcpKWEtAAAAAwAA
+ AAkFBg4lOj2jsz9B2v85Pdv/RUjn/z0/wOE9P6rBOj3V/UVJ5/9cX/n/QUTD5yUmX1cAAAARAAAAA///
+ /wE/QaQTQEO5l15h5/2Kjv3/WFvu/0JF5P8+Qc73LzGAnQMDCD0AAAAdAAAACQAAAAMAAAAPOjywyTc6
+ 1/8+Qd//TE/t/2Rh3P9uas/pbmnP5W5pz+duac/nbmnP525pzuVwa8/ncWzP52ZizeU6PZWJDRAkDy0w
+ fD07P8nxNTjX/1RX8v9RVev/OTunnRERJRH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAzs7iRVGR7indHbe87S2
+ 9f+srvT/l5nw/3d47f9nZu7/X1/j+0xM2/84O9n/UlXw/1RX7v86PKifCwscCwAAAAc3N5VvPD7Q+zs+
+ 2/9cX/n/TE/f/TI0jHEAAAALAAAAAwAAAAMqLG01Oz273zk82f9MT+v/V1rz/0RCrMVzSCk7mmErLVxM
+ emNVVcfblZjt/bu99/+kpvH/hYft/21v7v9mZer9W1re+z9B3P8/Qt//W173/0ZJ0fEtLnFHAQEBBSAg
+ SBc8P7W/Oj3Z/0VI5f9dYPn/QkTC1ygpYS0AAAADAAAADxwdSUlCRL/fP0Hd/0JF4v9FSOL/PkCvqTo7
+ mk8+QMzxQETh/11h+f9MT9/9MjSKjQEBAx0AAAAF////AQAAAAM9P6IbQUO9qWxw7/2Hivv/VVjs/0RI
+ 5P8+QsPxKSpqiQQECjsAAAAbAAAACQAAAA09P7fXOTzY/0RH4/9rbvT/i4v3/42M+f+NjPn/jYz5/42M
+ +f+NjPn/jY35/3Jx8P9gYPD/Wlvx/zs+op8aHTwLLjB+PT1AyvE5PNr/W1/3/1ZZ7f85O6ehDQ0ZGQAA
+ AAUAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHAAAAExsbQC8uMIB7QkSswWBj0OuChOf3mJvv+7Cy9v+nqfb/jIzw/09S
+ 3/9UV/H/V1rv/zo8qJ8LCxwLAAAABzc4lW89QND7Q0fg/2Vo+/9QU+H9MDKGfwAAABcAAAAJAAAACyYo
+ ZD09P7/jPD/a/09T7P9aXfP/RUOrxXRJKj+ETyg3Zj0aQ0g0SmtBPIyzUVK4321v1feLjer5o6bz/6+x
+ 9/+am/P/d3jq/0ZJ4f9eYfj/SEvU8zAwfE8BAQMFICBIFz5Atr89QNv/SEvm/19j+f9CRcPXJyhhLQAA
+ AAcAAAAZMDJ+f0dJ1/k/Qt3/Sk3o/0NG1f89PqVjOzyWIT5Av89BReD/VVjw/1pd8f88P67HEBEoMwAA
+ AA8AAAALAAAADQAAAA0rLW0lQ0a7xXl98/2Fifr/VFjs/0dK5P89QLnnHR5ObwEBAjUAAAAZAAAADTxA
+ tMU9QNn/SUzm/2xv+/9mauj/Z2vk+Whs5vdobOb3aGzm92dr4/lkZ+X/SUzf/01R7P9OUen/Oz2hhx0g
+ QQkvMX09P0LL8TxA3P9kZ/n/XmHy/zs/rbsMDR0tAAAAFQAAABMAAAATAAAACQAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkAAAAfAAAAOwAA
+ AkkLDCVhGRo/ZyIka2EzNZmZRUi4w11gy+N6fOb/TlHf/1da8v9ZXO//PD+omwsLGwsAAAAHNziVb0BC
+ 0ftHS+P/eX39/1hc5/8yM4ufAAAANQAAACMAAAAlHyBRVz9Cxu0/Q93/Ulbt/1xe8/9HQ6zFeEgsQXZF
+ JD9LKwxVNBwFZywaDnMxIzGHOys9fT80cpFDQJy/UlK42Wxt1fNqbeb/R0rh/2Bj+P9KTtPzMTF/SwEB
+ AwMiIkwVP0G3v0BD3P9LT+j/Y2b5/0VHw9coJ2AtAAAADQoLGS1AQazDR0ne/0RH4f9OUuv/QUTE6To7
+ kSUjI08FP0KtjUNH3P9NUOn/ZGf6/0lMy+siI1dZAAAAHQAAACMAAAAxAAAANwAAADUgIExXSErB5YKG
+ 9v+Jjfv/VVjt/0lN5f89P7LZGBk6YwAAAC0AAAARPUCvp0FE2v1KTeX/aW37/0ZJzfspKnGDJihuYSkr
+ d1smKW5jLS95j0FEyvVBRN7/UFTt/0lM3f87PqJlGRk2BzAxfj1CRMzxP0Pd/2pt+f9pbfn/QEO42wwN
+ H00AAAA5AAAANwAAADEAAAAZAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAwMBTc4h1lSUZurY1+tz3p2x+VAQZ2/CQkYVwEBBEcDAwpFGx1HdURG
+ x/lER+D/WVz0/1da7f8+P6SPEBAlBQAAAAc4OZZvQkXT+0lM5f+BhP3/c3f0/z9BsdkQEiljAAAASQAA
+ AEsgIVZ7RUfP90JG3/9VWO//W17y/0pGrcGFUi0/fVE7RVZMhp9fWZnLcGq04Whkvus4MV2lMx0FbTYf
+ BmkzIBVzOziBw0ZJ4P9JTOT/YGT5/0lN0O8yNIA5AQEDAyAgSBdAQre/Q0bf/09S6v9mafr/R0nD1ycl
+ XS8AAAAVJyllX0pMz/NGSOH/TE/n/05R6f9BQ66nPT2HC////wE9P6FFQ0fP9UpN5v9jZvj/WFvo/TY4
+ kZ8BAgQvBAQLPQMDDlUCAgxdAgIMXwMDDVshIVeJSk3D64qN+f+Lj/v/Vlnu/0xP5P9AQbHRGxtBVQAA
+ ABs9PqRlSUzc91FU7f9oa/v/U1ji/ywtdJkBAQRNAAAASQEBA000NoapUlPi+0dJ4v9QVOz/REbK9Tk6
+ kCcFBQoFMDF9PURGzfFDRuD/aGz6/3R4/P9NUNX3JilplwMDDFsLDCxnICBMawkIEi0AAAAL////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAPz8DRkesg25s
+ 4fmRi/f/gX34/05Q2vs6O5K3KChahy8vYotNTZa5Wlrl/UhK4v9YW/L/VFbo/T5Aon8ZHEEDAAAABzk5
+ lm9FR9X7TE/m/29y+/98f/n/VFbd+0BCrdMsLmmRMTJmkV5css9eXuf/RUjf/1VY7v9TVuj/Tkmlr5Zd
+ LjuEVklHWFa/34iD8f+Oifj/amny/0dHuOk+N2mvPTNToUc/Zq9eW7jnUFHn/0xP5v9cYPb/SUvO5TM2
+ fBv///8BHiBIF0FFuL9GSeH/UlXs/2pt+/9JSsTXIyJXMwMDCCE5O5OfT1Hi/UhL4v9TV+7/S07a/T0+
+ n2M0MWsD////ATg5kBVDRb/VS07m/1te8v9mafj/REe/2w0OIEU8PY2bX121y2Ngtc1jX7XNYV+1zWFf
+ tM1dXL3taWnf/5qc/P+Hivj/WFvv/0xP3/0+P6i/GxtDLTw9mS1JTMvfbG/5/3J1/f9cX/X/SkvI6zc4
+ hKctLmWPREKDq3Zx1fNcXOz/SUzi/0lM4v9DRbvDNDR/CwAAAAUxMn49RknO8UZJ4v9oa/v/am35/2Bi
+ 7f9NTsztXlq1zYR+xeFfXsXhJidlWQAAAA8AAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wFAQqUzSUvO43h69v+KjPf/XV/s/15d6Pt6duXzlY7o86Ga
+ 8ftiYu7/Sk3j/09S6f9LTdjzPj+jUf///wEAAAAHOzyaa0hL1/tRVOj/bG/7/2Fk6f98fvL/dnfy/3Fu
+ 5vWSi+b1k43y/V1e7P9JTOP/TlHn/0tN1PdbTIyFomMuOaZkLDlSSZmXWVvk+4uO+P96ffX/VFbp/2lm
+ 5PmGgOH1nJTn+ZOM9P9PUeb/TE/l/1BT6P9FR8O7MDRqC////wEdHkgXQ0a4v0lM4v9VWO3/bXD7/0pM
+ xdchIVI1Dg4kLUhKvtdOUOX/UFPn/1da8P9HSsftMziAG////wH///8BMzR9BUBDq4lLTuH/Vlnt/25x
+ +/9TVtr3JylldUFEsM1ubO3/f3v1/4B89f+AffX/gH31/4F98/+AfPP/enn2/5GS+P96ffb/YmX0/01Q
+ 0fEwMHRBLS1zBURGtnNucejztrj+/4yP9v9aXO7/YWHn+4J95PWfluz7fXn0/01Q5f9KTeP/R0rU60BC
+ qE3///8BAAAAAzM2hTtIS9DxSkzj/21w+/9aXez/bG/x/21v8f94dfT/iYX5/2Fi5/03OpaJAwMGEQAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AURE
+ mQVERraJeXvm99na/P/Jyvf/lpjw/42N8v+IiPX/f4D0/2ls9/9XWu7/TU/h/UZIwbE9PJsL////AQAA
+ AAM/QKZlT1LZ+5OW8/+Qk/3/T1HR+Vtdz/Ooqvj/rq/3/52d9v+DhfP/a271/1VY7P9MT+L/TUq2zYBY
+ VlGmYy47qGIxO3dVY1tUU77Zp6rz/+Hi/P+sr/L/kJHx/42M9P+EhPX/eXr2/2Jl9v9QU+j/Sk3T8URF
+ smslJUcD////AR0dSBdERrm/TVDk/1lc7v9wc/z/S07F1yMkVzMzNX9JV1ja93+C7/+ZnPj/YGPt/0RF
+ uK8oKHQH////Af///wH///8BPT+eT0pN1fmFh/T/pqn+/29y8v8/QaSrQEO1yWNm5/+doPX/pKf3/6Sn
+ 9/+kqPf/paj3/6Wo9/+mqff/oaT2/6mt+P+Vmf3/VVfY8TY3hjv///8BQEKfD0tNvpWJjOr53+D8/7+/
+ 9f+XmfH/hof0/3d59f9dYPL/T1Lm/0pN1fFER7V9RESQBf///wH///8BOz2aM0xO0+9+ge//mp3+/1lc
+ 3f1WWND7rbD5/7S29f+FiPj/bW/2/0hKwcUwM3IX////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUBAoA1ERbNnXmLRz5GT6f2ytPT/rrH4/5OW
+ 9v99gPT/Y2bs/09R1+VGSL6dQkOqHf///wH///8B////AUJErltVWNT5d3rk/3N15P9PUcjfP0CmY1FT
+ xrmHiuf9srX0/5aZ9/9sb/H/UFPb9U1LtbN+WV5VqGctPaZmMz+mZjM/q2krPXlVZV1WUKu5cnTZ86Om
+ 8f+2ufb/o6b3/4aJ9P90d/L/VVjh/UpNyNdCRa1pQECiCf///wH///8BHR1IF0VHur9QU+b/XF/w/3N2
+ /P9NT8jXKitrNURHr51dXt//dnnk/3V45P9XWtX3QUKnX////wH///8B////Af///wE7O5EJR0q92Wxv
+ 4f93euP/aWzi/0hKvtNER7XVZmng/3l75P94e+T/eHvk/3h75P94e+T/eHvk/3h75P95fOT/eHzl/3F1
+ 5f9TVc/pQECfKf///wH///8BQ0GfEUJDtHdlZtnfm53w/7S29v+Tlvb/bG/y/1ZZ4/NKTc7BQkSwV0BA
+ ogf///8B////Af///wFDRK0tUFLO73J15P91eOT/VVfR8UNFrq1qbNbrr7H1/4WI9f9aXef7TE7KyUBF
+ oxv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATo7nAM9P58ZP0CuTURDunVGR76JRUe6i0VHu3tER7ZdQUOlLUBCoQ3///8B////Af//
+ /wH///8BREanFz9CpkM8QKRFPUClRUBCpTk7QaAJOTueDT9CrlFERbp9Rki8jUZIuH1DRKpFkGI9Hadn
+ LjmhYzBBoWMwQaFjMEGhYzBBo2MuQZ1hMkNxUWdlYk6JgVpOn5tYTaOnV0yeo1xOmJVmUH51bVVvM29j
+ fQX///8B////Af///wEdHUgXR0i7v1NW6P9fYvD/d3r9/09RyNcoKmcvPkCgLz5CpEU8QKRFPECkRT9C
+ pUFHSK0R////Af///wH///8B////Af///wFAQ6Y5PUCkRTxApEU+QaVFQkOnPVJKlEdlT3dnaE5wb2hN
+ cG9oTXBvaE1wb2hNcG9oTXBvaE5wb2pQcm1nT3ZpY1B8Y2NPf0+XaVgVpHpVCb6WPgP///8BOzyZBTw+
+ oiVCRLZVRUe9eUVIu4lFR7ljQ0WtRUNFsg1AO54D////Af///wH///8B////AUBEpw1AQ6ZBPECkRTxA
+ pEVAQ6ZBQUOjFz8/pDVFRr11Rke6hUVGs1lDQqQhQESmA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BOjOVBTw8
+ kwk9PpYJPz+UBSIiiAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATo9lgc6PJMJP0KUB////wGebTEPoGQ0NaJjMUOgZDFFoGQxRaBkMUWgZDFFoWQwRaRl
+ K0OkZStDoWIvRZ9iMUWfYjFFomMvRaZmLUGjajEroHg5Cf///wH///8B////AR0dSBdISry/Vljq/2Jl
+ 8v96ff3/UVPJ1ygoYi0AAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wHMd1MDqGYzIaVoLD2lZipBpWUqQ6VlKkOlZSpDpWUqQ6VlKkOlZCpDpmYrQaZm
+ K0GmZys/qGYvO6VqNzehbDwrp3pBEf///wH///8B////Af///wE5PIoFPj+TCTs7gAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ATU1kQU9QJYH////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaFf
+ NAmhYzQtoWQxQ6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6Fl
+ Nzuma0EVyIl/A////wH///8BHh5JF0lMvb9YW+v/ZGfy/3x//f9SVMrXKSlmKwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AapwQA2hZDU1oWMyRaJk
+ MkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6FkMkehZDJHomUyR59kMzulbToT////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Blnw3A6FkNyGgZDJBoWQxSaJkMUuiZDFLomQxS6Jk
+ MUuiZDFLomQxS6JkMUuiZDFLomQxS6JkMUuiZDFLoGMzRaFoOSmceksJ////Af///wEnJ10RS07AvVxf
+ 7P9+gfb/g4b+/1RWzNUtLXInAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGbdkIDomI5H59kM0OhZDFJomQxS6JkMUuiZDFLomQxS6JkMUuiZDFLomQxS6Jk
+ MUuiZDFLomQxS6FkMUuhZDJJpmk0M6JrKQ3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BlGExEZ1jMTugYjJLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6Bk
+ M0ugZDNLoGY2P6N1Qhmvj4gD////ATs7iQ1PUsa7iYz3/8fJ/v+hpP7/WVvR0zk5kh////8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaZyPA+jZjg3n2MzS6Bk
+ M0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BmM0efazgljlMpB///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGmaDEHomQ1K6BhMkufYzFPn2MxT59j
+ MU+fYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fZDJLnmc3N5xuPxH///8BQkKXBUhL
+ tolXWcjFWFrHw1dayMVLTbmRQUGjDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGaak4JoGc5KaBjM0mfYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fYzFPn2MxT59j
+ MU+fYzFPn2MxT59jMU+fYzFPoWQ0QaR2PBeidjsD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbGNFgOiaDUZomU1Q59iMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9j
+ MlGfYzJRn2MyUZ9jMlGgZjVLomk3MbtyTAv///8BOz2eDTY2lRM1NZUTMzWVEzs8nQ3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BsHtOBZ5pPSGfZDZDn2MyUZ9j
+ MlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9iM0+kZjY1tXIwC///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaJyMguhajYznmExUZ9j
+ MVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWhZTNNomM3L6R0
+ SA2kgFYD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbGASAehbDwfoWc2Q59kMlOgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBj
+ MVWgYzFVoGMxVaBjMVWgYjFVn2I0S6JsOSGvgB8D////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BwoISA6NpMhugYzNJn2EyVaBjM1egYzNXoGMzV6BjM1egYzNXoGMzV6Bj
+ M1egYzNXoGMzV6BjM1egYzNXoGMyV6BjM1egZDVPoGk6NaVyQhWtf1wF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGedVEJo2g9JaBnNUWfZDNVn2MzV6Bj
+ M1egYzNXoGMzV6BjM1egYzNXoGMzV6BjM1egYzNXoGMzV6BjM1egYzNXoGMzV59iM1WdYzc9qnk5Df//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bq2Y0CZ9l
+ OS+fYTJTnmAxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9i
+ MVmfYzJXn2c3RZ5rOimjcEoRrnBFBaBeSwP///8B////Af///wH///8B////Af///wH///8B////Abea
+ bgOXb0oJom5DF59mOzOgYzRPnmExWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9g
+ MVmfYDFZn2AxWZ9gMVmfYDFZoGQzT6FrOyOvXkQD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bm2U9E55kNkGdYDFZn2AyXZ9gMl2fYDJdn2AyXZ9g
+ Ml2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYjJbn2M0U59kNkOjZzsto208G6hr
+ QhGfcU8LpnJEB5xzRgedbEcHp3VRB6VySAmlbUMToGlAH59kPTOeZDdJn2M0V59gMl2eYDJdn2AyXZ9g
+ Ml2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdnmAyXZ5hMlmfZTc9n3g6D///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGlehwFn2c2I51hMk+dYjFdnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51i
+ MV+dYjFfnWIxX51iMV+dYjFfnmIxXZ1jMlmgZjZPn2U3R6BmOD2iaTo5n2k6M55mOTOgZzo7oGc5PZ9l
+ NkebZTRTnmMyWZ1iMV2dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51i
+ MV+dYjFfnWIxX51iMV+eYjFdoGQzTaJnOyOXaCgD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGsezwJnWQ0L55jM1WdYTBhnWAvY51g
+ L2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OcYC5jnWAuY51h
+ L2OeYS9hnmEvYZ1iL1+fYjBdnWIvX51iL1+eYS9hnmAvYZ1gL2OdYC5jnWAvY51gL2OdYC9jnWAvY51g
+ L2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvYZ1iMVmfZjgzq2w8C///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGdZzwNn2U3N59hMludYTFjnWExZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1i
+ MWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1hMWWdYTFlnWIxZZ1i
+ MWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1i
+ MWWdYjFlnWIxZZxiMWWeYjJhnmU2QahlPRH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGlZUARnmU1O51h
+ MV2cYTBnnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51g
+ L2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51g
+ L2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYS9nnmExY59hM02faDQZp3ggA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AYVaPQOUaDgRnmY2PZxhMV+bYDFpm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrmmAwa5xhMWWfYjNPnm47Ia9/OQP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AZNr
+ KQOdZTkTnWU1PZtgMV2aYDFrm2AwbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtg
+ MW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtg
+ MW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2aYTJpn2U1T6BpOSWcYjcF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGpbDgPnmU2M5tiMlmaYDFtmWAwcZlg
+ L3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlf
+ L3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlg
+ L3GaYDBxnGAwa55kNk+cZzkjqFU2B////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAMAAAADAAAAAwAA
+ AAMAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wGkYDwHn2Q3I55jM02ZYDFpmV8vcZtgMXOaXzBzml8wc5pfMHOaXzBzml8wc5pf
+ MHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pf
+ MHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaYDFzmV8ycZxiM2WfZjlDo2s7F7ByQgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAMAAAADAAAABQAAAAUAAAAHAAAABwAA
+ AAcAAAAHAAAABQAAAAUAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAUAAAAHAAAACQAAAAsAAAALAAAACwAAAAsAAAALAAAACQAAAAUAAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAABwAAAAkAAAALAAAACwAA
+ AAsAAAALAAAACwAAAAkAAAAHAAAAA////wH///8B////Af///wH///8B////Af///wGQTUMDn2o6E6Bl
+ ODebYjRbnGAwbZpgMHOZXzB1ml8wdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpf
+ L3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WZXzF1ml8xc5pg
+ MmubYTVTnmc8LatkNQ2rXi0D////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAUAAAAJAAAACwAAAA8AAAARAAAAFQAAABcAAAAXAAAAGQAAABcAAAAVAAAAEwAAAA8AAAANAAAACQAA
+ AAcAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAACwAAABUAAAAdAAAAIQAA
+ ACMAAAAjAAAAIQAAAB8AAAAbAAAAEQAAAAcAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAkAAAATAAAAHQAAACEAAAAjAAAAIwAAACEAAAAfAAAAGwAAABMAAAAHAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8Bol8xCZ5iOh2cYzU9nGIzWZtgMmuZYDF1mV8wd5lg
+ MHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlh
+ MHmZYTB5mWEweZlgMHmZYDB3mWAxdZthMmmcYjNVoGM3N6FnORelaz0F////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAAAwAAAAcAAAANAAAAEwAAABkAAAAhAAAAJwAAAC0AAAAxAAAAMwAA
+ ADUAAAA1AAAANQAAADEAAAAtAAAAKQAAACMAAAAdAAAAFQAAAA8AAAAHAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcAAAATAAAAJwAAADcAAAA9AAAAPwAAAD8AAAA/AAAAOwAAADEAAAAdAAAACwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFAAAADwAAACUAAAA3AAAAPQAA
+ AD8AAAA/AAAAPwAAAD0AAAA1AAAAIwAAAA8AAAAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZhpMgmhaT4boGU4NZ1jNU+bYjNjmWEwb5lfMXWZXzB5l18xe5deMHuYXzB7mF8we5hf
+ MHuYXzB7mF8we5hfMHuYXzB7mF8we5hfMHuXXzF7l18xe5hfMHmYXzF1mmAxbZphM2GcZDRNnGU4MZxo
+ OhemdTIH////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAUAAAALAAAAEwAA
+ AB8AAAArAAAANwAAAD8AAABFAAAASQAAAE0AAABPAAAAUQAAAFEAAABPAAAATQAAAEsAAABHAAAAQQAA
+ ADkAAAAvAAAAIwAAABcAAAANAAAABwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwAAABkAAAA1AAABSQAA
+ AFMAAABVAAAAVwAAAFUAAABPAAABQQAAACcAAAAPAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcAAAAVAAAAMQAAAUkAAABTAAAAVwAAAFcAAABXAAAAUwAAAEcAAAAvAAAAEQAA
+ AAX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGXWD0Folw7D6Fo
+ PCGaaTg1mmU1SZxjMleZYTJhmF8xZZhfM3OZXzN9mWExhZtjNIubYzSNmmIyh5hhMoWYXzN9mF8ycZhg
+ MGOZYDJfnWEzV5xjNUWcZjgxomk/HaV4OQ2iUUUD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAMAAAAFAAAADwAAABsAAAAtAAAAPQAAAEkAAABRAAABVQEBA1cBAQVZAwMJXwoK
+ H2kQEi5xDxErcQsNH2kICBNlAwMHXQEBA1cAAAFXAAAAUwAAAEsAAABBAAAAMQAAACEAAAARAAAABwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJCgoYHS4ucnM1NYGbNTR7oTUzeqE1M3qhNTR7oTU1fZ83OISVJSZZSQIC
+ BQ8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwICBRkwMHFnNzeCmTU0
+ fKE1M3qhNTN6oTQ0e6E0NHyhODeAlSsqX1cAAAATAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqnNECaRvQy+kbj9NqXFBiapyQ7Oyd0bdtnpJ57p+
+ TOu/gU7vw4ZR88iJVPXKi1Xxy4xX782NWu3KjFnlxIhVy8CDUae6f097qHBFRZRiOhmIVSID////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABQAAAA8AAAAhAAAANQAA
+ AEcAAABPCAkaYRUYRH03N3qjVVOhx2JevOFnYsnlaWXQ621n2e9mYtbvYFzS61lWzelPTsDhQkGmzzIz
+ ha0fIlCFCgwdZQAAAFMAAABLAAAAOwAAACcAAAATAAAABwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkbHEEnQEG11VxX
+ 5vtqZOz7aWTs+2lk7PtpZOz7amTu+1RS4vs2NpKDCAgVDwAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHCwsRGTc4qr1fWub7aWTs+2lk7PtpZOz7aWTs+2pk7ftcWeT7OTqnpQcH
+ DRUAAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGfXVAFoW8/J6Nt
+ P3OmbT6vqG4+5a1xP/Wwc0H7sHNB/a5yQP+vc0H/sHRC/7J1Q/+ydUP/tHdE/7h6R/+9fkr/wYJN/8eH
+ Uv/Qj1j/15Ze/d6bZPnin2fx1pVg0cWKV6O5gE5bom5AG////wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAUAAAAPAAAAIQAAADkAAABLDxAqZTw7gaVpZMDbhXzd84R77/tvaO/9Xlns/1RP
+ 6P9KR+T/QD/h/z083/89PN//Pz7h/0NC5f9EQ+X/R0bk/UdH0vU/QLbdMDB/qRUVMWsBAQJPAAAAPQAA
+ ACcAAAATAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCc0N7PVKSzT/y0v1f8uMNb/LjDW/y8w1/8+P+b/PUDj/zU1
+ k4cKChcPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcMDBEZMjSpvSot
+ 0f8tL9b/LjDW/y4w1v8uMNb/Oz3k/0BD5f8zNKepDAwSFQAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGkcUgPo25BRaRrPZuhaTjXo2o496JoNv+gZjX/oGY1/6BmNf+gZjX/n2U0/59l
+ NP+gZjX/oWc1/6FmNf+hZzb/o2k3/6VqOP+mazn/qG07/6xwPv+wdEH/t3pG/8KET//Qj1j/25lh/d6c
+ Y/PRklvHuX9Pe6lyRjGbbEAJ////Af///wH///8B////Af///wEAAAADAAAACwAAAB0AAAA1BAUMTSIj
+ UntiXrnZhHzp+XJs8P9OTOX/Nzja/yst1P8mKdH/JSfQ/yQnz/8jJs//IybO/yMmzv8jJs7/JCfP/yQo
+ 0P8mKtH/LS/W/zM02f85O9X7Njez4SgqcpcLDBpXAAAAOwAAACEAAAANAAAABf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzU3
+ stUmKtD/JSnP/yUpz/8lKc//Ki3U/0JG7P8/QuP/NTWThwoKFw8AAAAF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAABwwMERkzNaq9KCvP/yUpz/8lKc//JSnP/ygr0v9AQ+r/Q0bn/zQ2
+ qKkMDBIVAAAABf///wH///8B////Af///wH///8B////Af///wGlcUUFpGtAKaFqPJ+iaDjrn2Q0/51i
+ Mf+bYTH/nGEx/5thMf+bYTH/nGEx/5thMf+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/m2Ex/5th
+ Mf+cYTL/nWMy/59lNP+jZzb/p2s6/6xwPv+zdkL/voBL/8+OVv/WlFz7zIxX37V9TYWkcEUV////Af//
+ /wH///8BAAAAAwAAAAcAAAAVAAAALQUGD0kuMXOVamXS7XRt8P9GReH/LjDV/ycq0P8lKc//JSnP/yUp
+ z/8mKtD/JirQ/yYq0f8nK9H/JivR/yYq0P8mKtD/JSnP/yUpz/8kKc7/JSjP/ygs0v8uMdf/NDfF8y4w
+ i7ENDSFTAAAAMQAAABcAAAAH////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkcHEAnNjmy1Skt0P8oLM//KCzP/ykt0P8vM9b/RUnt/0FF
+ 4/81NpOHCgoXDwAAAAX///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAHDAwRGTQ3
+ qr0qLs//KCzP/ygsz/8oLND/LTHV/0NH6/9FSef/NTeoqQwMEhUAAAAF////Af///wH///8B////Af//
+ /wH///8BonNGE6JsPnmhZzblnWIx/ZpgL/+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYTD/nWMy/6Fm
+ Nf+nazn/rHA+/7R2Q//BgU3/yopU+72ATcGmcUVFnWlAA////wEAAAADAAAACwAAACEBAQQ/LC1sjV9c
+ 0vNaV+z/LzLV/ykt0P8oLM//KCzP/ygsz/8oLND/Ki7S/y8z2P80ON3/PkLk/0pN6f9GSuf/QETk/zg8
+ 4P8wNNj/LDDT/ygs0P8oLM//KC3Q/you0v8xNdn/MzfK+y4xhKkCAgQ/AAAAIwAAAA0AAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwc
+ QCc3OrPVKy/R/you0P8qLtD/Ky7Q/zE11/9HS+7/Qkbk/zU3k4cKChcPAAAABf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcMDBEZNTervSww0P8qLtD/Ki7Q/you0P8vM9X/Rkrs/0dL
+ 6P81OKmpDAwSFQAAAAX///8B////Af///wH///8BmWVEA6RtQDmiaTrDnmQz/5pgMP+aYC//mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5lgMP+aYDD/mmAw/5phMP+eZDP/omc2/6ZqOP+tcD7/untH/76A
+ S++rc0SBnm9CFQAAAAUAAAATAAAALSQkW29RUMvtTU3n/y4x0/8qLdD/KS3P/yktz/8pLdD/Ki7Q/y4y
+ 1f87P+H/VVn1/3B0/P+UmP7/rrL+/8DE/v/Gyv7/tbj8/4KG+P9OUuv/Mzfa/yww0/8pLdD/Ky/R/zI2
+ 2f84PN7/NjnH9SYpaX0BAQQvAAAAEwAAAAf///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzc6s9UsMdL/LDDR/yww0f8sMNL/MjbY/0lN
+ 7/9ESOX/NjeThwoKFw8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwwM
+ ERk1N6u9LjHR/yww0v8sMNH/LDDS/zA01v9HS+z/SEzp/zY5qakMDBIVAAAABf///wH///8B////AaJ+
+ VQWhbT9ln2Y225xiMf2aYC//mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+bYDD/nGEx/6BlNP+laTf/rXE+/7N2Q/WsckOljF46IwAAABkHBxE9QUGow0dI
+ 3/0vM9T/LDDR/yww0f8sMNH/LDDR/yww0f8uMtT/NTnb/0NH5P9JTOD7UVXb6VZa1+NZXNrjZmne7Xl8
+ 5Pmho/L/y8/8/6+z/f9kaPL/ODzd/y0x0v8sMNH/MDTV/z1B4v9AROT/Nzqv0xISLkMAAAAbAAAACQAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAkcHEAnODu01S4y0/8tMdL/LTHS/y4y0/80ONn/S0/w/0ZK5v83N5OHCgoXDwAAAAX///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAHDAwRGTY4rL0vM9L/LTHS/y0x0v8tMdL/MjbX/0lN
+ 7f9KTun/NzmpqQwMEhUAAAAF////Af///wGlb0EJo24/aZ9mNeucYTD/mmAv/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5pgMP+aYDD/m2Ew/51j
+ Mf+gZTP/pmk3/6tvPPumbT61UjUhNSkra3VFRtH1NTfX/y0x0v8tMdL/LTHS/y4y0v8uMtL/LjLT/zE1
+ 1P83O8jrPD+7qT4/sGk9PalDOzynNzw8qjc7Pa1JPT6uX0NEv5NcX9DdlJfv/Zmd/P9PU+z/NDjZ/y4y
+ 0/8vM9T/OT3e/01R8f8+Qtf9KCpybwICAx8AAAALAAAAA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCc5O7TVLzPU/y4y0/8uMtP/LzPT/zY6
+ 2v9NUfH/SEvn/zc3k4cKChcPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAcMDBEZNjmtvTE00/8uMtP/LjLT/y8z0/80ONn/S0/u/0tP6v84OampDAwSFQAAAAX///8Bp29BCaNr
+ PXGhZzXznGEw/5thL/+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+cYTD/nGIx/5xiMf+cYjH/nGIx/5xiMf+cYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5xhMP+eYjH/omY0/6hsOfuVYjexQj+ZuTw+
+ 2f0wM9T/LzPT/y8z0/8vM9P/MDTU/zE11v8xNdX/Oz6/3T5BqU9DQ6AP////Af///wH///8B////Af//
+ /wH///8BQ0ORBzs7njFDRr7Jb3Pv/Wlt+v9AROT/MjbW/zA01P82Otr/S0/v/01Q7v83OqGzDxAlJwAA
+ AAsAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAJHBxAJzo8tdUyNdX/MTTU/zE01P8xNNT/ODvb/09S8v9KTOj/NzeThwoKFw8AAAAF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABwwMERk3Oa29MzbU/zE01P8xNNT/MjXV/zc6
+ 2v9NUO//TlDr/zg6qqkMDBIVAAAABah3RQejbT9poWY185xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+dYjH/nmMy/6NmNP+majj/p2s5/6ls
+ Ov+pbTv/qGw6/6ZqN/+iZjT/nmMy/51hMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+cYTD/nGEw/5xhMP+eYjH/oGUz/6NnNf1wVof7NTjW/zE11P8xNdT/MTXU/zI21v81Odn/Nzva/zk8
+ xOlAQp5B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABTU3izU9QL3VTlLs/0hM
+ 6v8zN9b/MTXV/zU52P9FSej/Wl/4/z5AvtUeH081AAAACwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnOz221TQ31v8zNtX/MzbV/zM2
+ 1f86Pdz/UVTz/0xO6P83N5OHCgoXDwAAAAX///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAHCQoRGTc6rr00N9X/MzbV/zM21f8zNtX/OTzb/09S8P9PUuv/OTqqqQwMEhUAAAAFom09UaJo
+ NuudYjD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+dYjD/nmMx/6FlM/+lajb/rW88/7Z3Qv+9fkj/woFL/8KCTP/BgUv/vH1I/7N1Qf+tcD3/qGw5/6Jm
+ NP+eYzH/nWIw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/51iMP+dYjD/nmMx/51m
+ PP9UR6n/NDnZ/zc72/84PNv/Nzva/z5C4P87PtT7PkCrfSIiSQP///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAcAAAAPAQEDGzExhns4PM75NzvZ/zM31f8zN9X/NTnX/0FF5P9cYPv/QEPI5Sst
+ cEMAAAAJAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAACRwcQCc8PrbVNjnX/zU41v81ONb/NTjW/zw/3f9TVvP/TVDo/zY4k4cJCRURAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAcGBhEbODquvTY51v81ONb/NTjW/zU4
+ 1v87Pdv/UVTw/1FU7P86O6upCwsRE5xoPC+haDjRnmMx/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/55jMf+iZjT/qW06/7BzP/u6fEbnwoNN4cmJ
+ U9vQjljb2JZd4d+cYe3fnWP925dd/82MU/+9fkf/r3E9/6ZpNv+fZDL/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nmMv/5RpYv+HheL/gob2/3d69f9dYOv/Q0fl/zxA
+ yNs6Opcj////Af///wH///8B////AQAAAAMAAAAFAAAABwAAAAkAAAANAAAAFQAAAB8AAAAxICBVZzs+
+ yvU1ONj/NTjW/zU41v82Odj/QEPi/1tf+v9DRs/xMjOBSQAAAAf///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzw/ttU4O9j/NjnX/zY5
+ 1/83Otf/PUDe/1RX9P9PUen/NjeQiQcHDxUAAAANAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAA
+ AAkAAAAJAAAADQUHDh84O6y/ODvX/zY51/82Odf/NzrX/zw/3P9SVfH/UlXs/zo7q6kuHxoZomo6v59k
+ Mv2dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+fYzH/o2c2+ahtPNOqckCPq3RDaap3RD+pdEUxqHVGJ6p1SCeud0g1sHhIS72DUHPPkFqz2ZZf49qW
+ XfnEgkz/rnA9/6NnNf+fZDL/nmIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/n2Uz/7OUkP+6vPX/v8L8/7e7+/9bXuj/Oz69qT09egsAAAADAAAABQAAAAUAAAAJAAAADQAA
+ ABEAAAAVAAAAHQAAACUAAAAvAAAAOwAAAEckJWKDP0LO9zc62f82Otf/NjrX/zg72f9AQ+H/WVz4/0NG
+ 0O80NYhFAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAkcHEAnPT+21Tk82f84O9j/ODvY/zg72P8/Qt7/Vln0/1BT6f8zNYiRBAQIJQAA
+ AB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAfAwMJLTc7qsM6Pdj/ODvY/zg7
+ 2P85PNj/PkHd/1RX8v9UV+3/Ojyrq49eOG+hZTT5nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/nmIx/55i
+ Mf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/oWU0+6NrOtOlbkFxpW9AIaqBRQX///8B////Af//
+ /wH///8B////Af///wH///8B////AYZbMQ2sdkYtu4BMg8eHUvG9fEj/qmw6/6NmNf+fYzL/nmIx/55i
+ Mf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYTD/mGND+2NYqtdRVdHXXF/U509S
+ ze0/Qq9tICAuBwAAAAsAAAAPAAAAEwAAABsAAAAhAAAAKQAAADEAAAA5AAAAQQAAAEsAAABRCwwdYUND
+ o8VQUOP/OT3Z/zg82P84PNj/OT3Z/0JG4v9VWfX/QkTM4zY3iDUAAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCc9QLfVOj7a/zk9
+ 2f85Pdn/OT3Z/0BD4P9XW/X/UVXq/y4yfpsCAgQ/AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA
+ ADsAAAA7AAAAOwAAAD0CAgZFNzqlyTo+2P85Pdn/OT3Z/zo+2f8+Q97/VVny/1RY7v9LRJ2/nmY24Z9j
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/6Jo
+ N+2kbj57pHhGGf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGVaTsDpnBDPbN5Rr+0dUH9p2o3/6FlM/+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+gZDH9oGk9oU1Ghxc7OYwbPDuPHx0dPxMAAAAVAAAAHQAAACUAAAAvAAAAOQAA
+ AD8AAABHAAAATQAAAFMAAABVAAABWRobTIFeW6rNd3Ts+0tN5P85Pdn/OT3Z/zk92f86Ptr/RUjk/01R
+ 7f8/QsTJNTaFHf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJHBxAJz5Bt9U8QNv/Oz/Z/zs/2f87P9r/QUXh/1hc9f9TV+r/LS13pQEB
+ A1UAAABVAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQEBBFk2OKLNPEDZ/zs/
+ 2v87P9n/Oz/a/0BE3/9WWvP/Wlzo/39da/ehZDH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/6BjMf+iaDfVo3BAR593Rwn///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpXBBF6xyQaerbjv7o2Y0/6Bk
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+iZzbrnGQ9MwIB
+ AA0AAAAXAAAAIwAAADEAAAA7AAAARQAAAE0AAABTAAAAVQICCFsRETFvIB9Rg0pHhatsaLPXl5De846H
+ 8/9UVuj/PEDb/zs/2f87P9n/Oz/a/z1B2/9ESOP/Rkrk/z5AsaE0NHwJ////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnP0G31T1B
+ 3P89Qdr/PUHa/z1B2/9DR+H/Wl71/1VZ6/88PI/DLi1hiy0sYo0tLGKNLSxijS0sYo0tLGKNLSxijS0s
+ Yo0tLGKNLSxijS0sYo0tLGGLLSxijT5Aq9s+Qtn/PUHa/z1B2v89Qdv/Qkff/1hc9P9pY9T/mmRD/6Bj
+ MP+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+hYzH/o2c326Jt
+ Pj+geEoD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8Bp3FCG6lvP6emaTf7oWQy/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bj
+ Mf+gYzH/oGMx/6BjMf+gYzH/oGMx/6FkMv2cZTqdEw0IIQAAADMAAABBAAAASwAAAFEBAQRXCwwjZyEh
+ S39GRYGlXVqjx4R+yeWYkOHzmpLw+4yF9P9oZ+7/Sk3j/z9C3P89Qdr/PUHa/z1B2v89Qdv/P0Pd/0RI
+ 4v9DRtL7P0GmSSwsYwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCc/QrfVP0Pd/z5C2/8+Qtv/P0Pc/0VJ4v9cX/X/bGz0/314
+ 4/uAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3eXXl/UtO
+ 3/8+Qtv/PkLb/z9D3P9ESOD/Wl70/4JpnP+gZDL/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bj
+ Mf+gYzH/oGMx/6BjMf+gYzH/oGMx/6NnNu2ibD5Pl4VGA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpW5CI6Vq
+ OcOjZjP/oGQx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bm
+ N+cxIRRNAAAASwEBBFcKCx5jKitZh0pJja93c7nXk4za8Z6W7vuVj/b/fXnz/2Vk7f9SU+b/Rkjh/0FE
+ 3f8+Qtv/PkLb/z5C2/8+Qtv/PkLb/z5C2/9ARN3/Qkbe/0FEv8c/QI4T////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0BD
+ uNVBRd7/QETc/0BE3P9ARNz/Rkri/1FU7P9PUeX/UFLl/1BS5f9QUuX/UFLl/1BS5f9QUuX/UFLl/1BS
+ 5f9QUuX/UFLl/1BS5f9QUuX/UFLl/1BS5f9RUuX/SUvi/0FF3f9ARNz/QUXd/0VK4v9hX+H/l2pd/6Bk
+ L/+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+iZjP7pWw9h5mA
+ TAX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BpW0/VaNnNfWgZDH/oGQx/6BkMf+gZDH/oGQx/6Bk
+ Mf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/omYz/18/JIcOECppNzd2oXl1uNmhmeX3pJv0/42H
+ 9/9savD/VFXo/0hK4v9DRt//QUXd/0BE3P9ARNz/QETc/0BE3P9ARNz/QETc/0BE3P9ARNz/QETc/0FF
+ 3f9BRcrtQkSoSUpKlgP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkcHEAnQUO41UNG3/9CRt7/Qkbe/0JG3v9DR9//Qkbe/0JF
+ 3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG
+ 3v9CRt7/Qkbe/0JG3v9DRt7/R0vk/3hiov+gZjb/oWQw/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6Fk
+ Mf+hZDH/oWQx/6FkMf+hZDH/oWQx/6NpOcOlc0MV////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGpbkMJo2o7paJlMv2hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6Fk
+ Mf+hZDD/j2Va8YeAze+on/X9iYT3/2Rj7v9OUOb/Rkjh/0NH3v9CRt7/Qkbd/0FG3f9CRt7/Qkbe/0JG
+ 3v9DR97/Q0ff/0RI4P9FSeH/Rkri/0ZK4v9ESN//QkXL6UBBq1////8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwc
+ QCdCRLjVRUjg/0VH3v9FR97/RUff/0dK4f9IS+P/SEzj/0hM4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hM
+ 4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hL4/9JTOP/Rkjg/0VI3/9JTOX/iGN5/6Fk
+ MP+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+jZjT7o2w8aaSI
+ TwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGlbUJJo2c18aFkMf+hZDH/oWQx/6Fk
+ Mf+hZDH/oWQx/6FkMf+hZDH/omUx/6JlMv+jZTL/omUy/6JlMf+kcE7/hXjY/1xb6/9LTeP/RUng/0VI
+ 3/9ER97/RUjf/0VI3/9FSN//RUjf/0ZJ4P9HSuH/SEvi/0pN4/9MUOf/UVTr/1FU6/9NUOj/SEvc/0RG
+ x9VBQq1XOTmeB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0NFudVHSuH/Rknf/0ZJ3/9HSuD/TVDm/2hr
+ 9P+Ag/j/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE
+ +P+BhPj/fYD4/1xf7P9HSuD/R0rg/1JR2P+WZVL/omQv/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6Jk
+ Mf+iZDH/omQx/6JkMf+iZDH/omQx/6NpONWlckEl////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaZtSAekaTm9o2Uy/6JkMf+iZDH/omQx/6JkMf+iZDH/o2Uy/6NlMv+lZjP/pWcz/6do
+ Nf+qajX/q2w3/6JqRP9kVrP/R0rh/0ZJ3/9GSd//Rkng/0dK4P9HSuH/SEvi/0pN4/9MT+b/TlHp/1NW
+ 7P9ZXPH/XF/1/11h9/9XWvH/TE/h/UdKz+VDRrqTQkOrNTo9igX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAkcHEAnQ0a61UlM4v9IS+H/SEvh/0hL4f9OUef/bXD5/6Sn/f+usfv/rrH7/66x+/+usfv/rrH7/66x
+ +/+usfv/rrH7/66x+/+usfv/rrH7/66x+/+usfv/rrH7/66x+/+Qk/P/UVTj/0hL4P9IS+L/Z1iz/59l
+ Ov+iZDD/omQx/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6JkMf+jZTH/pGs7n6Bx
+ Pgf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNqPGOlZzT3omQx/6Jk
+ Mf+kZjL/pGYy/6VmMv+mZzP/qGk1/6prN/+rbTn9qG5D/5xtZf99YY7/YlW3/0xM2P9HSuD/R0rg/0dK
+ 4P9JTOL/Sk3j/01Q5v9SVer/WFvw/2Fk9v9navr/Z2r7/2Fk9/9ZW+39UVPd9UdKyNtBQ7KRPDyaOyws
+ aQsAAAAHAAAABwAAAAcAAAAFAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCdER7rVSk3j/0pN4v9KTeL/Sk3i/1BT
+ 6P9navn/YmXw/0xNw9tOUMfDT1HKwU9Sy79PUsu/T1LLv09Sy79PUsu/T1LLv09Sy79PUsu/T1HLv05R
+ ycFNT8XFTE7M8UtO4f9JTOH/Sk3i/0pN4/9/YIT/o2Yx/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6Nl
+ Mf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6RnM/+ibj1N////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BpHFCNaRoNuekZTH/pWcz/6doNP+pajX/rG03/65vOv+sbzz1pGo7yX9b
+ V8VtY7/3WVjj/0hM5f9ITOP/SUzh/0lM4f9JTOH/S07j/05R5v9VWO3/YmX4/2ls/P9pbPz/ZGf2/1lb
+ 5v9NUNP3SErEw0RFtZE6OphbJydgKwoKGB0AAAAbAAAAGwAAABkAAAAXAAAAFQAAAA8AAAAHAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAJHBxAJ0VHu9VMT+T/S07i/0tO4v9MT+P/UlXp/2ls+v9iZe//ODiTiR4eSBcvL3YNNTWNCzU1
+ kgs1NZILNTWSCzU1kgs1NZILNTWSCzU1kgs1NY4LLCxsDRcXOiFAQ7LBTE/i/0tO4/9LTuP/TE/j/49j
+ Zf+kZTD/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+kZTH/pWk236Ny
+ Px3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGoaEMFpms4sahp
+ NP+tbTf/r3A8/65xPd+scT+3pW4/dYtbODMpHiYzRUa0wVdY6f9LTuP/S07i/0tO4v9LTuL/S07j/0xP
+ 5P9RVOn/Wl3y/19i9v9aXez/UVTa8UtNystHSLqbQ0SvX0FBoCk4OIkNCgoZBwAAARsAAAAxAAAAPQAA
+ AD8AAAA9AAAAOQAAADcAAAAxAAAAJQAAABMAAAAH////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnRUi81U1Q5f9NUOP/TVDj/01Q
+ 5P9UV+v/a277/2Rm8P83OJWHCAgWDwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAFBgcRGUFEs71NUOP/TVDk/01Q5P9OUeH/nGdI/6RlMP+kZTH/pGUx/6RlMf+kZTH/pGUx/6Rl
+ Mf+kZTH/pGUx/6RlMf+kZTH/pGUx/6VmMf+kajm5oHdCD////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGlbj1prXE+061yQKOqckJfpnNEKaVxQxF2UzIHAAAACyQk
+ WkVNT83nUVPn/01Q5P9NUOT/TVDk/05R5f9OUeX/T1Lm/1JV6P9OUdjzSkzHwUZHu3VERK87QkKmGT4+
+ mgk7O40D////AQAAAAUAAAAVAAAALQAAAEMAAABRAAAAVQAAAFMAAABTAAAATwAAAEcAAAAzAAAAGQAA
+ AAn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAACRwcQCdGSLzVT1Lm/05R5P9OUeT/T1Ll/1ZZ7P9tcPv/ZWjw/zc6locICBcPAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcGBhEZQkSzvU9S5P9OUeT/TlHl/1lV
+ 0v+iaD7/pWYw/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH/pmcx/6Nr
+ OpWdcTwF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaFv
+ Qg+kcUIlonNHC6qIVQP///8B////AQAAAAMAAAANMTF/Y09Q2PVPUub/T1Ll/09S5f9QU+b/U1bq/1VY
+ 7P9OUd/9RknBzz5ApF07PZgbLi5xBQAAAAMAAAADAAAAAwAAAAMAAAAFAAAADQAAACETFDFJNDRzizQ0
+ a48vMGaRKipahyMiSn8fH0Z5HBxEax0eSU0ICBUbAAAAB////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0dJvNVRVOf/UFPl/1BT
+ 5f9RVOX/V1rs/29y+/9navD/OTqWhwgIFQ8AAAAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABwYGERlDRbO9UVTl/1BT5f9QU+b/aVu4/6RnN/+lZjD/pWYx/6VmMf+lZjH/pWYx/6Vm
+ Mf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH9o289daJ3QQP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAk5O5JzUlTg+1JV5v9RVOb/UVTm/1NW6P9bXvD/YGP0/0lLxOUhI1ZJAQEEFQAAAA0AAAAJAAAABwAA
+ AAcAAAAHAAAACQAAAA8AAAAbAAAAMS4udIFratvziITq+YeC5vmHguT3hYDg9YSA3vOBfdvxXVzE3ycn
+ aysAAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAkcHEAnSEq91VNW5/9SVeb/UlXm/1JV5v9ZXO3/cXT8/2ls8f86OpaHCAgVDwAA
+ AAX///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAHBgYRGURFtL1TVeb/UlXm/1JV
+ 5/9zX6X/pmYy/6ZmMf+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6Zo
+ NP2lckJP////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAQEDBzw+mnNRVeD7UlXn/1JV5/9TVuf/Vlnr/2dq
+ 9/9navP/Pj+juQEBA0MAAAAxAAAAJQAAAB0AAAAZAAAAGQAAABsAAAAfAAAAJwAAADUAAABHP0GgvVpb
+ 6f1cXuz/X2Dt/2Jj7/9kZfD/aWnz/3R1+/9TVtDnLTJ4JwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCdISr3VVVjo/1RX
+ 5/9UV+f/VFfn/1pd7v9ydfz/a23x/zo6locICBUPAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcGBhEZQ0W0vVRX5v9UV+f/U1fo/3tilf+nZzD/pmYx/6ZmMv+mZjL/pmYy/6Zm
+ Mv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmk1+6RuPyX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAADOTuVW1BT2/dVWOn/VFfo/1RX6P9YW+z/bXD5/3Bz9v8/QaPFBQUNWQAAAEsAAABDAAAAOwAA
+ ADcAAAA3AAAAOQAAAD0AAABFAAAATRgZQHVXV87tWlzt/1RW5/9TV+j/U1fo/1RX6P9dYPD/aGv5/0tN
+ xs8uK3cZ////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJHBxAJ0lLvdVWWen/VVjo/1VY6P9WWej/XWDv/3N2/P9sbvL/OjqWhwgI
+ FQ8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwYGERlERrS9Vlnn/1VY
+ 6P9WWef/gmOK/6dnL/+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6Zn
+ Mv+majb5oW0/F////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAM6PJQ/T1LV7Vpd7v9ZXOz/Vlnp/1hb
+ 6/9jZvT/bHD6/1NW1/c0NYOtCwscZQAAAVcAAABTAAAAUQAAAFEAAABRAAAAVQEBBFkSEjNvW1mr0XJy
+ 8P1YWuv/VVjo/1VY6P9VWOj/V1rq/19i8v9eYe//RUiznzIjawn///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnSUu91Vda
+ 6v9XWun/V1rp/1da6f9eYfD/dHf8/21w8v86OpaHCAgVDwAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHBgYRGUVHtL1XWuj/V1rp/1ha5f+HZYD/p2cv/6ZnMv+mZzL/pmcy/6Zn
+ Mv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/p2cy/6ZpN/embD8R////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATY2fQ9LTsXJYmXz/2Nm9P9bXu3/WFvr/1pd7f9jZvX/YGLx/1lb3vtLTLDRODqApygo
+ V4ccHD95FBUycRgYN3MwMWKPSkmHrYWAxuWgmfH9bW7z/1ha6v9WWen/Vlnp/1da6f9aXez/X2Ly/1ZZ
+ 3/VBRKVZKChfA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCdKTL3VWl3r/1lc6v9ZXOr/Wl3q/2Bj8f93ev3/b3Lz/zo6
+ locICBUPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcGBhEZRke0vVlc
+ 6P9ZXOr/Wl3m/4hmf/+oZy//p2cy/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2cy/6dn
+ Mv+nZzL/pmk366pzRA////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AUVHsntnaen3gYT9/2pt
+ 9/9eYfD/WV3r/1te7P9bXu3/XF/u/29v9v9+e/D9f3zk94F92/WGgtjzlY/c86eg5vmyq/H9npr7/2tr
+ 8/9bXuz/WFvq/1hb6v9YW+r/WVzq/1te7P9aXer/TE7EwzU1fRH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHR1BJUtN
+ vtVcX+z/W17r/1te6/9cX+z/YmXy/3l8/f9xdPP/OzuWhQgHFA8AAAAF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAABwcHEhlHSbW9W13q/1te6/9dX+f/imd7/6loMP+oaDL/qGgy/6ho
+ Mv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+nazjjpnNID////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BPkCiHVNUy8mPkvn/oKP+/3N2+v9hZPL/W17t/1pd6/9aXev/W13s/19h
+ 7v9kZvH/bGz0/3Z29/96efj/dHP2/2lp8/9gYe//W13r/1pd6/9aXev/Wl3r/1pd6/9bXuz/XF/s/1NW
+ 1/FDRKhT////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcgIEkhTE+/1V5h7f9dYOz/XmHt/2Bj7/9kZ/P/en39/3N1
+ 8/87PZiDCAkYDQAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFCAgUFUhK
+ t7tdYOv/XF/s/2Bh5/+Oanj/qWgw/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6ho
+ Mv+oaDL/qGgy/6drONuidkQN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BRESsN2Jk
+ 1de3uvz/0dP+/5mc/f9ydfr/ZGfz/19i7/9dYOz/XF/s/1xg7P9dX+z/XGDs/11g7P9dYOz/XWDs/11g
+ 7P9dYO3/XmHt/15h7f9eYe7/X2Lu/15h7v9XWt31SEq2f0FClgv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAykp
+ XRtOUMHTX2Lu/2Zp8P9xdPj/c3b6/3R3+v9/gv7/dHb0/z4/oX0PECsHAAAAA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAMMDSAPSk27t15h7P9laO//cnT0/5NyiP+qaTH/qmkz/6pp
+ M/+qaTP/qmkz/6ppM/+qaTP/qmkz/6ppM/+qaTP/qmkz/6ppM/+qaTP/qWw526J2RA3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wFAQJcFR0iwUWZo1dnCxPn/6ur+/8rL/v+gov7/goX7/3Bz
+ +P9oa/T/ZGfy/2Jl8f9hZPD/YmXw/2Jl8f9jZvL/ZWjz/2hr9P9pbPX/am33/2Zp9f9hZO//V1rb90pL
+ u5M/QKAR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BNTl/E09RxM96fPP/t7r7/8TG///Exv//w8b//7W4
+ //97ffT/QUOodxocUQX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ARka
+ QAdLTb+1cHPv/7G0+v/Exfz/tZWU/65tN/+wbjr/sG46/7BuOv+wbjr/sG46/7BuOv+wbjr/sG46/7Bu
+ Ov+wbjr/sG46/7BuOv+tbz7bonZEDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wE1N48FPj+lNV9izcOen+752dn7/+zt/v/j5P//yMr+/7Cz/v+go/7/lpn9/4uO+/+Mjvz/jY/8/4qN
+ /P+Kjf3/jI/+/4GD/v9ydPn/YWPr/VRX0uFHSrNvQUOgE////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wE9P5cRUFG/z3x+6f+Tler/k5Xq/5OV6v+Tler/kZPr/3J05v9CRax1MzOIA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BNTqMBUlNu7N1d+b9kpTr/5KU6f+fgZP/uHVF/7h2
+ R/+4dkf/uHZH/7h2R/+4dkf/uHZH/7h2R/+4dkf/uHZH/7h2R/+4dkf/uXZI/7J0Rummd0QP////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BOz6hFUVItHVdX8zBfX/c97Cx
+ 8//Q0f7/4OH+/+Hj/v/Z2/7/zc/+/7/B/v+wsv7/oqT+/5OV/v90dvD/YWPg/VNVzNFHSLOHQkOrNSMl
+ WwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUREiANCRKk/QUSuWz9Crls/Qq5bP0KuWz9C
+ rls/Qq1dQ0auXURErBf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BREWqJ0FFrlk+Qq5bPUCtW45mZKe9ekz/vHlM/7x5TP+8eUz/vHlM/7x5TP+8eUz/vHlM/7x5
+ TP+8eUz/vHlM/7x5TP+8eUz/tHZJ76N0RhH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AS4lgAk1OqIpQESxaUtMuJVaXMq1XmDQx2Bi1NFgYtPXWlzOzVZY
+ zsNSU8azTE69p0VGrm1AQqovOTmcDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEvOokDKTqAAyk6gAMpOoADKTqAAyw7gQM2NogD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BKzuHAyk6gwM1N3gDqnNHb7x6
+ Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+0d0r5o3ZEF///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEsLIgDLS2XBTg5rA05NaYVOjyiGz0+pB86P6AZPT6iEzs8pgs7PqEHNTWIA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGncUNfunlN/bx6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6
+ Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7d3S/uldEcv////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaZx
+ QTe5eUz3vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/uXlN/ahx
+ RlOSaEgD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bo3JGD7h4TO+9e0//vXtP/717T/+9e0//vXtP/717
+ T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0/9qXJEc5tzOgP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGRckkDsnZI2b57T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0//vXtP/718
+ T/+sdEebonZFBf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGwdEe5vnxQ/718UP+9fFD/vXxQ/718
+ UP+9fFD/vXxQ/718UP+9fFD/vXxQ/718UP+9fFD/vXxQ/7J2S7eqcUQN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Aa50R3+9fVD7vXxR/718Uf+9fFH/vXxR/718Uf+9fFH/vXxR/718Uf+9fFH/vXxR/718
+ Uf+9fFH/t3lN8alzRjP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bn25BCZltQAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bp3BCUbp7T/W9fVL/vX1S/719
+ Uv+9fVL/vX1S/719Uv+9fVL/vX1S/719Uv+9fVL/vX1S/719Uv+7fFH/rXRHaZloNAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaZ1Qw24gFGJwI1bg7J/UU2seU4ZrHZIC55t
+ QAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGmcUAZuHlO1b99U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759
+ U/++fVP/vn1T/799U/+xdkqvpHVDDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BqXBGPcSHWuvxuYj/9L+N+eGufO/XpXXHyJVmibF9T2GldEUrnmBACf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGwdUihvnxS/b59
+ U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/7l7T+2pdEc/////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGudUmBvn1S+8yJXv/hnG//7Kh5//Oz
+ g//2vIr99b+N++q2hOvbp3fVy5lqo8OMXmeud0o7oG4/Gf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AatyR127fFH3vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759
+ U/++fVP/vn1T/759U/++fVP/vX5T/7J4TJebaz4J////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BpG5AC7V5TdG+flT/v39V/8mHXP/QjGD/1ZFk/9uXav/jnnD/6ad4//Kzg//zuIf987yK+ey6
+ iOvdqnjRu4lZnaJuPhv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bpm9BI7Z5
+ TtO/flT/vn5U/75+VP++flT/vn5U/75+VP++flT/vn5U/75+VP++flT/vn5U/75+VP++flT/unxR56x0
+ SEv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRuRAOrc0dfvX5T975+VP++flT/vn5U/8CA
+ Vv/Dglf/x4Va/8uIXf/PjGH/1JBk/9qWaf/inW//5qR1/9ygcf/BiFrVonFCIf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wG6dzMDr3VJgb9/VPu/f1X/v39V/79/Vf+/f1X/v39V/79/
+ Vf+/f1X/v39V/79/Vf+/f1X/v39V/79/Vf/AgFX/tntOw6BuQhv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BpHVFH7R5TdPAf1X/v39V/79/Vf+/f1X/vn9V/75/Vf+/f1X/v39V/8GAVv/Eglj/xoVa/8eG
+ W//Cglf/v35V/7B1SZWldE0H////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGtckcpuXtQ579/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/
+ Vv/EhFn9tntQtaNrQQ////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaVwQQ2wd0qhv39V/79/Vv+/f1b/v39W/79/
+ Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+9flT/rHdHRZN0NAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRvRQ2vdUqjv4BW/7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/8KDWf/LimD9u35VpaZwRhn///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGmbkIPr3dKhb1/VPe/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/v4BX/7Z6T9mkckER////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AahyRi24fFLlwIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wYFY/8iIXv/Vk2j7xYldubB6TDuiaUAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bp3FHKbJ4TJ2+f1X1wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP++gFb7rHRHe5VzMgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpnJFBax0SYW/gFf7wIFY/8CB
+ WP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/xYVc/9KQZf/loHP/25xu27yG
+ WX2mdEkjl2c8Bf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGjZ0ADpnBEEax0
+ SVm3e1DXwIFX/cCBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wIFY/7l8Utmnc0Il////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BoGpEE7Z7UNnBg1r/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/8CCWf/DhFv/yopg/9SSaP/ppnn/8rWG/dqod9vAi16FrHhLP55rPRNgQRAFUDchA///
+ /wH///8B////Af///wGgRDYDp3JEJ6t0SG+3fFC5v4JX98GDWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf+/gVf9sXhMiZhmIgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BqXRHQbyA
+ VuPEhVz/wYNa/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/ChFr/yIhf/9GQ
+ Zv/dnHD/8bKD//nCkv/wvYz53q187dakdMnOm2yxzZdpl8qRZI/HjF6fxolcrcSHW9PGiF3xyIle/cWH
+ XP/Bgln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/7Z7UM+ldEYh////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGfZTUFsHdMf8SGXPfHiF//xIVc/8KEW//Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv/Cg1v/xode/82OZP/WlWr/3pxw/+akeP/vsIL/9LaH//K0
+ hv/ysoP9761//emmef3enHD90ZBm/8iJYP/Ehl3/woRb/8GDWv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv+8gFX1q3VIXaJuOgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGib0IRtn1Rl8uMYfvJi2L/xYde/8OFXf/BhFv/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GD
+ W//BhFv/woVc/8aIXv/Li2H/z49l/9STaP/XlWv/1pVr/9aVav/Uk2n/0ZFn/8uMY//Fh17/woVc/8GE
+ XP/Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GD
+ W//Bg1v/v4JY+7B4TJmkcUIR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGncUITuX9SndCRZv3MjmX/x4ph/8WH
+ X//ChV3/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/ChVz/xIZd/8WH
+ Xv/GiF//x4hf/8aIXv/Fh17/w4Vd/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GE
+ XP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEW/+zek2xpXJDG////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGcbDYLuH5RodWVa/3QkWn/yoxk/8aJYf/ChV7/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/tHtR16V0QiH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGZaTgJuH5SkdSU
+ avfZmHD/z5Bp/8qMZP/GiGH/w4Zf/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wINb/bV8UsGnc0cr////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGeajsPt35TbdSVatvlo3n/2ppx/9GSav/Nj2f/yYpj/8SG
+ X//ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KF
+ Xv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/76C
+ WvezeVCdqXRHIf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGSZT0FsXtNOdOWaavqqn756qp//+Cgdv/Xl27/0JBo/8mMZP/FiGH/w4Zf/8KFXv/ChV7/woVe/8KF
+ Xv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KF
+ Xv/Dhl//woVe/8KFXv/ChV7/woVf/8KFXf+7gFbprnZLfahzRBX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bn3BCDb2FWHnXn3Hd77eK+/Gz
+ if/kpHr/25ty/9WWbv/PkWn/yY1l/8aKY//EiGH/w4dg/8KGX//Chl//woZf/8KGX//Chl//woZf/8KG
+ X//Chl//woZf/8KGX//Dhl//w4dg/8SIYf/EiGH/xYlh/8WIYf/EiGD/xIhh/8SIYP++hFr1tHtRwalz
+ SD2XYzIF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BSCYAA59sPh25hVh33Kl82/LBk/34wpb/8bWJ/+enff/ennX/2Jlx/9SV
+ bf/Qkmv/zI9o/8qNZv/JjGb/yYxm/8iLZf/Hi2T/yIxl/8iMZf/IjGX/yIxl/8mMZv/KjWb/yYxl/8mM
+ Zf/JjGb/yo5n/8qNZv/AhVz5tHxQu6l0R1OfazwL////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AYpc
+ LQOreEcXuIdZUc6dbqHgtYbh8MOV+fnIm//3wZX/8baL/+usgv/lpXz/3593/9ucdP/ZmnL/1Zdw/9SW
+ b//Ulm//1ZZv/9SWb//UlW7/1ZZu/9aXb//Wl2//0ZNr/8uOZvm/hVvXtXxSmah2SEmhdUEN////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpHBEC613SSfCk2VbxZVnm9Sl
+ ebnluYvZ6ryP8e69kPnwuo398baL/fCziP3sroP96aqA/eeofv3kpXr94aJ4/d6edPnXmnDpy5Bl1cGH
+ XL+2f1SPs3xRU6ZzSCOhb0QH////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wF7PQoFpXVKDap5SyeueUtFw5BiU8eWZ23Kl2mDzZhqg8qT
+ Zo/Ij2KTxo5hfcKKXW2+h1pjuYJVVax2STmqdUchpXdEDZJcKwX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BTSwAA2pBAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormForRandSpecOfVar.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/FormForRandSpecOfVar.Designer.cs
new file mode 100644
index 0000000..df2b316
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForRandSpecOfVar.Designer.cs
@@ -0,0 +1,143 @@
+namespace HCSAnalyzer.Simulator.Forms
+{
+ partial class FormForRandSpecOfVar
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormForRandSpecOfVar));
+ this.buttonOk = new System.Windows.Forms.Button();
+ this.label1 = new System.Windows.Forms.Label();
+ this.numericUpDownMin = new System.Windows.Forms.NumericUpDown();
+ this.numericUpDownMax = new System.Windows.Forms.NumericUpDown();
+ this.label2 = new System.Windows.Forms.Label();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMin)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMax)).BeginInit();
+ this.SuspendLayout();
+ //
+ // buttonOk
+ //
+ this.buttonOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.buttonOk.Location = new System.Drawing.Point(101, 70);
+ this.buttonOk.Name = "buttonOk";
+ this.buttonOk.Size = new System.Drawing.Size(75, 23);
+ this.buttonOk.TabIndex = 0;
+ this.buttonOk.Text = "Ok";
+ this.buttonOk.UseVisualStyleBackColor = true;
+ this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(11, 14);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(24, 13);
+ this.label1.TabIndex = 1;
+ this.label1.Text = "Min";
+ //
+ // numericUpDownMin
+ //
+ this.numericUpDownMin.DecimalPlaces = 2;
+ this.numericUpDownMin.Location = new System.Drawing.Point(53, 12);
+ this.numericUpDownMin.Maximum = new decimal(new int[] {
+ 1410065408,
+ 2,
+ 0,
+ 0});
+ this.numericUpDownMin.Minimum = new decimal(new int[] {
+ 1410065408,
+ 2,
+ 0,
+ -2147483648});
+ this.numericUpDownMin.Name = "numericUpDownMin";
+ this.numericUpDownMin.Size = new System.Drawing.Size(68, 20);
+ this.numericUpDownMin.TabIndex = 2;
+ //
+ // numericUpDownMax
+ //
+ this.numericUpDownMax.DecimalPlaces = 2;
+ this.numericUpDownMax.Location = new System.Drawing.Point(53, 38);
+ this.numericUpDownMax.Maximum = new decimal(new int[] {
+ 1410065408,
+ 2,
+ 0,
+ 0});
+ this.numericUpDownMax.Minimum = new decimal(new int[] {
+ 1410065408,
+ 2,
+ 0,
+ -2147483648});
+ this.numericUpDownMax.Name = "numericUpDownMax";
+ this.numericUpDownMax.Size = new System.Drawing.Size(68, 20);
+ this.numericUpDownMax.TabIndex = 4;
+ this.numericUpDownMax.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(11, 40);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(27, 13);
+ this.label2.TabIndex = 3;
+ this.label2.Text = "Max";
+ //
+ // FormForRandSpecOfVar
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.Control;
+ this.ClientSize = new System.Drawing.Size(184, 99);
+ this.Controls.Add(this.numericUpDownMax);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.numericUpDownMin);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.buttonOk);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MinimizeBox = false;
+ this.Name = "FormForRandSpecOfVar";
+ this.Text = "Random Spec.";
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMin)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMax)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button buttonOk;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ public System.Windows.Forms.NumericUpDown numericUpDownMin;
+ public System.Windows.Forms.NumericUpDown numericUpDownMax;
+ }
+}
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormForRandSpecOfVar.cs b/Cell-by-Cell and DB/Simulator/Forms/FormForRandSpecOfVar.cs
new file mode 100644
index 0000000..517611b
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForRandSpecOfVar.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Simulator.Classes;
+
+namespace HCSAnalyzer.Simulator.Forms
+{
+ public partial class FormForRandSpecOfVar : Form
+ {
+ public cClassForRandomParam RandomParam;
+
+ public FormForRandSpecOfVar(cClassForRandomParam RandomParam)
+ {
+ InitializeComponent();
+ this.numericUpDownMax.Value = (decimal)RandomParam.Max;
+ this.numericUpDownMin.Value = (decimal)RandomParam.Min;
+ this.RandomParam = RandomParam;
+ }
+
+ private void buttonOk_Click(object sender, EventArgs e)
+ {
+ this.RandomParam.Max = (double)this.numericUpDownMax.Value;
+ this.RandomParam.Min = (double)this.numericUpDownMin.Value;
+
+
+ }
+ }
+}
diff --git a/Forms/ClusteringForms/FormForHierarchical.resx b/Cell-by-Cell and DB/Simulator/Forms/FormForRandSpecOfVar.resx
similarity index 100%
rename from Forms/ClusteringForms/FormForHierarchical.resx
rename to Cell-by-Cell and DB/Simulator/Forms/FormForRandSpecOfVar.resx
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormForVariableDef.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/FormForVariableDef.Designer.cs
new file mode 100644
index 0000000..901b602
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForVariableDef.Designer.cs
@@ -0,0 +1,196 @@
+namespace HCSAnalyzer.Simulator.Forms
+{
+ partial class FormForVariableDef
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormForVariableDef));
+ this.buttonOk = new System.Windows.Forms.Button();
+ this.radioButtonConstant = new System.Windows.Forms.RadioButton();
+ this.radioButtonVariable = new System.Windows.Forms.RadioButton();
+ this.groupBoxVariableSpec = new System.Windows.Forms.GroupBox();
+ this.numericUpDownIncrement = new System.Windows.Forms.NumericUpDown();
+ this.label1 = new System.Windows.Forms.Label();
+ this.checkBoxRandom = new System.Windows.Forms.CheckBox();
+ this.checkBoxProportionalToRow = new System.Windows.Forms.CheckBox();
+ this.checkBoxProportionalToCol = new System.Windows.Forms.CheckBox();
+ this.groupBoxVariableSpec.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownIncrement)).BeginInit();
+ this.SuspendLayout();
+ //
+ // buttonOk
+ //
+ this.buttonOk.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.buttonOk.Location = new System.Drawing.Point(87, 211);
+ this.buttonOk.Name = "buttonOk";
+ this.buttonOk.Size = new System.Drawing.Size(75, 23);
+ this.buttonOk.TabIndex = 0;
+ this.buttonOk.Text = "Ok";
+ this.buttonOk.UseVisualStyleBackColor = true;
+ this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click);
+ //
+ // radioButtonConstant
+ //
+ this.radioButtonConstant.AutoSize = true;
+ this.radioButtonConstant.Checked = true;
+ this.radioButtonConstant.Location = new System.Drawing.Point(17, 13);
+ this.radioButtonConstant.Name = "radioButtonConstant";
+ this.radioButtonConstant.Size = new System.Drawing.Size(67, 17);
+ this.radioButtonConstant.TabIndex = 1;
+ this.radioButtonConstant.TabStop = true;
+ this.radioButtonConstant.Text = "Constant";
+ this.radioButtonConstant.UseVisualStyleBackColor = true;
+ this.radioButtonConstant.CheckedChanged += new System.EventHandler(this.radioButtonConstant_CheckedChanged);
+ //
+ // radioButtonVariable
+ //
+ this.radioButtonVariable.AutoSize = true;
+ this.radioButtonVariable.Location = new System.Drawing.Point(18, 48);
+ this.radioButtonVariable.Name = "radioButtonVariable";
+ this.radioButtonVariable.Size = new System.Drawing.Size(63, 17);
+ this.radioButtonVariable.TabIndex = 2;
+ this.radioButtonVariable.Text = "Variable";
+ this.radioButtonVariable.UseVisualStyleBackColor = true;
+ this.radioButtonVariable.CheckedChanged += new System.EventHandler(this.radioButtonVariable_CheckedChanged);
+ //
+ // groupBoxVariableSpec
+ //
+ this.groupBoxVariableSpec.Controls.Add(this.numericUpDownIncrement);
+ this.groupBoxVariableSpec.Controls.Add(this.label1);
+ this.groupBoxVariableSpec.Controls.Add(this.checkBoxRandom);
+ this.groupBoxVariableSpec.Controls.Add(this.checkBoxProportionalToRow);
+ this.groupBoxVariableSpec.Controls.Add(this.checkBoxProportionalToCol);
+ this.groupBoxVariableSpec.Enabled = false;
+ this.groupBoxVariableSpec.Location = new System.Drawing.Point(3, 70);
+ this.groupBoxVariableSpec.Name = "groupBoxVariableSpec";
+ this.groupBoxVariableSpec.Size = new System.Drawing.Size(159, 132);
+ this.groupBoxVariableSpec.TabIndex = 3;
+ this.groupBoxVariableSpec.TabStop = false;
+ this.groupBoxVariableSpec.Text = "Variable Specifications";
+ //
+ // numericUpDownIncrement
+ //
+ this.numericUpDownIncrement.DecimalPlaces = 2;
+ this.numericUpDownIncrement.Location = new System.Drawing.Point(70, 97);
+ this.numericUpDownIncrement.Maximum = new decimal(new int[] {
+ 1215752192,
+ 23,
+ 0,
+ 0});
+ this.numericUpDownIncrement.Minimum = new decimal(new int[] {
+ 1215752192,
+ 23,
+ 0,
+ -2147483648});
+ this.numericUpDownIncrement.Name = "numericUpDownIncrement";
+ this.numericUpDownIncrement.Size = new System.Drawing.Size(67, 20);
+ this.numericUpDownIncrement.TabIndex = 4;
+ this.numericUpDownIncrement.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(10, 99);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(54, 13);
+ this.label1.TabIndex = 3;
+ this.label1.Text = "Increment";
+ //
+ // checkBoxRandom
+ //
+ this.checkBoxRandom.AutoSize = true;
+ this.checkBoxRandom.Location = new System.Drawing.Point(16, 69);
+ this.checkBoxRandom.Name = "checkBoxRandom";
+ this.checkBoxRandom.Size = new System.Drawing.Size(66, 17);
+ this.checkBoxRandom.TabIndex = 2;
+ this.checkBoxRandom.Text = "Random";
+ this.checkBoxRandom.UseVisualStyleBackColor = true;
+ this.checkBoxRandom.CheckedChanged += new System.EventHandler(this.checkBoxRandom_CheckedChanged);
+ //
+ // checkBoxProportionalToRow
+ //
+ this.checkBoxProportionalToRow.AutoSize = true;
+ this.checkBoxProportionalToRow.Location = new System.Drawing.Point(16, 46);
+ this.checkBoxProportionalToRow.Name = "checkBoxProportionalToRow";
+ this.checkBoxProportionalToRow.Size = new System.Drawing.Size(83, 17);
+ this.checkBoxProportionalToRow.TabIndex = 1;
+ this.checkBoxProportionalToRow.Text = "Row related";
+ this.checkBoxProportionalToRow.UseVisualStyleBackColor = true;
+ //
+ // checkBoxProportionalToCol
+ //
+ this.checkBoxProportionalToCol.AutoSize = true;
+ this.checkBoxProportionalToCol.Checked = true;
+ this.checkBoxProportionalToCol.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.checkBoxProportionalToCol.Location = new System.Drawing.Point(16, 23);
+ this.checkBoxProportionalToCol.Name = "checkBoxProportionalToCol";
+ this.checkBoxProportionalToCol.Size = new System.Drawing.Size(96, 17);
+ this.checkBoxProportionalToCol.TabIndex = 0;
+ this.checkBoxProportionalToCol.Text = "Column related";
+ this.checkBoxProportionalToCol.UseVisualStyleBackColor = true;
+ //
+ // FormForVariableDef
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.Control;
+ this.ClientSize = new System.Drawing.Size(167, 243);
+ this.Controls.Add(this.groupBoxVariableSpec);
+ this.Controls.Add(this.radioButtonVariable);
+ this.Controls.Add(this.radioButtonConstant);
+ this.Controls.Add(this.buttonOk);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.Name = "FormForVariableDef";
+ this.Text = "Variable";
+ this.groupBoxVariableSpec.ResumeLayout(false);
+ this.groupBoxVariableSpec.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownIncrement)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button buttonOk;
+ private System.Windows.Forms.RadioButton radioButtonConstant;
+ private System.Windows.Forms.RadioButton radioButtonVariable;
+ private System.Windows.Forms.GroupBox groupBoxVariableSpec;
+ private System.Windows.Forms.CheckBox checkBoxRandom;
+ private System.Windows.Forms.CheckBox checkBoxProportionalToRow;
+ private System.Windows.Forms.CheckBox checkBoxProportionalToCol;
+ private System.Windows.Forms.NumericUpDown numericUpDownIncrement;
+ private System.Windows.Forms.Label label1;
+ }
+}
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/FormForVariableDef.cs b/Cell-by-Cell and DB/Simulator/Forms/FormForVariableDef.cs
new file mode 100644
index 0000000..88ebc62
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/FormForVariableDef.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Simulator.Classes;
+
+namespace HCSAnalyzer.Simulator.Forms
+{
+
+ public partial class FormForVariableDef : Form
+ {
+ public cClassForVariable thisVariable;
+
+ public FormForVariableDef(cClassForVariable thisVariable)
+ {
+ InitializeComponent();
+ this.thisVariable = thisVariable;
+ this.radioButtonConstant.Checked = thisVariable.IsConstant;
+ this.radioButtonVariable.Checked = !thisVariable.IsConstant;
+ this.checkBoxRandom.Checked = thisVariable.IsVariableRandom;
+ this.checkBoxProportionalToCol.Checked = thisVariable.IsVariableAlongColumns;
+ this.checkBoxProportionalToRow.Checked = thisVariable.IsVariableAlongRows;
+ this.numericUpDownIncrement.Value = (decimal)thisVariable.Increment;
+ }
+
+ private void radioButtonVariable_CheckedChanged(object sender, EventArgs e)
+ {
+ RefreshGUI();
+ }
+
+ private void radioButtonConstant_CheckedChanged(object sender, EventArgs e)
+ {
+ RefreshGUI();
+ }
+
+ void RefreshGUI()
+ {
+ groupBoxVariableSpec.Enabled = radioButtonVariable.Checked;
+ }
+
+ private void checkBoxRandom_CheckedChanged(object sender, EventArgs e)
+ {
+ FormForRandSpecOfVar WindowForRandSpec = new FormForRandSpecOfVar(this.thisVariable.RandomInfo);
+ if (WindowForRandSpec.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ thisVariable.RandomInfo = WindowForRandSpec.RandomParam;
+ }
+
+ private void buttonOk_Click(object sender, EventArgs e)
+ {
+ this.thisVariable.IsConstant = this.radioButtonConstant.Checked;
+ this.thisVariable.IsVariableAlongColumns = this.checkBoxProportionalToCol.Checked;
+ this.thisVariable.IsVariableAlongRows = this.checkBoxProportionalToRow.Checked;
+ this.thisVariable.IsVariableRandom = this.checkBoxRandom.Checked;
+ this.thisVariable.Increment = (double)this.numericUpDownIncrement.Value;
+ }
+
+ }
+}
diff --git a/Forms/ClusteringForms/FormForKMeansInfo.resx b/Cell-by-Cell and DB/Simulator/Forms/FormForVariableDef.resx
similarity index 100%
rename from Forms/ClusteringForms/FormForKMeansInfo.resx
rename to Cell-by-Cell and DB/Simulator/Forms/FormForVariableDef.resx
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/FormForSimuGenerator.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/FormForSimuGenerator.Designer.cs
new file mode 100644
index 0000000..e8c8d73
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/FormForSimuGenerator.Designer.cs
@@ -0,0 +1,345 @@
+namespace HCSAnalyzer.Simulator.Forms
+{
+ partial class FormForSimuGenerator
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("General");
+ System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Dimensions");
+ System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("Cell Types");
+ System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("World", new System.Windows.Forms.TreeNode[] {
+ treeNode2,
+ treeNode3});
+ System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("Cell Populations");
+ System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("Model Initialization", new System.Windows.Forms.TreeNode[] {
+ treeNode5});
+ System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("Plate Design");
+ System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("Export", new System.Windows.Forms.TreeNode[] {
+ treeNode7});
+ System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("3D");
+ System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("Visualization", new System.Windows.Forms.TreeNode[] {
+ treeNode9});
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormForSimuGenerator));
+ this.buttonRun = new System.Windows.Forms.Button();
+ this.treeViewForOptions = new System.Windows.Forms.TreeView();
+ this.panelForDisplay = new System.Windows.Forms.Panel();
+ this.statusStrip = new System.Windows.Forms.StatusStrip();
+ this.contextMenuStripForVisu = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.displayToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.dToolStripMenuItemDisp3D = new System.Windows.Forms.ToolStripMenuItem();
+ this.dToolStripMenuItemDisp2D = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripProgressBar = new System.Windows.Forms.ToolStripProgressBar();
+ this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
+ this.menuStrip = new System.Windows.Forms.MenuStrip();
+ this.displayToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.cellTypesRelationshipsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+ this.dToolStripMenuItemDisplay2D = new System.Windows.Forms.ToolStripMenuItem();
+ this.dToolStripMenuItemDisplay3D = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.newCellTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.contextMenuStripForTreeView = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.runToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
+ this.collapseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.statusStrip.SuspendLayout();
+ this.contextMenuStripForVisu.SuspendLayout();
+ this.menuStrip.SuspendLayout();
+ this.contextMenuStripForTreeView.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // buttonRun
+ //
+ this.buttonRun.Location = new System.Drawing.Point(370, 287);
+ this.buttonRun.Name = "buttonRun";
+ this.buttonRun.Size = new System.Drawing.Size(98, 25);
+ this.buttonRun.TabIndex = 0;
+ this.buttonRun.Text = "Run";
+ this.buttonRun.UseVisualStyleBackColor = true;
+ this.buttonRun.Click += new System.EventHandler(this.buttonRun_Click);
+ //
+ // treeViewForOptions
+ //
+ this.treeViewForOptions.ContextMenuStrip = this.contextMenuStripForTreeView;
+ this.treeViewForOptions.Location = new System.Drawing.Point(7, 31);
+ this.treeViewForOptions.Name = "treeViewForOptions";
+ treeNode1.Name = "Node0";
+ treeNode1.Tag = "General";
+ treeNode1.Text = "General";
+ treeNode2.Name = "Node1";
+ treeNode2.Tag = "WorldDimensions";
+ treeNode2.Text = "Dimensions";
+ treeNode3.Name = "Node0";
+ treeNode3.Tag = "CellTypes";
+ treeNode3.Text = "Cell Types";
+ treeNode4.Name = "Node0";
+ treeNode4.Tag = "";
+ treeNode4.Text = "World";
+ treeNode5.Name = "Node3";
+ treeNode5.Tag = "CellPopulations";
+ treeNode5.Text = "Cell Populations";
+ treeNode6.Name = "Node2";
+ treeNode6.Text = "Model Initialization";
+ treeNode7.Name = "Node5";
+ treeNode7.Tag = "PlateDesign";
+ treeNode7.Text = "Plate Design";
+ treeNode8.Name = "Node4";
+ treeNode8.Text = "Export";
+ treeNode9.Name = "Node1";
+ treeNode9.Tag = "3D";
+ treeNode9.Text = "3D";
+ treeNode10.Name = "Node0";
+ treeNode10.Tag = "Visualization";
+ treeNode10.Text = "Visualization";
+ this.treeViewForOptions.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
+ treeNode1,
+ treeNode4,
+ treeNode6,
+ treeNode8,
+ treeNode10});
+ this.treeViewForOptions.Size = new System.Drawing.Size(179, 283);
+ this.treeViewForOptions.TabIndex = 10;
+ this.treeViewForOptions.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViewForOptions_AfterSelect);
+ //
+ // panelForDisplay
+ //
+ this.panelForDisplay.AutoScroll = true;
+ this.panelForDisplay.BackColor = System.Drawing.SystemColors.Control;
+ this.panelForDisplay.Location = new System.Drawing.Point(192, 32);
+ this.panelForDisplay.Name = "panelForDisplay";
+ this.panelForDisplay.Size = new System.Drawing.Size(275, 249);
+ this.panelForDisplay.TabIndex = 11;
+ //
+ // statusStrip
+ //
+ this.statusStrip.ContextMenuStrip = this.contextMenuStripForVisu;
+ this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripProgressBar,
+ this.toolStripStatusLabel});
+ this.statusStrip.Location = new System.Drawing.Point(0, 320);
+ this.statusStrip.Name = "statusStrip";
+ this.statusStrip.Size = new System.Drawing.Size(473, 22);
+ this.statusStrip.Stretch = false;
+ this.statusStrip.TabIndex = 12;
+ //
+ // contextMenuStripForVisu
+ //
+ this.contextMenuStripForVisu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.displayToolStripMenuItem});
+ this.contextMenuStripForVisu.Name = "contextMenuStripForVisu";
+ this.contextMenuStripForVisu.Size = new System.Drawing.Size(113, 26);
+ //
+ // displayToolStripMenuItem
+ //
+ this.displayToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.dToolStripMenuItemDisp3D,
+ this.dToolStripMenuItemDisp2D});
+ this.displayToolStripMenuItem.Name = "displayToolStripMenuItem";
+ this.displayToolStripMenuItem.Size = new System.Drawing.Size(112, 22);
+ this.displayToolStripMenuItem.Text = "Display";
+ //
+ // dToolStripMenuItemDisp3D
+ //
+ this.dToolStripMenuItemDisp3D.Name = "dToolStripMenuItemDisp3D";
+ this.dToolStripMenuItemDisp3D.Size = new System.Drawing.Size(88, 22);
+ this.dToolStripMenuItemDisp3D.Text = "3D";
+ this.dToolStripMenuItemDisp3D.Click += new System.EventHandler(this.dToolStripMenuItemDisp3D_Click);
+ //
+ // dToolStripMenuItemDisp2D
+ //
+ this.dToolStripMenuItemDisp2D.Enabled = false;
+ this.dToolStripMenuItemDisp2D.Name = "dToolStripMenuItemDisp2D";
+ this.dToolStripMenuItemDisp2D.Size = new System.Drawing.Size(88, 22);
+ this.dToolStripMenuItemDisp2D.Text = "2D";
+ this.dToolStripMenuItemDisp2D.Click += new System.EventHandler(this.dToolStripMenuItemDisp2D_Click);
+ //
+ // toolStripProgressBar
+ //
+ this.toolStripProgressBar.Name = "toolStripProgressBar";
+ this.toolStripProgressBar.Size = new System.Drawing.Size(100, 16);
+ //
+ // toolStripStatusLabel
+ //
+ this.toolStripStatusLabel.Name = "toolStripStatusLabel";
+ this.toolStripStatusLabel.Size = new System.Drawing.Size(0, 17);
+ //
+ // menuStrip
+ //
+ this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.displayToolStripMenuItem1,
+ this.toolsToolStripMenuItem});
+ this.menuStrip.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip.Name = "menuStrip";
+ this.menuStrip.Size = new System.Drawing.Size(473, 24);
+ this.menuStrip.TabIndex = 13;
+ this.menuStrip.Text = "menuStrip1";
+ //
+ // displayToolStripMenuItem1
+ //
+ this.displayToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.cellTypesRelationshipsToolStripMenuItem,
+ this.toolStripSeparator1,
+ this.dToolStripMenuItemDisplay2D,
+ this.dToolStripMenuItemDisplay3D});
+ this.displayToolStripMenuItem1.Name = "displayToolStripMenuItem1";
+ this.displayToolStripMenuItem1.Size = new System.Drawing.Size(57, 20);
+ this.displayToolStripMenuItem1.Text = "Display";
+ //
+ // cellTypesRelationshipsToolStripMenuItem
+ //
+ this.cellTypesRelationshipsToolStripMenuItem.Name = "cellTypesRelationshipsToolStripMenuItem";
+ this.cellTypesRelationshipsToolStripMenuItem.Size = new System.Drawing.Size(201, 22);
+ this.cellTypesRelationshipsToolStripMenuItem.Text = "Cell Types Relationships";
+ this.cellTypesRelationshipsToolStripMenuItem.Click += new System.EventHandler(this.cellTypesRelationshipsToolStripMenuItem_Click);
+ //
+ // toolStripSeparator1
+ //
+ this.toolStripSeparator1.Name = "toolStripSeparator1";
+ this.toolStripSeparator1.Size = new System.Drawing.Size(198, 6);
+ //
+ // dToolStripMenuItemDisplay2D
+ //
+ this.dToolStripMenuItemDisplay2D.Enabled = false;
+ this.dToolStripMenuItemDisplay2D.Name = "dToolStripMenuItemDisplay2D";
+ this.dToolStripMenuItemDisplay2D.Size = new System.Drawing.Size(201, 22);
+ this.dToolStripMenuItemDisplay2D.Text = "2D";
+ this.dToolStripMenuItemDisplay2D.Click += new System.EventHandler(this.dToolStripMenuItemDisplay2D_Click);
+ //
+ // dToolStripMenuItemDisplay3D
+ //
+ this.dToolStripMenuItemDisplay3D.Name = "dToolStripMenuItemDisplay3D";
+ this.dToolStripMenuItemDisplay3D.Size = new System.Drawing.Size(201, 22);
+ this.dToolStripMenuItemDisplay3D.Text = "3D";
+ this.dToolStripMenuItemDisplay3D.Click += new System.EventHandler(this.dToolStripMenuItemDisplay3D_Click);
+ //
+ // toolsToolStripMenuItem
+ //
+ this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.newCellTypeToolStripMenuItem});
+ this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
+ this.toolsToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
+ this.toolsToolStripMenuItem.Text = "Tools";
+ //
+ // newCellTypeToolStripMenuItem
+ //
+ this.newCellTypeToolStripMenuItem.Name = "newCellTypeToolStripMenuItem";
+ this.newCellTypeToolStripMenuItem.Size = new System.Drawing.Size(145, 22);
+ this.newCellTypeToolStripMenuItem.Text = "New cell type";
+ this.newCellTypeToolStripMenuItem.Click += new System.EventHandler(this.newCellTypeToolStripMenuItem_Click);
+ //
+ // contextMenuStripForTreeView
+ //
+ this.contextMenuStripForTreeView.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.runToolStripMenuItem,
+ this.toolStripSeparator2,
+ this.collapseToolStripMenuItem,
+ this.expandAllToolStripMenuItem});
+ this.contextMenuStripForTreeView.Name = "contextMenuStripForTreeView";
+ this.contextMenuStripForTreeView.Size = new System.Drawing.Size(153, 98);
+ //
+ // runToolStripMenuItem
+ //
+ this.runToolStripMenuItem.Name = "runToolStripMenuItem";
+ this.runToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.runToolStripMenuItem.Text = "Run";
+ this.runToolStripMenuItem.Click += new System.EventHandler(this.runToolStripMenuItem_Click);
+ //
+ // toolStripSeparator2
+ //
+ this.toolStripSeparator2.Name = "toolStripSeparator2";
+ this.toolStripSeparator2.Size = new System.Drawing.Size(149, 6);
+ //
+ // collapseToolStripMenuItem
+ //
+ this.collapseToolStripMenuItem.Name = "collapseToolStripMenuItem";
+ this.collapseToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.collapseToolStripMenuItem.Text = "Collapse All";
+ this.collapseToolStripMenuItem.Click += new System.EventHandler(this.collapseToolStripMenuItem_Click);
+ //
+ // expandAllToolStripMenuItem
+ //
+ this.expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem";
+ this.expandAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.expandAllToolStripMenuItem.Text = "Expand All";
+ this.expandAllToolStripMenuItem.Click += new System.EventHandler(this.expandAllToolStripMenuItem_Click);
+ //
+ // FormForSimuGenerator
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.Control;
+ this.ClientSize = new System.Drawing.Size(473, 342);
+ this.Controls.Add(this.statusStrip);
+ this.Controls.Add(this.menuStrip);
+ this.Controls.Add(this.panelForDisplay);
+ this.Controls.Add(this.treeViewForOptions);
+ this.Controls.Add(this.buttonRun);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MainMenuStrip = this.menuStrip;
+ this.Name = "FormForSimuGenerator";
+ this.Text = "Cells Simulator";
+ this.statusStrip.ResumeLayout(false);
+ this.statusStrip.PerformLayout();
+ this.contextMenuStripForVisu.ResumeLayout(false);
+ this.menuStrip.ResumeLayout(false);
+ this.menuStrip.PerformLayout();
+ this.contextMenuStripForTreeView.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button buttonRun;
+ public System.Windows.Forms.TreeView treeViewForOptions;
+ private System.Windows.Forms.Panel panelForDisplay;
+ private System.Windows.Forms.StatusStrip statusStrip;
+ private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel;
+ private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStripForVisu;
+ private System.Windows.Forms.ToolStripMenuItem displayToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem dToolStripMenuItemDisp3D;
+ private System.Windows.Forms.ToolStripMenuItem dToolStripMenuItemDisp2D;
+ private System.Windows.Forms.MenuStrip menuStrip;
+ private System.Windows.Forms.ToolStripMenuItem displayToolStripMenuItem1;
+ private System.Windows.Forms.ToolStripMenuItem dToolStripMenuItemDisplay3D;
+ private System.Windows.Forms.ToolStripMenuItem dToolStripMenuItemDisplay2D;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStripForTreeView;
+ private System.Windows.Forms.ToolStripMenuItem runToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem newCellTypeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+ private System.Windows.Forms.ToolStripMenuItem cellTypesRelationshipsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
+ private System.Windows.Forms.ToolStripMenuItem collapseToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem expandAllToolStripMenuItem;
+ }
+}
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/FormForSimuGenerator.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/FormForSimuGenerator.cs
new file mode 100644
index 0000000..5f27cab
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/FormForSimuGenerator.cs
@@ -0,0 +1,657 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Simulator.Classes;
+using HCSAnalyzer.Forms;
+using HCSAnalyzer.Classes._3D;
+using HCSAnalyzer.Classes;
+using HCSAnalyzer.Forms.IO;
+using ImageAnalysis;
+using HCSAnalyzer.Forms.FormsForOptions.ClassForOptions.Children;
+using HCSAnalyzer.Simulator.Forms.Panels;
+using HCSAnalyzer.Simulator.Forms.NewCellType;
+using MIConvexHull;
+using Microsoft.Msagl.GraphViewerGdi;
+
+namespace HCSAnalyzer.Simulator.Forms
+{
+ public partial class FormForSimuGenerator : Form
+ {
+
+ cGlobalInfo GlobalInfo;
+ public cWorld NewWorld;
+ public cListClusteringAlgo ListClusteringAlgo;
+ public PanelForParamCellPopulations MyPanelForParamCellPopulations;
+ PanelForParamCellTypes MyPanelForParamCellTypes;
+
+
+ public cListCellType ListCellTypes { get; private set; }
+
+ public cParamAlgo GetSelectedAlgoAndParameters()
+ {
+ cParamAlgo ToReturn = ListClusteringAlgo.GetListParams((string)treeViewForOptions.SelectedNode.Tag);
+ return ToReturn;
+ }
+
+ public FormForSimuGenerator(cGlobalInfo GlobalInfo)
+ {
+ Random rnd = new Random();
+
+ // generate some random points
+ Func nextRandom = () => 2 * 10 * rnd.NextDouble() - 10;
+ var vertices = Enumerable.Range(0, 300)
+ .Select(_ => new cPoint3D(nextRandom(), nextRandom(), nextRandom()))
+ .ToList();
+
+ //var vertices = new List();
+ //int d = 4;
+ //double cs = 10.0;
+ //for (int i = 0; i < d; i++)
+ //{
+ // for (int j = 0; j < d; j++)
+ // {
+ // for (int k = 0; k < d; k++)
+ // {
+ // //vertices.Add(new Vertex(10 * i - 20 + rnd.NextDouble(), 10 * j - 20 - rnd.NextDouble(), 10 * k - 20 + rnd.NextDouble()));
+ // vertices.Add(new Vertex(-10 * i, 10 * j, 10 * k));
+ // }
+ // }
+ //}
+
+ // calculate the triangulation
+ // var tetrahedrons = Triangulation.CreateDelaunay(vertices).Cells;
+ // var tetrahedrons = VoronoiMesh.Create(vertices).Vertices;
+
+ #region initialise cell types
+ ListCellTypes = new cListCellType();
+ for (int i = 0; i < 5; i++)
+ ListCellTypes.Add(new cCellType(i, this));
+
+ foreach (cCellType item in this.ListCellTypes)
+ {
+ int Idx = 0;
+ foreach (cTransitionValue Transition in item.ListInitialTransitions)
+ {
+ Transition.DestType = this.ListCellTypes[Idx++];
+ }
+ }
+
+ #endregion
+
+ this.GlobalInfo = GlobalInfo;
+ InitializeComponent();
+ MyPanelForParamCellPopulations = new PanelForParamCellPopulations(new cPoint3D(600, 600, 50), this);
+
+ this.treeViewForOptions.ExpandAll();
+ this.treeViewForOptions.SelectedNode = this.treeViewForOptions.Nodes[0];
+ this.ListClusteringAlgo = new cListClusteringAlgo(new cPoint3D(600, 600, 50));
+
+ cParamAlgo ClusteringAlgo = ListClusteringAlgo.GetListParams("WorldDimensions");
+ cListValuesParam Parameters = ClusteringAlgo.GetListValuesParam();
+
+ NewWorld = new cWorld(new cPoint3D((int)(Parameters.ListDoubleValues.Get("numericUpDownWorldDimensionY").Value),
+ (Parameters.ListDoubleValues.Get("numericUpDownWorldDimensionY").Value),
+ (Parameters.ListDoubleValues.Get("numericUpDownWorldDimensionZ").Value)), this);
+
+ MyPanelForParamCellTypes = new PanelForParamCellTypes();
+ }
+
+ private void buttonRun_Click(object sender, EventArgs e)
+ {
+ RunSimu();
+ }
+
+ void RunSimu()
+ {
+ // int NumWellToProcess = 1;
+ List ListNameSignature = new List();
+ Random RND = new Random();
+
+ if(NewWorld.ListCells!=null) NewWorld.ListCells.Clear();
+
+
+ ListNameSignature.Add("PosX");
+ ListNameSignature.Add("PosY");
+ ListNameSignature.Add("PosZ");
+ ListNameSignature.Add("Volume");
+ ListNameSignature.Add("DistanceToCenter");
+ ListNameSignature.Add("FullPathDistance");
+ ListNameSignature.Add("CellType");
+
+ cSQLiteDatabase SQDB = null;
+ string PlateName = "SimulatedPlate";
+
+ bool IsExportToDB = (bool)ListClusteringAlgo.GetListParams("PlateDesign").GetListValuesParam().ListCheckValues.Get("checkBoxExportToDB").Value;
+ int NumCols = (int)ListClusteringAlgo.GetListParams("PlateDesign").GetListValuesParam().ListDoubleValues.Get("numericUpDownNumCols").Value;
+ int NumRows = (int)ListClusteringAlgo.GetListParams("PlateDesign").GetListValuesParam().ListDoubleValues.Get("numericUpDownNumRows").Value;
+
+ if (IsExportToDB)
+ {
+
+ FolderBrowserDialog WorkingFolderDialog = new FolderBrowserDialog();
+ WorkingFolderDialog.ShowNewFolderButton = true;
+ WorkingFolderDialog.Description = "Select the working directory";
+ if (WorkingFolderDialog.ShowDialog() != DialogResult.OK) return;
+ //NumWellToProcess = NumWells;
+
+ SQDB = new cSQLiteDatabase(WorkingFolderDialog.SelectedPath + "\\" + PlateName, ListNameSignature, true);
+ }
+
+ // run the simulation
+ FormForProgress MyProgressBar = new FormForProgress();
+ int NumIterations = (int)ListClusteringAlgo.GetListParams("General").GetListValuesParam().ListDoubleValues.Get("numericUpDownRunIterations").Value;
+
+ if (IsExportToDB)
+ {
+ toolStripProgressBar.Maximum = NumIterations * NumCols * NumRows;
+ }
+ else
+ {
+ toolStripProgressBar.Maximum = NumIterations;
+ NumCols = 1;
+ NumRows = 1;
+ }
+
+
+ //MyProgressBar.progressBar
+ // MyProgressBar.Show();
+
+
+ // cParamAlgo ClusteringAlgo = ListClusteringAlgo.GetListParams("CellPopulations");
+ // cListValuesParam Parameters = ClusteringAlgo.GetListValuesParam();
+
+ //ListView ListViewForCellPops = null;// (ListView)Parameters.ListListViewValues.Get("listViewForCellPopulations").Value;
+
+ bool IsMemoryOn = (bool)ListClusteringAlgo.GetListParams("General").GetListValuesParam().ListCheckValues.Get("checkBoxMemory").Value;
+
+ for (int IdxCol = 0; IdxCol < NumCols; IdxCol++)
+ for (int IdxRow = 0; IdxRow < NumRows; IdxRow++)
+ {
+ cWellForDatabase WellForDB = new cWellForDatabase(PlateName, IdxCol + 1, IdxRow + 1);
+ List> ListData = new List>();
+
+ cParamAlgo ClusteringAlgo = ListClusteringAlgo.GetListParams("WorldDimensions");
+ cListValuesParam Parameters = ClusteringAlgo.GetListValuesParam();
+
+ NewWorld.ListCells.Clear();
+
+ NewWorld = new cWorld(new cPoint3D((int)(Parameters.ListDoubleValues.Get("numericUpDownWorldDimensionX").Value),
+ (Parameters.ListDoubleValues.Get("numericUpDownWorldDimensionY").Value),
+ (Parameters.ListDoubleValues.Get("numericUpDownWorldDimensionZ").Value)), this);
+
+
+ // // define a cell cycle
+ // cCycle ClassicCellCycle = new cCycle(); // default cell cycle
+
+ // Random RndForUnsychronizedPopulation = new Random();
+
+ // int CellType = comboBoxCellType.SelectedIndex;
+ // if (SQDB != null) CellType = IdxWell % comboBoxCellType.Items.Count;
+
+ // // generate initiale cell population
+ // for (int i = 0; i < (int)numericUpDownInitialCellNumber.Value; i++)
+ // {
+ // cCell NewCell = new cCell(new cPoint3D(NewWorld.Dimensions.X / 2, NewWorld.Dimensions.Y / 2, 0),
+ // 2,
+ // CellType,
+ // RndForUnsychronizedPopulation.NextDouble() * ClassicCellCycle.ListProba.Count);
+
+ // NewWorld.ListCells.Add(NewCell);
+
+ foreach (ListViewItem item in MyPanelForParamCellPopulations.listViewForCellPopulations.Items)
+ {
+ if (item.Checked)
+ {
+ cCellPopulation CurrentCellPop = (cCellPopulation)item.Tag;
+
+ //cClassForVariable MyVar = CurrentCellPop.AssociatedVariables.FindVariable("v_CellNumber");
+ //if (MyVar.IsConstant == false)
+ //{
+ // double NewValue = MyVar.Cst_Value + IdxWell * MyVar.Increment;
+ //}
+
+ //NewWorld.ListCells.AddRange(CurrentCellPop);
+
+ //ListVar.Add(new cClassForVariable("v_CellNumber", 100));
+ //ListVar.Add(new cClassForVariable("v_InitPosX", 0));
+ //ListVar.Add(new cClassForVariable("v_InitPosY", 0));
+ //ListVar.Add(new cClassForVariable("v_InitPosZ", 0));
+ //ListVar.Add(new cClassForVariable("v_InitPosType", 0));
+
+ cClassForVariable MyVarVolType = CurrentCellPop.AssociatedVariables.FindVariable("v_InitVolType");
+ cClassForVariable MyVarVol = CurrentCellPop.AssociatedVariables.FindVariable("v_InitVol");
+
+ cClassForVariable MyVarPosType = CurrentCellPop.AssociatedVariables.FindVariable("v_InitPosType");
+ cClassForVariable MyVarPosX = CurrentCellPop.AssociatedVariables.FindVariable("v_InitPosX");
+ cClassForVariable MyVarPosY = CurrentCellPop.AssociatedVariables.FindVariable("v_InitPosY");
+ cClassForVariable MyVarPosZ = CurrentCellPop.AssociatedVariables.FindVariable("v_InitPosZ");
+
+
+ double InitVolume = 0;
+ if (MyVarVolType.Cst_Value == 1) // Random
+ {
+ InitVolume = (MyVarVolType.RandomInfo.Max - MyVarVolType.RandomInfo.Min) * RND.NextDouble() + MyVarVolType.RandomInfo.Min;
+ }
+ else // fixed
+ {
+ InitVolume = MyVarVol.Cst_Value;
+ }
+
+ foreach (cCell CurrentCell in CurrentCellPop)
+ {
+
+ double Volume = 0;
+ if (MyVarVol.IsConstant == false) // random
+ {
+ // a changer ... au lieu de min max, mettre juste standard dev.
+ Volume = (MyVarVol.RandomInfo.Max - MyVarVol.RandomInfo.Min) * RND.NextDouble() + MyVarVol.RandomInfo.Min;
+ }
+ else
+ {
+ if (MyVarVol.IsVariableAlongColumns)
+ Volume = InitVolume + IdxCol * InitVolume;
+ else if (MyVarVol.IsVariableAlongRows)
+ Volume = InitVolume + IdxRow * InitVolume;
+ else
+ Volume = InitVolume;
+
+
+ }
+ CurrentCell.InitialVolume = Volume;
+
+
+ if(MyVarPosType.Cst_Value==0) // center
+ {
+ cPoint3D CellPos = new cPoint3D(NewWorld.Dimensions.X / 2.0, NewWorld.Dimensions.Y / 2.0, NewWorld.Dimensions.Z / 2.0);
+ CurrentCell.CentroidPosition = CellPos;
+ }
+ else if (MyVarPosType.Cst_Value==1) // random
+ {
+ cPoint3D CellPos = new cPoint3D(NewWorld.Dimensions.X * RND.NextDouble(),
+ NewWorld.Dimensions.Y * RND.NextDouble(),
+ NewWorld.Dimensions.Z * RND.NextDouble());
+ CurrentCell.CentroidPosition = CellPos;
+ }
+ else if (MyVarPosType.Cst_Value==2) // fixed
+ {
+ double X_start;
+
+ if (MyVarPosX.IsVariableAlongColumns)
+ X_start = MyVarPosX.Cst_Value + IdxCol * MyVarPosX.Increment;
+ else if (MyVarPosX.IsVariableAlongRows)
+ X_start = MyVarPosX.Cst_Value + IdxRow * MyVarPosX.Increment;
+ else
+ X_start = MyVarPosX.Cst_Value;
+
+ double Y_start;
+ if (MyVarPosY.IsVariableAlongColumns)
+ Y_start = MyVarPosY.Cst_Value + IdxCol * MyVarPosY.Increment;
+ else if (MyVarPosY.IsVariableAlongRows)
+ Y_start = MyVarPosY.Cst_Value + IdxRow * MyVarPosY.Increment;
+ else
+ Y_start = MyVarPosY.Cst_Value;
+
+ double Z_start;
+ if (MyVarPosZ.IsVariableAlongColumns)
+ Z_start = MyVarPosZ.Cst_Value + IdxCol * MyVarPosZ.Increment;
+ else if (MyVarPosZ.IsVariableAlongRows)
+ Z_start = MyVarPosZ.Cst_Value + IdxRow * MyVarPosZ.Increment;
+ else
+ Z_start = MyVarPosZ.Cst_Value;
+
+
+ cPoint3D CellPos = new cPoint3D(X_start,
+ Y_start,
+ Z_start);
+ CurrentCell.CentroidPosition = CellPos;
+ }
+
+
+ CurrentCell.MemoryOn = true;
+ CurrentCell.PreviousStates.Clear();
+
+ NewWorld.ListCells.Add(CurrentCell);
+ }
+
+ }
+ }
+ //NewWorld.ListCells.AddRange(
+
+ //}
+ // //{
+ // // cCell NewCell = new cCell(new cPoint3D(IdxPosX, IdxPosY, NewWorld.Dimensions.Z / 2),
+ // // 10,
+ // // CellType,
+ // // RndForUnsychronizedPopulation.NextDouble() * ClassicCellCycle.ListProba.Count);
+ // // NewWorld.ListCells.Add(NewCell);
+ // //}
+
+
+
+ for (int IdxSimu = 0; IdxSimu < NumIterations; IdxSimu++)
+ {
+ // toolStripProgressBar.Value = IdxSimu + NumIterations * (IdxRow * NumCols + IdxCol);
+ //MyProgressBar.label.Text = "It. " + IdxSimu;
+ //MyProgressBar.label.Text += " - " + NewWorld.ListCells.Count + " cells.";
+ //MyProgressBar.label.Refresh();
+ NewWorld.RunSimu(1);
+ }
+
+ toolStripStatusLabel.Text = "Current simulation: " + NumIterations + " iterations. " + NewWorld.ListCells.Count + " cells";
+
+ if (SQDB != null)
+ {
+ foreach (cCell TmpCell in NewWorld.ListCells)
+ {
+ List Signature = new List();
+ Signature.Add(TmpCell.CentroidPosition.X);
+ Signature.Add(TmpCell.CentroidPosition.Y);
+ Signature.Add(TmpCell.CentroidPosition.Z);
+ Signature.Add(TmpCell.GetVolume());
+ Signature.Add(TmpCell.CentroidPosition.DistTo(new cPoint3D(NewWorld.Dimensions.X / 2, NewWorld.Dimensions.Y / 2, NewWorld.Dimensions.Z / 2)));
+
+ cInfoCell InfoCell = new cInfoCell(TmpCell);
+ Signature.Add(InfoCell.GetDistPath());
+
+ Signature.Add(this.ListCellTypes.FindIdxType(TmpCell.Type));
+ ListData.Add(Signature);
+ }
+ WellForDB.AddListSignatures(ListData);
+ SQDB.AddNewWell(WellForDB);
+ }
+ }
+ //MyProgressBar.Close();
+ toolStripProgressBar.Value = 0;
+ if (SQDB != null) SQDB.CloseConnection();
+ // groupBoxForResults.Enabled = true;
+ }
+
+ private void button3DVisualization_Click(object sender, EventArgs e)
+ {
+ FormFor3DVisu WindowFor3D = new FormFor3DVisu(GlobalInfo.CurrentScreen, this);
+ WindowFor3D.Show();
+ }
+
+ private void radioButtonEvolutionCellNumber_MouseClick(object sender, MouseEventArgs e)
+ {
+ if (e.Button == System.Windows.Forms.MouseButtons.Right)
+ {
+
+
+ }
+ }
+
+ private void button2DVisualization_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ public class cListClusteringAlgo : List
+ {
+ public cListClusteringAlgo(cPoint3D WorldDims)
+ {
+ this.Add(new cParamWorldDimensions("WorldDimensions"));
+ this.Add(new cParamGeneral("General"));
+ this.Add(new cParamPlateDesign("PlateDesign"));
+ this.Add(new cParamCellTypes("CellTypes"));
+ this.Add(new cParam3D("3D"));
+ }
+
+ public Panel GetPanel(string Name)
+ {
+ if (Name == null) return null;
+
+ foreach (var item in this)
+ if (item.Name == Name) return item.GetPanel();
+
+ return null;
+ }
+
+ public cParamAlgo GetListParams(string CategoryName)
+ {
+ foreach (cParamAlgo item in this)
+ {
+ if (item.Name == CategoryName) return item;
+ }
+ return null;
+
+ }
+ }
+
+ [Serializable]
+ public class cParamWorldDimensions : cParamAlgo
+ {
+ public cParamWorldDimensions(string Name)
+ : base(Name)
+ {
+ PanelForParamWorldDimensions PanelForOption = new PanelForParamWorldDimensions();
+ this.PanelToDisplay = PanelForOption.panel;
+ }
+ }
+
+
+ [Serializable]
+ public class cParamGeneral : cParamAlgo
+ {
+ public cParamGeneral(string Name)
+ : base(Name)
+ {
+ PanelForParamGeneral PanelForOption = new PanelForParamGeneral();
+ this.PanelToDisplay = PanelForOption.panel;
+ }
+ }
+
+ [Serializable]
+ public class cParamPlateDesign : cParamAlgo
+ {
+ public cParamPlateDesign(string Name)
+ : base(Name)
+ {
+ PanelForParamPlateDesign PanelForOption = new PanelForParamPlateDesign();
+ this.PanelToDisplay = PanelForOption.panel;
+ }
+ }
+
+ [Serializable]
+ public class cParamCellTypes : cParamAlgo
+ {
+ public cParamCellTypes(string Name)
+ : base(Name)
+ {
+ PanelForParamCellTypes PanelForOption = new PanelForParamCellTypes();
+ this.PanelToDisplay = PanelForOption.panel;
+ }
+ }
+
+ [Serializable]
+ public class cParam3D : cParamAlgo
+ {
+ public cParam3D(string Name)
+ : base(Name)
+ {
+ PanelForParams3D PanelForOption = new PanelForParams3D();
+ this.PanelToDisplay = PanelForOption.panel;
+ }
+ }
+
+ private void treeViewForOptions_AfterSelect(object sender, TreeViewEventArgs e)
+ {
+ this.panelForDisplay.Controls.Clear();
+ string TagName = (string)e.Node.Tag;
+
+ if (TagName == "CellPopulations")
+ {
+ //PanelForParamCellPopulations
+ this.panelForDisplay.Controls.Add(MyPanelForParamCellPopulations);
+ }
+ else if (TagName == "CellTypes")
+ {
+ //PanelForParamCellPopulations
+ //MyPanelForParamCellTypes.RefreshDisplay(Parent);
+ this.panelForDisplay.Controls.Add(MyPanelForParamCellTypes);
+ MyPanelForParamCellTypes.RefreshDisplay(this);
+ }
+ else
+ {
+ Panel PanelToDisp = ListClusteringAlgo.GetPanel(TagName);
+ if (PanelToDisp == null) return;
+ this.panelForDisplay.Controls.Add(PanelToDisp);
+ }
+ }
+
+ #region Display
+ void Display3D()
+ {
+ FormFor3DVisu WindowFor3D = new FormFor3DVisu(GlobalInfo.CurrentScreen, this);
+ WindowFor3D.Show();
+ }
+
+ void Display2D()
+ {
+
+ cImage TestImage = new cImage((int)NewWorld.Dimensions.X, (int)NewWorld.Dimensions.Y, 1, 1);
+ TestImage.Name = "2D World";
+ /*for (int IdxChannel = 0; IdxChannel < TestImage.NumChannels; IdxChannel++)
+ for (int Y = 0; Y < TestImage.Height; Y++)
+ for (int X = 0; X < TestImage.Width; X++)
+ {
+ TestImage.Data[IdxChannel].Data[X + Y * TestImage.Width] = X * Y / 10;
+ }
+ */
+ // cImage FilteredImage = new cImage(TestImage.Width, TestImage.Height, TestImage.Depth, TestImage.NumChannels);
+ // ImageAnalysisFiltering.cImageFilterMedian FilterMedian = new ImageAnalysisFiltering.cImageFilterMedian(TestImage, 0, FilteredImage, 0);
+ // FilterMedian.radius = 2;
+ // FilterMedian.Run();
+
+ cImageViewer NewView = new cImageViewer();
+ NewView.SetImage(TestImage);
+
+ //cImageViewer NewView1 = new cImageViewer();
+ //NewView1.SetImage(FilteredImage);
+
+ //NewView.AddNotation(new ObjectForNotations.cString("This is a test", new Point(10, 10), Color.Red, 20));
+
+ foreach (var item in NewWorld.ListCells)
+ {
+ NewView.AddNotation(new ObjectForNotations.cDisk(new Point((int)item.CentroidPosition.X, (int)item.CentroidPosition.Y),
+ item.Type.TypeColor, (int)item.GetVolume()));
+ }
+
+ //for (int Idx = 0; Idx < 120; Idx += 10)
+ // NewView.AddNotation(new ObjectForNotations.cDisk(new Point(Idx * 10, Idx * 10), Color.FromArgb(Idx, Idx, 50), Idx));
+
+ GlobalInfo.DisplayViewer(NewView);
+ }
+
+ private void dToolStripMenuItemDisp3D_Click(object sender, EventArgs e)
+ {
+ Display3D();
+ }
+
+ private void dToolStripMenuItemDisp2D_Click(object sender, EventArgs e)
+ {
+ Display2D();
+ }
+
+ private void dToolStripMenuItemDisplay3D_Click(object sender, EventArgs e)
+ {
+ Display3D();
+ }
+
+ private void dToolStripMenuItemDisplay2D_Click(object sender, EventArgs e)
+ {
+ Display2D();
+ }
+
+ #endregion
+
+ private void runToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ RunSimu();
+ }
+
+ private void newCellTypeToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ CreateNewCellType();
+ }
+
+ public void CreateNewCellType()
+ {
+ FormForNewCellType WindowForNewCellType = new FormForNewCellType(this);
+ if (WindowForNewCellType.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
+
+ cCellType NewCellType = WindowForNewCellType.NewCellType;
+
+ ListCellTypes.Add(NewCellType);
+ MyPanelForParamCellTypes.RefreshDisplay(this);
+ }
+
+ public void EditCellType(cCellType CurrentType)
+ {
+ FormForNewCellType WindowForNewCellType = new FormForNewCellType(this,CurrentType );
+ if (WindowForNewCellType.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
+
+ int IdxCellType = -1;
+ foreach (var item in ListCellTypes)
+ {
+ IdxCellType++;
+ if (item.Name == CurrentType.Name)
+ break;
+ }
+ ListCellTypes[IdxCellType] = WindowForNewCellType.NewCellType;
+
+ //cCellType NewCellType = WindowForNewCellType.NewCellType;
+
+
+ //ListCellTypes.Find(CurrentType) = NewCellType;
+ //ListCellTypes.Add(NewCellType);
+ MyPanelForParamCellTypes.RefreshDisplay(this);
+ }
+
+ private void cellTypesRelationshipsToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ FormForCellTypeRelationships WindowForDisplay = new FormForCellTypeRelationships(this);
+ //GViewer GraphView = new GViewer();
+ //Microsoft.Msagl.Drawing.Graph graph = new Microsoft.Msagl.Drawing.Graph("graph");
+ //GraphView.Size = new System.Drawing.Size(WindowForDisplay.panel.Width, WindowForDisplay.panel.Height);
+ //GraphView.Anchor = (AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right);
+
+
+
+
+ //GraphView.Graph = graph;
+
+
+ //WindowForDisplay.panel.Controls.Add(GraphView);
+ WindowForDisplay.Show();
+
+ /*
+ GraphView.Size = new System.Drawing.Size(PanelForVisualFeedback.Width, PanelForVisualFeedback.Height);
+ GraphView.Anchor = (AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right);
+ PanelForVisualFeedback.Controls.Clear();
+ PanelForVisualFeedback.Controls.Add(GraphView);
+
+ FormForClassificationTree WindowForTree = new FormForClassificationTree();
+ string StringForTree = J48Model.graph().Remove(0, J48Model.graph().IndexOf("{") + 2);
+ WindowForTree.gViewerForTreeClassif.Graph = GlobalInfo.WindowHCSAnalyzer.ComputeAndDisplayGraph(StringForTree.Remove(StringForTree.Length - 3, 3));
+ return WindowForTree;*/
+
+ }
+
+ private void collapseToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ this.treeViewForOptions.CollapseAll();
+ }
+
+ private void expandAllToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ this.treeViewForOptions.ExpandAll();
+ }
+
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/FormForSimuGenerator.resx b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/FormForSimuGenerator.resx
new file mode 100644
index 0000000..f186777
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/FormForSimuGenerator.resx
@@ -0,0 +1,1799 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 667, 17
+
+
+ 261, 17
+
+
+ 370, 17
+
+
+ 559, 17
+
+
+
+
+ AAABAAUAEBAAAAAAIABoBAAAVgAAACAgAAAAACAAqBAAAL4EAAAwMAAAAAAgAKglAABmFQAAQEAAAAAA
+ IAAoQgAADjsAAICAAAAAACAAKAgBADZ9AAAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAA
+ AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wEKChoPAAAAA////wH///8B////Af//
+ /wH///8B////Af///wFDQaM5OjufVTY2mDs+OpoxUkaLRUE+nFs3Npg9Pz/KdystvV9AP6JVPj2iTUxK
+ pUktLokrOTmfM////wH///8BTE7HlU5R0tdAQ86dP0LQh1BMtbFRUs/fQEPOnzo9wXtBRM6tW17Zo0tO
+ u4VNT9HXT1HGoUFE0JkAAAAD////AXFy1VtdXtWHXF/abWNi0Zd/a5+BZ2HBoVVY3JdQUstvWl3bXW1l
+ s5l2cMeTb3DYh05Q1FNkZ9ydTU67H////wH///8B////Af///wH///8BoGMyRZ9jMk98bKlLaVBmA59k
+ NRufYjJRoGMyQf///wH///8B////Af///wH///8B////Af///wH///8B////AZ1iMhWcYTBfm2AwaZxh
+ MWWbYDBpnGEwY55jMhf///8B////Af///wH///8B////ATAwn1c1NqQ/////ATIypHcyM5cfn2Y3GaBm
+ NpOmazq7sXVDm7d6SCEvLmIfOjmpiywtqZcgIXk9////Af///wEvM8ihQEPVc////wE0N9Dba1KEZ5xh
+ MOWbYTD/pWo4/Z9kM/+iZzXrVEipzTU506dnatyDOT3U6RYXOgf///8BOz/OoUpLzLtGRqyHQ0bW7ZVh
+ R/OfYzH5oWY1T695SAmwc0Bdn2Mx/ZxnReNRUKN1TEy/tUBE2uMzM4ED////AUhL1aFmaee1c3bpeWVa
+ vOujZTD/o2Uyqf///wH///8B////AaVoNYl5XInVT1Hg105Q1Y1FRJdb////Af///wFVWN2fZGbkc///
+ /wFzXpzZp2cy/6doM4H///8B////Af///wH///8BZmnmiWFj18teX9DDWVzluf///wH///8Bg4bgL4CD
+ 3yH///8Bo3p9cbp4Sv+4d0qF////Af///wH///8B////AVVYwQWkputLgILsU1NVzQ3///8B////Af//
+ /wH///8B////AbV4Sxu9fVL9vHxSw////wH///8B////AcqMX43VmGptonBBA////wH///8B////Af//
+ /wH///8B////Af///wH///8Bv4BXocCBWP/PkWah2ZtvV7+CWJ3AgVj/voBWs////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AcGFWQvOkGefzJBo+8aIYf/Eh2D/wINcu7p/VRn///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AdKjdhHgpnsvyo9kG////wH///8B////Af//
+ /wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
+ //8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAA////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B2IVLA9iFSwPYhksD////Af//
+ /wH///8BBwgTEQsLHCsAAAAL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkAAAAHAAAACQAAAAUAAAAH////AU0vGg2eZzoNcEoqEXFK
+ KxEWEA4JAAAABQAAAAkyM7tlTUze8yEipIEAAAADAAAABwAAAAkAAAAJAAAABQAAAAMAAAAJAAAABf//
+ /wEAAAAJAAAAA////wH///8B////Af///wEuLW8rS0m3rzw9nps+PaupLy+LSz09qZMaG0MLPz2pqUc4
+ YktOSayrREKipzw7qakuL4RFPj2rpSYnXg0vMbl5MzbW6xISLhE9PaSRR0ausURDrbE8PKNzRUKNY1RS
+ u7UyNJuLFBU3Fz4+rqknKHEb////Af///wH///8B////ATk8x306PcvdREe2pT1B2OkxM7JfPkLX2Scp
+ Zg88QNn3Qj6nmzs90fFNSZqfPUHd/TQ2m0s9Qdr1Hh9LDzU4wbc+Qt//NjijV1RY2qVfYuL5YWXKnUhL
+ vHE6PNT3NjmglUpNxtUuMIdLPUHb+zI0lCn///8B////Af///wH///8BPT+dL3ByzcdpatbnS07e5zg6
+ tl9MUNvfFhY5G0dK3/lWRXxrcG6+yWxrz+VPUuL7NzibSUlM4PUnKGYvQ0bZ9z9CyKlLTtCzHR9UG2Jl
+ 389ER8G9LS+ERVNV5f9tbdfRYmLe8UdJvXFNUOT7Ky5+QQAAAAf///8B////Af///wFQULpDenrc52Zm
+ yslNUN7PQkXBW2dq6ftvbsPBUlTk+2pRfGt6edrvbGe3zU9S4u09P6c9VFfk9UlKt4NTVd3LQUO4MV5h
+ 5/VTU66ldXTQ14OF9P9QUsKBcnXr3Wdnw8NSVN7vPT+pM15h6PtsbdXdTE2yV////wH///8B////Af//
+ /wF2eNZBcnTgYUlMxh9NT8IbXV/MQXh62lNlWa1JomQwQ4lqgGmHdauLaFaXQUNErzdgYun1UFK4QVpc
+ yy////8BXmDPT2xcnGeAa5l9gWuafXxhhU1cWbode37hXU1QzSdCRKsFXF7PT25w1E9QUs8n////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AZ5lMwWgYzJFoGMyTaBjMk2gZTNBVVCrKXR2
+ 4q00NIMH////Af///wGgaToLoGMySaBjMk2gYzJNoWUzP51mKgP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AZ9kMymfYTFZn2ExWZ9i
+ MVmfYzRDoWc5E6RvRgOkcEgDn2Y7FZ9jM0mfYTFZn2ExWZ9iMVmgZTUj////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bomw2A55i
+ MkedYTBjnWEwY51hMGOdYTBhnmIxWZ1iMVudYTBjnWEwY51hMGOdYTBjnmIySaRoOgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BnGY3B5xhMkmaYDBvmmAwb5pgMG+aYDBvmmAwb5pgMG+aYDBvmmAwb5xiMlWgZjYL////Af//
+ /wH///8BAAAAA////wH///8B////Af///wH///8B////Af///wEAAAANAAAALwAAACcAAAAD////Af//
+ /wEAAAAhAAAAMQAAABX///8BnGY6A5xiMyWaYTJXmWAwcZlgMXuZYDF7mWAwc5phMV+bYTMxomY6Bf//
+ /wEAAAAJAAAAJwEBBTsFBQ5BAAABMwAAABkAAAAD////Af///wH///8B////ATAxkjs8PMrnQUHIyQYG
+ DgX///8BAAAAAzc4uKNAQM3nPD20Zf///wH///8Bomk6O6BnNqOkajnlqm49+7B0Qvu4e0jrxYZRscmK
+ Vk+jb0UDAAAACTc1cmVMSsPTQUHT9zo71fszNMntKSugrw4PKi3///8B////Af///wH///8BMTSdQSsv
+ 0f8+QdjhCAgSBf///wEAAAADLTDAtTM32f89QcVxoW5ACZ1kNJuaYDD9mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+cYTH/pmo4/61xP7FBNmZLOjvS9Ssv0f8+Qtrhb3Lmy21x6PUwNNX/NTm7sQAAAAn///8B////Af//
+ /wE0Np5BMjXV/0RH2+EICBEF////AQAAAAMyNcS1Oj7d/0VGxHOfZTOtnGEw/5xhMP+cYTD/nmMx/6tu
+ O/m3eUT5qm06/51iMP+cYTD/nWIw/4VbXvVER9z/OTzQtz0/oQcAAAADPT+dSTs/2/1ESN71ICFTEf//
+ /wH///8B////ATY4oEE5PNj/SEvZ5QAAAS8AAAAtAAAALTU4vL9BReD/dlqB055iMf+eYjD/nmIw/59k
+ MtekajlPqnVEEbR8SxPKilRZqGs5555iMf+eYjD/nmIx/5Z8krk7PZ1DAAAAKRAQI0dPTZiXPD/Z/0NH
+ 3vMzM4EL////Af///wH///8BOTugQUBD3P9QUuL7VFTO4VRTzuFUU87hSkzY9UpM3f+aZEb/oGMx/6Bj
+ Mf+hZDLjo2o6F////wH///8B////Af///wGmazsxoWQy+aBjMf+gYzH/mGAz1VtYmpdhX8rVXl7f+UlM
+ 4P9ARN3/QUXRmf///wH///8B////Af///wE7PaJBSErg/2Vo7P10d+rvdHfq73R36u9naun7YlSz/6Jk
+ MP+iZDH/omQx/6NnNXX///8B////Af///wH///8B////Af///wGjZjSnpGYy/6RnNveKY3L/T0/e/01Q
+ 5v9VWOr/UVTi2URHx30iI1sN////Af///wH///8B////AT0/pEFOUeT/W17k4RkZQAc1NZIDIyNcBUhL
+ 0LV5XIz/pGUx/6RlMf+kZTH/o2s6Lf///wH///8B////Af///wH///8B////AahsOjOtcD1PTkmkW09S
+ 5f9PUuHvUFLVcUFCrCUsLGA7S0mEg0E/eVsAAAAD////Af///wH///8BQEGlQVVY6P9hZObhBwcRBf//
+ /wEAAAADTlDStYhidv+mZjL/pmYy/6ZnM/2lcEEL////Af///wH///8B////Af///wH///8B////Af//
+ /wFKTMVNWFvr/1lb2NsZGjpXFBQoTVlZwr9YW+r/XF7ir////wH///8B////Af///wFERqs/X2Lu/2ls
+ 6eEHBxQF////AQAAAANVV9ezkGdz/6hoMv+oaDL/qGgz96V0RQX///8B////Af///wH///8B////Af//
+ /wH///8B////AURGrwuDhu7PeHvz/2hp7v10c+79ZGbw/1te6fdQUs07////Af///wH///8B////AUxO
+ uyGPkeiXgIPggf///wH///8B////AXF02WWuf2/XuHVH/7h1R/+2dUb7o3ZEBf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AVVYwRGkpeZ9pafvsYuN7rdydOmTU1XNM////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Abl5TIe8ek7/vHpO/7x6Tv+pc0Yb////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bt3lMV718Uf+9fFH/vXxR/7Z5
+ TVH///8B////Af///wH///8B////Af///wHMlGU12qd2O6x4Swv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGtc0cTvX1T8759
+ VP++fVT/u31Su6BtQgP///8B////Af///wH///8BpHVFA71+U8fQj2P/2Zpt9dKWaLeicEEF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wG7fVOVv4BX/7+AV//AgVf/zIxhlbaBVAv///8B////Aat0SAe7flONv4BX/7+AV/+/gFf/vH5Uq///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbJ4TRPChFrfwYNa/8CCWv/HiF//2p5x6d+jdbHTlGirwYRa48CCWv/Agln/wIJZ/7+C
+ WPe2e1Av////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AcGFWSfNj2bdxohh/8GEXf/BhF3/woVd/8KEXf/BhF3/wYRd/8GE
+ Xf/Ag1z5un9VXf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AceNYBHeoneN3KJ369SYcP/LjWb/yItk/8iL
+ ZP/HimP9wIVcv7d9VDn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wG5h1oJ1qd6O+Ot
+ gVvcoHVh0ZVqTbiAVR3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AdiFSwPYhUsD2IVLA9iFSwPhhFED////Af///wH///8B////AQIC
+ BgkMDR87CgoYPQAAABf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bq182B7NvPgm2c0AJqGg7C6hoOwu6e1AH////Af//
+ /wH///8B////ASkrfh9KSNfxOznU8R8flJEBAQML////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAMAAAAZAAACMQAAACkAAAAlAAAALQAAAA8AAAApAAAAIQAAAAMAAAAXIRQKOWJAJR9YOSMhJxkPPSoa
+ DjsiFw4pAAAALwAAABMAAAAjAAAAKTAzjB0+P8t7TE7g4Swt2vkgIWI1AAAAAwAAACEAAAAxAAAAMQAA
+ ADEAAAAxAAAAFQAAAAsAAAAnAQEENQAAACcAAAAJAAAABwAAACsAAAAh////Af///wH///8B////Af//
+ /wH///8B////AQkJFxFOTLGxVFLW605PxNc5OazHSUjF3SwsbSdEQ8HXQ0O8rQAAAAM2N6R1TErL5Uc7
+ eVtNRpOPVlLR6VRUzOM1NaLDS0nL4Tg4mEM/P7azSEfC1SEhUhEAAAAFLS+xoTQ34/8xNKuNAAAABz4+
+ tatUU8rjUVDJ409OyeNRT8zjODmmbzo4e2VcWcjXZGPc7T9AvtUfIWVXICJZGUZFxNtCQ7ejAwEBA///
+ /wH///8B////Af///wH///8B////ATY3mz82Odn/NDfC0VpcxJc7Ptj9QkXY4ScnXhsyNs/1Q0fVxwAA
+ AAMxNLOHPkLj/0U9hXU3Oc/1NTjJ61lVq5NER9XxP0Pf+y4veyUwM8PNQ0fd8SYmXRMMDR4VNTjI5zc7
+ 3P9DRtLZCgsYE0NGzaNna+7/ZWnb92pu2NNobOHLNjmodz0/0O0yNc3tTVC9l1xg4vVCRczTJyhoIzQ3
+ 0vlDRs+5AwICA////wH///8B////Af///wH///8B////AT0+qSdnaur3UlTO3zc3jZM3OsnvS07c2SYm
+ XRs6PdP1SUzXxwAAAAM2OLaHR0ro/1FEh29ZW9rjZGbd8UI9jqs4ObTbSUzi+ScnYB02OcfNS07h8SUl
+ WRMzNZBhPkDe/zs+xedLTuj9LS6BTT5AqRVjZuTVUFTk+y4wjIEAAAEPNTedSz1A3v9TUsfXV1OopVZU
+ scFQTqqxKCtsLzs/1/lKTdS9BgYMA////wH///8B////Af///wH///8B////AQAAAQc2N39lc3XDvXt9
+ 3+VgYuP/UVTf2yYmXRlFSNj1UlXV0wAAABc4OrKTT1Lq/1hGgW9OOVFpbGmsw3x81eFrbeT7UFPl+yws
+ cR89P8rNUlXk8RsbQRs/Qb23RUjd+z0/q1dMT+b9REe7oQAAABMlJ2k5bG/k6VJW4fknKXFrNTecU01Q
+ 5v9nat3laWzXv19h2+1MT+L3MjWGMUZJ3flTV9XRAAECIQAAABH///8B////Af///wH///8B////ATc5
+ ig9qaNHfVVXF0VFPi5FPUdv3UVPczSsraRdMT931a27r+URElJtYWMnXUFPo/2dPe2doYr7FY2HP6VVK
+ d6VWVcrpUVTj8ystaw9DRs7NWVzm8SQlXDtKTNv3TE7Xxzg5iAdIS9fXWFvg6zg4f3dcWauvXly9z4OE
+ 9f9VWN/zMjOFSWJk6e9YWtjjTkyMlVhY2/FIS9XJMDF6G01Q4PljZu37XFqzuUJCl2kAAAAD////Af//
+ /wH///8B////Af///wFtb9V3m53s7YiJ8fddX+fpR0rKWTg5jQ9madzjXmDWy5CR6+N1d+73Uk/Gu5ph
+ PENxXJJ5nJzl6Y2O7/lnaejzSUvMiQcHDgNKTNLNYWPo8URFrHNzdefvSkzIb////wFNT8qDd3rq70lL
+ vceDhObzhojn84eI5/OAg+rxRke0R2Nmz0+dn+zjgoPw91JU389GSL8vPT6eEWhr3+lcXtbZj5Hv9VVX
+ 1aX///8B////Af///wH///8B////Af///wH///8BOjmpDz9Arx0/QqgN////Af///wE5PZsLOj2cBzk8
+ qAtAQq0bmmM6G6FjMUWhZDFFmGA6SYVZVVePXkhNoGs8DwAAAANPUtXNaGrq7ywtbxc3O5gLQEKjA///
+ /wE9QaAFNzuZC45eSyeXXzlJl185SZdfOUmYYTtHoGY5M6l2QAc5O6YLP0GuGUFCowX///8B////ATk8
+ mgs8P50HPT6tF0JDpgn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BnmM0CaBjMkWgZDJLoGQyS6BkMkugZDJLoGc2MX9iQwNlaNrJeXzl7TQ0
+ gw3///8B////Af///wH///8Bom0/B6BkM0GgZDJLoGQyS6BkMkugZDJLoWYzPZxkKgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaBlMzGfYjFTn2IxU59iMVOfYjFToGMyUaNn
+ OCVAPZIPNjeXEf///wH///8B////Af///wGpckMFoGY2NZ9iMVOfYjFTn2IxU59iMVOfYjFToWY1Jf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaBlNg2fYjNRn2ExW59h
+ MVufYTFbn2ExW59iMlmfZTY5omg7E6VtRgWecUcDpnBIBZ9nPhWfYzVBn2EyWZ9hMVufYTFbn2ExW59h
+ MVufYzNPoms8Cf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGeZDQjnWExX51hMGGdYTBhnWEwYZ1hMGGdYTBhnWIwX55jMlWeYzJPnmMyVZ1iMF+dYTBhnWEwYZ1h
+ MGGdYTBhnWEwYZ1hMF+gZTYl////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BnWM0L5xhMGWcYTBpnGEwaZxhMGmcYTBpnGEwaZxhMGmcYTBpnGEwaZxh
+ MGmcYTBpnGEwaZxhMGmcYTBpnGEwZ55kMzunazID////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wEAAAADAAAAA////wH///8B////AZ1jNCmaYDFlmmAwcZpgMHGaYDBxmmAwcZpf
+ MHGaYDBxmmAwcZpgMHGaYDBxml8wcZpgMHGaYDFtnWQ1O6JlOAX///8B////Af///wH///8BAAAAAwAA
+ AAMAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAMAAAAXAAAAHwAA
+ AB0AAAAL////Af///wH///8B////AQAAABEAAAAfAAAAHwAAABMAAAAD////Af///wGfZTgRnGEzRZpg
+ MW2ZYDB3mWAweZlgMHmZYDB5mWAweZlgMHmZYDB3mmAwc5thM1WeZDcdrV4xA////wH///8BAAAABQAA
+ ABEAAAAhAAAALQAAADEAAAArAAAAIQAAAA8AAAAD////Af///wH///8B////Af///wH///8B////AQEB
+ AwktLGpnMjBthTMxcX8fH1Ar////Af///wH///8BAAAAAygnX0cyMW6DMjBtgyopYU8AAAAF////Af//
+ /wH///8B////AaJmPBGiaztXqG4+ma5zQrW1eEa/unxKubt+TKO1eUhro20+IZtjPQP///8B////Af//
+ /wEAAAAJAAAAKxQULFlAPXiNTEmcpUhGpK09O5ilKChshQoKGlEAAAAlAAAAB////wH///8B////Af//
+ /wH///8B////AQUFDQk1N8XZOTna/0RF5v8yM6JZ////Af///wH///8BAAAAAzEzs5E4Odr/Pz/g/z5A
+ x6UAAAAF////Af///wGjbD8NoWg5d6BmNtehZjb9oWY2/6FmNf+iZzb/pmo5/61xP/+9fkr/yIlU6cyN
+ V5W2fU0h////AQAAAAUDAwgtTEqdo1lW2/U9Pdr/LS/U/ygr0v8pLNP/LjDV/zEzx+0lJ3yNAQECIQAA
+ AAP///8B////Af///wH///8B////AQUFDQkvMsHZKi7Q/z9D5f8zNaJZ////Af///wH///8BAAAAAy4x
+ sZEqLtD/Njrc/z5ByKUAAAAF////AaFpOkOdYzPdmmAw/5pgMP+aYDD/ml8v/5pfL/+aYDD/ml8v/5pg
+ MP+aYDD/nWMy/6drOf+1d0TvsndGYwcEAxM8PKCbOzzZ/ykt0P8sMNP/SEzo/3J27/+Hi/L/U1fk/ysv
+ 0f80ONb9Jyl9cQAAAAn///8B////Af///wH///8B////AQUFDQkyNcPZLjLT/0RH5/81N6JZ////Af//
+ /wH///8BAAAAAzE0s5EuMtP/Oz7f/0FEyaUFBAIFomk5XZxiMfmbYC//m2Av/5tgMP+bYC//m2Ew/5xh
+ MP+cYjH/nGIx/5thMP+bYC//m2Av/5tgMP+cYTD/o2c2/YhbQpk4O9D1LjLT/zA01P82Ocm5Pj+5RTs8
+ sC1JS8JReX3k0UNH5P81Odn/REfS1QgIFBP///8B////Af///wH///8B////AQUFDQk2OcXZMzbV/0lM
+ 6v83OKNZ////Af///wH///8BAAAAAzQ2tZEzNtX/QEPh/0VHyqWcZjdJnmMx+ZxhMP+cYTD/nGEw/5xh
+ MP+cYTD/oGUz/65xPfm+f0rxxYVP+bd5RP+jZzX/nGEw/5xhMP+cYTD/nWEw/51jNP9gVLP/S0/i/zxA
+ 1N09Pp4P////AQAAAAMAAAAJJSZqRTo91/01ONf/TFDk9SYnZB3///8B////Af///wH///8B////AQUF
+ DQk5PMfZODvY/01Q6/8wMoxnAAAAGwAAABsAAAAbAAAAHTM2q5k4O9j/REjj/1FOvrefZDPlnmIw/55i
+ MP+eYjD/nmIw/55iMf+gZjXNp248V6p1Qx2pdUcRtn1MIc+PWWO7fEjdomY0/55iMP+eYjD/nmIw/55i
+ MP+hbk39iovfv0tNx3UAAAANAAAAGwAAACsAAAFBNDNzgz9B2v04PNn/Sk3j9TMzghX///8B////Af//
+ /wH///8B////AQUFDQk8QMjZPEDa/1FV7f83OIijKilWeSopVnkqKVZ5KilWeTk7pb88QNr/SEzm/4Fg
+ gfufYzD/n2Mw/59jMP+fYzD/n2Mx/6JnNpmhckMJ////Af///wH///8B////Af///wGqckIVqGs6x6Bj
+ Mf+fYzD/n2Mw/59jMP+fYzH/lF8zaQAAAC8CAgdJKytQdWJem6VwbMjTYGDj+zxA2v89Qdv/REfVyTEx
+ eAP///8B////Af///wH///8B////AQUFDQlAQ8rZQUTd/0xP5v9ZWuf/Wlrn/1pa5/9aWuf/Wlrn/1ZX
+ 5f9BRN3/UVHZ/51lQP+gYzH/oGQw/6BkMf+gZDH/omc1wZ9wQwX///8B////Af///wH///8B////Af//
+ /wH///8BpWs8H6JlM/GgZDH/oGQx/6BkMf+gZDH/lF8222dipa1zcNnramjp/01P4/9BRd3/QUXd/0JG
+ 3v9BRdn3QUS/R////wH///8B////Af///wH///8B////AQUFDQlERszZRknf/11g7P96ffL/en3y/3p9
+ 8v96ffL/en3y/3l88v9PUuT/aFaq/6JkMP+hZDD/oWQw/6FkMf+iZDH/o2s6R////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaNnNpGhZDH/omQx/6NlMv+maDX/nWhN/1hV2v9GSeD/SEvh/01Q
+ 5v9UV+3/VFfr/UpN2MtDRb1FBgYTA////wH///8B////Af///wH///8B////AQUFDQlHSs/ZS07i/2Fk
+ 8/9YWsmdY2bVa2Nm1mtjZtZrY2XUbVRXzr9LTuL/gl53/6NkMP+jZDD/o2Qw/6NkMP+kZjPlonJACf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRsOzmoaTX7qm0526RpOZlpWqfdTk/f/0pN
+ 4v9QU+j/Wl3r81td5MFPUtJ9MjOISwYGDy8AAAApAAAAFwAAAAP///8B////Af///wH///8B////AQUF
+ DQlKTdDZT1Ll/2Rn9P9AQqlZ////Af///wH///8BAAAAA0RHvpFPUuX/k2NZ/6RlMf+kZTH/pGUx/6Rl
+ Mf+laDS3////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNwQgWpcUEvpXJFBRob
+ QxNOUNrzUFPl/1RX6P1ER72LOjuYGwsLGAUAAAAPNzd4Z1tYoKdWVJafRkWKYQAAAAP///8B////Af//
+ /wH///8B////AQUFDQlOUNLZVFfn/2ls9f9CQ6pZ////Af///wH///8BAAAAA0dJv5FUV+b/n2ZC/6Zm
+ Mv+lZjH/pmYy/6ZmMv+maTaR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ASwtbg9RVN7zVVjp/2Nm6vcTEzBZAAAANQAAADMCAwdFUVLI01ha6v9fYvD/V1rWl///
+ /wH///8B////Af///wH///8B////AQUFDQlRU9TZWFvp/21w9/9ERatZ////Af///wH///8BAAAAA0pM
+ wJFbXOT/o2c8/6ZnMv+mZzH/pmcy/6ZnMf+naTaB////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////ATAxcwNdX9+7Zmny/11g7/9aW9nrXVyzu2torrOAfNHbZ2jt/1da
+ 6f9aXev/Sky+Rf///wH///8B////Af///wH///8B////AQgIEwdWWNfXZGfx/3V4+f9ISbJV////Af//
+ /wH///8BAAAAA09Rx41kZef/pWk8/6hoMv+oaDL/qGgy/6hoMv+oazd3////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFPUMItnZ/x65OW+f9oa/L/YGPv/2Nl
+ 8P9hY+//YWTw/15h7f9TVdOfODiMA////wH///8B////Af///wH///8B////Af///wFoa9W3m57q35CS
+ 6t9OUMBB////Af///wH///8B////AVVXzHGVluffsnVL/bZzRP+2c0T/tnNE/7ZzRP+yc0R7////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BVVjBJ5uc
+ 4qWys+/pqqz1+ZeZ9fuDhvD1bG7oyVNWz2tDRKQH////Af///wH///8B////Af///wH///8B////Af//
+ /wEwOYsDKTqAAy46ggP///8B////Af///wH///8B////Af///wE4PHoFuHhM47t5Tf+7eU3/u3lN/7t5
+ Tf+1eEuL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEwMZkHPj+vGUFDrR09P6cNNzeIA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BuXlMvbx6
+ Tv+8ek7/vHpO/7x6Tv+4eUyv////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bt3lNk718Uf+9fFH/vXxR/718Uf+6e0/fp3FDB////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Aax2Rwmxfk4T////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8Bs3dLTb59Uv+9fVL/vX1S/719Uv+9fFL9sXdLP////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AbZ5TV/cn3Dz5Kl5yeStfI/WonJRu4hZGf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqXBEDbx8UuW+flT/vn5U/75+VP++flT/un1Ru6Bt
+ QgX///8B////Af///wH///8B////Af///wH///8BpHVFBbt8Uce/f1X/xYRZ/8+MYP/bmm3/zpNl46Jw
+ Qgn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Abh7UIO/gFf/v4BX/7+A
+ V/+/gFf/wIFY/8OFWpWicUIH////Af///wH///8B////Af///wGkcEMDuHxQh7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/un1Sm////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Aat0
+ SRO9gFbhwIFY/8CBWP/AgVj/wIFY/82MYv/eoHLH1qR0UbJ/UBmndEYLqnNGE7h9UUe8f1W7wIFY/8CB
+ WP/AgVj/wIFY/8CBWP+/gVf7sHdKLf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wG2e1FFxYdd+cKEW//Ag1r/wINa/8GDWv/Ki2H/3Z5y/+SnevffoHTt0pJn88WG
+ Xf/Bg1r/wINa/8CDWv/Ag1r/wINa/8CDWv+4fVKT////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BwYVZVc2PZvfFh2D/wYRc/8GEXP/BhFz/wYRc/8KF
+ Xf/DhV3/wYRd/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/7uAV72pc0QJ////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AcSIXUHbnHLb15hv/8iK
+ Yv/Dhl//woVe/8GFXv/ChV7/wYVe/8GFXv/ChV7/woVe/8KFXv/BhV39un9Wn6t1SQv///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGueUwN2qV4c+WugtXkq4D92p51/9GTa//Mj2j/y45n/8uOZ//Nj2j/yItk+cCFXLuzfFBD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaJtQAXElGcv2qx/Y+OvgoXhpnuT255zjdWXbX3DiV9VsXtQHaBu
+ RAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAAAAP//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//AAAAAAAA//8AAAAAAAD//ygA
+ AABAAAAAgAAAAAEAIAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAD///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcAAAALAAAACQAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bx3Q+A9iFSwPYhUsD2IVLA9iF
+ SwPYhUsD2IZLA////wH///8B////Af///wH///8B////AQAAAAUJCRgzDxAmVQkJFkcAAAAjAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Aa9q
+ OweydkAJtHhACbJ2QAmuckAJrnJACbV2QwnjmYYD////Af///wH///8B////Af///wEHCBMHNzW7uUlE
+ 3PMsKsnpICGIkwICBRv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAAAwAAAAsAAAATAAAADwAAAAkAAAAPAAAADwAAAAcAAAALAAAAEQAA
+ AAv///8BAAAAAxMLBQ9UNB0dgFQwFbJxQQ90Sy0XTjQdH1E0Hh9wSi0VFxMQDwAAABEAAAAJAAAABwAA
+ ABEAAAANHB5KBzAyxMttbuXvU1Tr/yQl2PskJHNdAAAABf///wEAAAALAAAAEQAAABEAAAARAAAAEQAA
+ ABEAAAAPAAAABf///wEAAAAHAAAAEQAAABMAAAANAAAABf///wEAAAADAAAADwAAAA8AAAAF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAR0PECxTIiFRbxUWNV0DAwg/EhIvXRQU
+ NFkKChoXFBQyPxESL2EQEi07AAAAAwYGDQ0WFTBVIRsxaUUuLzVgPSkjJRkZTyolSXcpIj9xIBURTRIS
+ LFUSEzFfEhMtKQ0OISMSEzBfFBQzUwcHEQ1ERqMPNjiWIS8yy90wM+b/LjCztwEBAg8AAAAFEhIvOxES
+ LmEQEi1jEBItYxASLWMQEi1jEhMxXQwNIBsAAAATAwQLPRYXPWUkI1NzFBQyWQEBAikAAAAHBwcRDxMU
+ MlMSEzFdDg4iH////wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAk7Oo+DZF/f91hW
+ 6v9dXt/7NTiq0UxL2vtOTdT3MjJ7Hz09u7NWU+P9QULAsQAAAAMpK2kbQ0PK7VRT4/1FPpF3QDRWW2Fc
+ 0eVaV+f/X1/n/T9At91DQ8nxU1Hg/T4+qmE3OKVpT03b/UxM0uklJV0X////AQkKGBUwMrrPLzLc/z1B
+ 2vUaG0MvAAAABT0+uatZVt/9Xlzg/VtY3/1YVt/9WFbf/VRS4P0yNJFVLSxpX2dizd1kYOn/cW/u/0lL
+ 2PktL56zDAweJScqbyFJSNP1U1Lh/TIzkU3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEcHkYROjzL6TE01/82OcTVXF7Op1RY3/c1Odz/P0LR2xERJg0xM7i1Oz/i/zw/xbUAAAADKixtGy4y
+ xO9DR+j/QzyNez89s7cyNtf/MjXI8VdVvaVhY9jlMjbY/0JF4PsyM4UxNDeoazA01/9FSNvrJiddFwAA
+ AAMmJ2dFNDfP+TU52/9GSuv/MDGOewAAAAc6PcGdYGTs/2xw6/90d+P7cnbl+XF15/dZXeL1MTOMX0JD
+ yd8zNtj/NjrL41lczLdsb+n7Sk7n/zY4pHUoKm4jLjLL+UZK5/8xM5JP////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BNjd/DTs+0PFMUO7/LjCKnwUFDkMwM6axPkLi/0VHz80GBg8JNTi7tUNH
+ 5v8/Qse1AAAAAyosbRs0N8fvSk7s/0lAjn0+Pry/SU3q/z49stMuIB9nNi9jiTY62f9KTeH5KytuJzc6
+ qWs3O9v/Sk3d6yYnXhcAAAALNzmmmzk93P86Pc39RUnn/0BCxMkICBIVQEKpHV1g3tlfY+//Oz7I7SQm
+ X2UqLGcjP0CXGTI1kFc3Otb9PEDY/R0fVW8KCyJNMDKRqTM1mbMrLXxrJSdnJTQ3zvlNUOv/MzWWUf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFOT8iNmpzy+3h56P1cXdTnSEnG50NG
+ 5P9JS9PPBgYRCTk8vrVJTen/Q0bGtwAAAAUpK2sbOTvK71BT7/9OQ45/W02QaYqM6vWGiO3/Y2PZ8VJQ
+ veE8P9v/UFPj9yoqZyU5O6prPkHe/09S3+smJ1wZERIsIT9ByeVBROH/PT+xpz9C2vtSVeb5JidmRQAA
+ AAM/QrMxaWzo6V1h7v89QMThFRY3RwAAAA04OqlvPUDc/2pq7f9+fOXzfnvl83585fNtauDzUlLGwykr
+ byU5PdH5VVnw/zU2mFkAAAAD////Af///wH///8B////Af///wH///8B////Af///wEAAAAFCAgSJygq
+ bXlZW7Sren3V1YSF5vdSVej/TVDUzQYGEAk8Pr+1Wl7u/0dKw8cAAAAdGhtEMT5B0PNWWfD/UkWNg2c9
+ G0M7LEZ/UUyUtXV0xtGEhd/zW17l/1VY5vkvL3kpPD2sa0RH4f9UV+DrISFPHTEygmNER939R0rc+Ts8
+ nCtBRM/XWFvx/zk8oY8AAAAXAAAAIS8xf11zd+r5XmLu/zw/tssLCxo3ODulY0RH4P9gZOv9VFbAtVZZ
+ xqtSVczfSk3l/0ZJz7stL3cjP0LU+WVo9/8yNZGFAAAAJQAAABkAAAAD////Af///wH///8B////Af//
+ /wH///8BABcXA1dWt599edztPT6gsx4eQWdHSLPJT1Lq/01Q0sMFBQ0FQELBtWFk8f9iZeD1KSpqgzc3
+ cYlLTd39Vlnu/1xLi3tiUo2De3bR61dUut06LDyJSEF7s0pN5P9UV+T1MTR8FT1ArGtKTuX/WVzh6xgX
+ OydERry7S07m/0hLzsE6On8FQkTBiVVY7v9RVNPdICBLU0VCgpNFQoGVT06ry4aI9P9gY+7/P0GyuS4v
+ ejdUV+T1Y2b0/zU2ip8nJ1B1WVjR5UpN5P9CRb57Li93IURH1/lrb/v/TE7H31FOjJ0+PYZ1AAAAB///
+ /wH///8B////Af///wH///8B////Af///wFGSMFplZf0/YaI7/+Jhu35e3ry/09S5/9HScZ/AgIFA0dJ
+ x7F4e/X/YmTf+5CQ8v2RjvD9WVzs/01O1vF+V15Td1RpWXl75fWXmfP/g4Hr+4uI8v1TVur/SkzSxSgr
+ WAVAQq1rUVTo/15h4usjJVk3XF7c82hr7/9ERrxv////AT9BpTdcX+b9dnnx/Tw+oq17e/D/kpL2/5OS
+ 9f+Rkvb/lZj3/2dq5/cyM3whWVzPg6ut9/2Ehe/9h4Xu+15f7P9IS9TXQEKnFTY4ix1XWt73bnHw/3d5
+ 6/+Ojvb/WFrV0xsdQQv///8B////Af///wH///8B////Af///wH///8BQECgA1NWxFWHid+xgYPixWNm
+ 4LVKTMhvQkOqB////wFNUMJraWzWo0hKumFoatGFhIbhw1da2K1tVYBXpGQwP6RlLz92V3RngHrEt4yK
+ 1tFwbdLNV1K9n0RFqh3///8BQkOva1da7P9jZuTrOjyWS2Bj1KNeYdGfQkOoHf///wE7O5EDVVjIlWVo
+ 1qFHSLOLbWjBtXNtwbdzbcG3c23Bt3Rvw7VjYMKnZFKCEVdOkAVWV8hhi43js21w4rtPUtOBQUSuGf//
+ /wFCRKsPWl3OnV1gz51VV8B5foDiv1FS0ZFARaMH////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BOjOVAz09lAU6OpID////Af///wH///8B////Af///wH///8B////ATo9lAU/QpQDoGU0H6Fj
+ MUWhZDFFoWQxRaNkL0WhYzFFoWMxRaNmMjumcUMJ////AURGsWtdYO7/aGrm6ycnYRf///8B////Af//
+ /wH///8B////Af///wH///8BpWc3GaNlL0OjZC5Fo2QuRaNkLkWkZS5FpGUwQ6JnNTmncz8J////ATY6
+ hQM9PpAD////Af///wH///8B////Af///wH///8B////ATo8lAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZ1jNA2gZDJFoWQyS6FkMkuhZDJLoWQyS6FkMkugZDJJoWo6I////wFLTb1lio32/3d6
+ 6OkyMn4T////Af///wH///8B////Af///wH///8BpHQ9BaBkNTmhZDJLoWQyS6FkMkuhZDJLoWQyS6Fk
+ MkuiZzQ7nGQpBf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGobywDoWQ0NZ9jMVGfYzFRn2MxUZ9jMVGfYzFRn2MxUZ9l
+ NEelbDwTSEqzJ1VWw2tQUr5dQECiA////wH///8B////Af///wH///8BsH1OA59mOSWfYzJPn2MxUZ9j
+ MVGfYzFRn2MxUZ9jMVGfYzFPpGg2Jf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNrMxefYjJRoGMyVaBj
+ MlWgYzJVoGMyVaBjMlWgYzJVoGQ0SaJtPxethGUD////Af///wH///8B////Af///wH///8Bn3VUA6Jp
+ OSOfZDNRoGMyVaBjMlWgYzJVoGMyVaBjMlWgYzJVn2IzTaRwOA3///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGnZjQDnmM2NZ5gMVufYDFbn2AxW59gMVufYDFbn2AxW59hMVufYzNVn2Y3NaRpPBWlbUcHonJFBaJx
+ TAWlb0YHn2hAF59lODufYTJZn2AxW59gMVufYDFbn2AxW59gMVufYDFbnmExW6BnNy////8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaJsNQ2eYjJNnWEwYZ1hMGGdYTBhnWEwYZ1hMGGdYTBhnWEwYZ1h
+ MGGeYjFbn2MyUZ9lM0meYzNLn2MyUZ1iMV2dYTBhnWEwYZ1hMGGdYTBhnWEwYZ1hMGGdYTBhnWEwYZ5j
+ M02jaDoN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BoGU6F55hMlWcYTBlnWEwZZ1h
+ MGWdYTBlnWEwZZ1hMGWdYTBlnWEwZZ1hMGWdYTBnnWEwZ51hMGWdYTBlnWEwZZ1hMGWdYTBlnWEwZZ1h
+ MGWdYTBlnWEwZZ1hMV2gZjcb////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGcZjcZnGEyWZpgMGubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5xhMmGfZjYn////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAMAAAADAAAAA////wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAMAAAAD////Af///wH///8B////AaFmNxOcYjJNmWAvb5pgMHGaYDBzmmAwc5pgMHOaYDBzmmAwc5pg
+ MHOaYDBzmmAwc5pgMHOaYDBzmmAwc5pgMHOaYDBzmmAwcZxhMmGeZjgjqFU2A////wH///8B////Af//
+ /wH///8BAAAAAwAAAAMAAAAFAAAAAwAAAAMAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAsAAAAVAAAAFwAAABUAAAAPAAAAA////wH///8B////Af//
+ /wH///8BAAAACQAAABUAAAAXAAAAFQAAAA8AAAAD////Af///wH///8BnWY6B51jNi2bYTJdmmAxc5lg
+ MHeZYDB3mWAwd5lgMHeZYDB3mWAwd5lgMHeZYDB3mWAwd5lgMHeZYDB1m2AyaZxiNUOhZjoR////Af//
+ /wH///8B////AQAAAAMAAAAJAAAAEwAAAB0AAAAjAAAAJwAAACUAAAAfAAAAFQAAAAsAAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAUAAAAhAAAAQwAAAEsAAABHAAAALQAA
+ AAn///8B////Af///wH///8BAAAAAwAAAB8AAABDAAAASwAAAEkAAAAzAAAAC////wH///8B////Af//
+ /wH///8Bn2k7CZ5iNyebYzRLmmEyY5hfMW+YXzJ5mWAxgZlhMoOYXzF9mF8xc5lgMWuaYTNXnWU1N5xl
+ OROndDMD////Af///wH///8B////AQAAAAcAAAAZAAAANQAAAEcAAAJPBAQLWQkKGmEFBg5bAQEDUQAA
+ AEkAAAA3AAAAHQAAAAn///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFMzSLY1FO
+ wM1VUcDPVVHBzUFAqZcEBAsJ////Af///wH///8B////AQAAAAUuLoJVUk/AzVVRwM9VUcDPREOsowMD
+ BQ3///8B////Af///wH///8B////Af///wGjbj8np24+c6xyQLGvc0LjtHdG87p8Sfm/gU35xYZS98mL
+ VuvQkFvH0pNeh8CGVEGhbkAH////Af///wH///8B////AQAAAAcAAAAjBQUOSzw6do1jXbbDYl3R6VtX
+ 2vNTUdz3TErY9UZFzus8PLLJKClxjwcHEU8AAAAnAAAACf///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABTEzoX0oK9L/KizS/zY53/87PcfDCAgSCf///wH///8B////Af///wEAAAAFLjCYayks
+ 0f8qLNL/NDfd/zw+zdUKCg4N////Af///wH///8BpXFFA6JrPTehaDmzn2U0855kM/+eYzP/nWMy/51j
+ Mv+eYzL/nmQz/6BmNf+jaDf/qm48/7l7SP/KilT7zo9Yz8CEUmejb0UH////AQAAAAMAAAAbFhc2WWBc
+ ws9aV+T9NDbX/ycq0P8lKdD/JSjQ/yQoz/8lKM//JyvR/y4x1P0xM7fbGRpJZQAAAB0AAAAD////Af//
+ /wH///8B////Af///wH///8B////AQAAAAUyNaJ9KS3Q/ykt0P87P+L/PUDIwwgIEgn///8B////Af//
+ /wH///8BAAAABS8ymGsqLtD/KS3Q/zk94P8/Q8/VCgoODf///wH///8BpG1AD6BoOJOcYjH5mmAv/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+bYTD/n2Qz/6hsOv+4eUb/un1Kvalz
+ RCcAAAAJEBApP05Nxts4Otn/KS3P/ykt0P8vM9b/Sk7p/3J28v+Dh/L/aGvr/zU52v8pLdD/LjLV/zQ4
+ wuUSEzJDAAAAC////wH///8B////Af///wH///8B////Af///wEAAAAFNDaifS0x0v8tMdL/P0Pk/0BD
+ ycMICBIJ////Af///wH///8B////AQAAAAUxM5prLTHS/yww0v89QeL/QkXP1QoKDg3///8Bo29AH55l
+ NcubYTD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/nGIx/6RoN/+scD7lhlgzSTg5nps2Odf/LTHR/y0x0f8uMtP/Oz7T5UlM0aVSVc+NY2XUo4yP
+ 5NuQlPf/Oj7d/y4y0/9BReX/NDanoQAAARP///8B////Af///wH///8B////Af///wH///8BAAAABTU3
+ o30wNNT/MDPU/0NG5v9DRcrDCAgSCf///wH///8B////Af///wEAAAAFMTObazE01P8wM9T/QUTk/0RH
+ 0NUKCg8No24/H6BlNNWcYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/nGEw/55jMf+hZjX/o2c2/6Fm
+ NP+eYzH/nGEw/5thMP+bYTD/m2Ew/5thMP+cYTD/nmMx/6FnNutJQ7btMDTU/zA01P80N9f/ODvFwT9C
+ pxn///8B////Af///wE4OJMPUFPLtVBU7f8yNtX/P0Pi/0lM1uETFDId////Af///wH///8B////Af//
+ /wH///8B////AQAAAAU3OaR9NDfW/zQ31v9HSuj/RUfLwwcHEQv///8B////Af///wH///8BAAAABTI0
+ m2s1ONb/NDfW/0VI5f9HSdHVVzsnF6BnNcOdYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nWIw/6Jn
+ NP+vcj73v4BK78qJUu/OjVX5woJM/61wPP+gZDL/nWIw/5xhMP+cYTD/nGEw/51iMP+dYjD/iV5e/11g
+ 4/9RVOX/PkLZ9T0+pSn///8B////AQAAAAMAAAAHAAAAEx8fVEs4O9L7NDfW/zs/3f9PU+T1KittJ///
+ /wH///8B////Af///wH///8B////Af///wEAAAAFODqlfTg72P83Otf/SUzp/0ZIyMUDAwYZAAAAEwAA
+ ABEAAAARAAAAEQAAABUvMpFzODvX/zg71/9IS+f/SUzS1ZliNo+eYjH/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nmIx/aJoN8+obz5hq3VDK6l0RResd0gXt35NL86PWXXKiVPbrnA9/6BkMv+dYjD/nWIw/51i
+ MP+dYjD/nWIw/55iMf+chJz1jJDo701QzsEcHDUHAAAACwAAABUAAAAfAAAALwAAAEEmJmB9QELZ/Tc7
+ 1/89QN3/TVDj8zMzgyH///8B////Af///wH///8B////Af///wH///8BAAAABTg7pX06Ptr/Oj7Z/0xQ
+ 6v9ER7/PAAACSQAAAEcAAABHAAAARwAAAEcAAABJKCp3jTs/2f86Ptn/Sk/o/19Xuu2fZDL3n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+fYzH/oGQy9aNrO22keEYH////Af///wH///8B////Af///wH///8BpXBDEbF1
+ Q5+laTb/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/oGU042RJWR0WFTMbAAAAJwAAADkAAABHBgYRWSMi
+ R3VdWpepb2zf8T9C3P86Ptn/QETf/0VI1tszNH8L////Af///wH///8B////Af///wH///8B////AQAA
+ AAU6PKZ9PkLb/z5C2/9PU+v/YGDZ72JetcFiXrXBYl61wWJetcFiXrXBYl61wV9dwNdBRdz/PkLb/05S
+ 6v+JZXr/oGMw/6BjMf+gYzH/oGMx/6BjMf+gYzH/oWQy+6NqOlv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGncUIHp2s6oaFkMv+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+EVi99AAABRRER
+ JmFEQ3aRdG+3xX562Ot6dun7X17o/0FF3f89Qdv/PUHb/0FF3/9BRMOH////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAFOz2mfUFF3v9BRd3/R0vj/0lL4f9JTOH/SUzh/0lM4f9JTOH/SUzh/0lM
+ 4f9JTOH/Q0fe/0FF3f9ZVdL/nmY9/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6NpOJeZgEwD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaVtPxmiZjTloGQx/6BkMf+gZDH/oGQx/6Bk
+ Mf+gZDH/kl873XBrsb2CfuLzcW7s/1FT5f9DR9//QUXd/0FF3f9CRt7/Q0ff/0JG3v9BRM3NQkSoE///
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABT0/p31GSeD/Rkjf/1FU6P9kZ+7/ZGju/2Ro
+ 7v9kaO7/ZGju/2Ro7v9kaO7/ZWju/1te6v9GSeD/blmi/6FkMP+hZDH/oWQx/6FkMf+hZDH/oWQx/6Jm
+ M/OkbT4l////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpGk5f6Jk
+ Mf+hZDH/omQx/6JkMf+kZjL/pmc0/6VrPv9jXdb/R0rg/0ZJ3/9GSeD/SEvi/0xP5v9SVev/VFju/01P
+ 4fdFSMqnQEGqGf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAU+QKh9SUzi/0lM
+ 4f9dYPH/goTs94WH5eGGiOffhojn34aI59+GiOffhYjm34GE5O1dYOb/SUzi/4phaf+iZDD/omQx/6Jk
+ Mf+iZDH/omQx/6JkMf+kaDW7onRBA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaNtPiekZjP3pGYy/6dpNP+qazj9oGg/44Nmkv1cVMP/SUzf/0lM4f9NUOb/Wl3x/2Jl
+ 9v9dYOz9VFbd1UdJwpU0NYtBBgYQEQAAAA8AAAAH////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAFP0GpfUxP5P9MT+P/X2Ly/1RW0MMbGkINNTWQBTU1kgU1NZIFNTWSBSYmYgc7PaFtTE/j/01Q
+ 4/+dZUP/pGUx/6RlMf+kZTH/pGUx/6RlMf+kZTH/pGo4cf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqGw5u61wPMGscT9zkmE5L0JCpolQUub/TE/j/01Q
+ 5P9QU+f/VVjk7VFU16lISsBhQkOpIxERKgsAAAAvAAAASQAAAEcAAAA/AAAAIQAAAAX///8B////Af//
+ /wH///8B////Af///wH///8BAAAABUBCqn1QU+X/T1Ll/2Jl9P9WWdHDBwcSCf///wH///8B////Af//
+ /wEAAAAFOz2ga1BT5f9YVdX/pGc1/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6NtO0X///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNwQg2jdkgF////AQAA
+ AAdISsOxUFPm/1FU5v9ZXO7/RknCvzEzgCcLCxsFAAAABQAAAAkAAAAfRUWWk2hlucVlYrC9YmCss0RD
+ k10AAAAD////Af///wH///8B////Af///wH///8B////AQAAAAVBQ6p9U1bn/1NW5/9laPX/WVvSwwcH
+ EQn///8B////Af///wH///8BAAAABTw+oWtTVub/ZVvC/6ZmMf+mZjL/pmYy/6ZmMv+mZjL/pmYy/6Zn
+ M/2lcUEd////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAEDSk3Jr1NW6P9VWOn/a272/y4vd4cAAAA5AAAAKwAAACkAAAAzCQkXT1RV
+ 1OlZW+r/W13s/2hq9v9LTsF9////Af///wH///8B////Af///wH///8B////Af///wEAAAAFQkSqfVZZ
+ 6f9WWen/aGv2/1td0sMHBxEJ////Af///wH///8B////AQAAAAU9P6FrVlno/25ftf+mZzD/pmcy/6Zn
+ Mv+mZzL/pmcy/6ZnMv+maDT7o2w/C////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUpNxYFeYfD/WFvr/2Nm9P9SVdHnLy9tjRUV
+ LmkNDR5hKChNe3NvuMlkZe7/Vlno/1da6v9dX+39Q0WrQf///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABURFq31aXev/Wl3r/2xv9/9eX9PDBwYRCf///wH///8B////Af///wEAAAAFP0Gia1pd
+ 6v9yYrL/qGcx/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2g186hzRgf///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wFERq8ndHfs73d6
+ +P9cX+7/W17s/2pq8P90cun7g4Dp+Y2K8P1xcfL/Wl3r/1lc6v9aXez/UlTUwTU1fQX///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAANISrN5YGPu/2hr9P90d/r/YWPWvwgJGAf///8B////Af//
+ /wH///8BAAAAA0RGrGVfYu3/fGy3/6loMf+paDL/qWgy/6loMv+paDL/qWgy/6lqNe2idkQH////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AVdYxlmvsfP1r7H9/3l89/9kZ/H/YGPv/19i7v9gY+//YmXw/2Nm8v9hZPD/V1nc30ZI
+ sSf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BTlC+cZCS8P+rrvT/p6n1/2Zo
+ 2LsfIFkD////Af///wH///8B////Af///wFJTLpdiozu/6qcw/+zcT//tHJB/7RyQf+0ckH/tHJB/7Ry
+ Qf+yckHxpHdEB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BVlnCQ5SW4cvAwfP9ysz+/7y//v+oq/3/mp39/4eK
+ +v9rberzVVfSp0ZIsCH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AUJE
+ qBFAQ60vPkKtLz5CrS9DRa0d////Af///wH///8B////Af///wH///8BREWqCz9DrS+CYG1dvHlN/7x5
+ TP+8eUz/vHlM/7x5TP+8eUz/uHhL+aN1RQv///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEuJYADPUCsJVJU
+ wVdbXc1xWlzLd1JUx2VISrZHP0CnD////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bp3FCJ7t5Tf28ek7/vHpO/7x6Tv+8ek7/vHpO/7p5Tf2mckYh////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AaByRwW6eU3xvXtP/717T/+9e0//vXtP/717T/+9e0//q3NFRf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BuHlNzb18UP+9fFD/vXxQ/718
+ UP+9fFD/vXxQ/7R3S3v///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZ5uQQP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbZ4
+ TI29fVL/vX1S/719Uv+9fVL/vX1S/719Uv+4ek/FonNBBf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AahxRRPRmGi94K17k9CdbVetekwjnV8/A////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGudEg/vX1S/b59U/++fVP/vn1T/759U/++fVP/vH1S+653Sjf///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGyd0tXwoFW/dmWaf/mpnf/665++eat
+ fd3jrXyhzJloY6JuPgf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bp3BBC7p8UdO+flT/vn5U/75+VP++flT/vn5U/75+
+ VP+5fFG9oG1CB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wGkdUUJunxRyb5+
+ VP+/f1X/woFX/8eFWv/Oi2D/1JJm/8WJXNujcUQL////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGzeE1vv4BW/79/
+ Vv+/f1b/v39W/79/Vv+/f1b/wYJY/7+CV5mmcEYH////Af///wH///8B////Af///wH///8B////Af//
+ /wGmbkIFtXpOi7+AVv+/f1b/v39W/79/Vv+/f1b/v39W/7+AVv+3e1CN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bp3JGDbt+VNnAgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/NjGL91ZZps7eCVSn///8B////Af//
+ /wH///8B////Af///wGrdEgbuHxRp7+AV/3AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP++gFb1qnRGKf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGyeU1LwYNZ98CCWf/Agln/wIJZ/8CCWf/Agln/xIVb/9WU
+ af/nq3z15K+Ar9emdnPNmWpTyI9hTcSHW2HBhFihwIJY68CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/uH1Snf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bn2U1A7t/VInIiWD9w4Vc/8GD
+ Wv/Bg1r/wYNa/8GDWv/ChFz/y4xi/9eWbP/jo3f/5KR3/9+ecv/QkGb/xIZd/8GDW//Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/vIBW4ap1Rx3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGncUIFwoZakc6PZv/FiGD/wYRd/8GEXP/BhFz/wYRc/8GEXP/BhFz/w4Vd/8OGXv/DhV3/wYRc/8GE
+ XP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/voJZ9bB4Szv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AZlpOAPEiF2B2Jhv9c6QaP/HiWH/woVe/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/vYFZ47J6T0P///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AciOYT3eonXT5qh+/9aX
+ bv/LjWb/xYhh/8OGX//ChV7/woVe/8KFXv/ChV7/woVe/8KGX//Dhl//xIdg/8OGX//Chl79un9Wua11
+ SSf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bm2g7Cc2ZbFvms4a76rWI9+mwhf/go3n/15hw/9GTbP/OkWr/zpFq/86Raf/Qkmr/zpFp/8iL
+ ZPO/hVy3sHlNR59rPAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bnmo+A7uJXCHLm29Z3a6BjeSwg63kq37B3qJ3x9ue
+ c7nWmW6ry5BlhbuCV1eveU4doG5EA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AVw3AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABACAAAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAA////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAMAAAADAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAkAAAAPAAAAEwAAABUAAAARAAAACwAAAAUAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAHAAAAGQAAAC8AAAA7AAAAOwAAADcAAAArAAAAGwAA
+ AAsAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaNfKwPaf0gF34BJBd+ASQXfgEkF34BJBd+ASQXfgEkF34BJBd+ASQXfgEkF34BJBd+A
+ SQXfgEoF9oxkA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAsMDB0tEBEqUxYXN20aGT5zEBAqZQoLF1UBAQE/AAAAJQAAAA8AAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BqksqBbRgRQe2YUYHtmFGB7Zh
+ Rge2YUYHtmFGB7ZhRge2YUYHtmFGB7ZhRge2YUYHtmFGB61sRgfumIkF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAgIGCy8whXNST8PbXFXU51VP1OtFQsjlMjGdxSIi
+ YYUFBQtBAAAAHwAAAAf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZlgLwOyZzcHrH89CauAPAmziDwJs4g8CbOIPAmziDwJrIE8Cap+PAmqfjwJqn48Cap+
+ PAmrfzwJxYNFCdeYfwX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wENDiENLS+kmykl2f1BPeX/NTLi/yAd3f8cG9n/IyPF9ScneZEFBQozAAAADwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAUAAAAFAAAABQAAAAP///8BAAAAAwAAAAMAAAAFAAAABQAAAAUAAAAD////Af//
+ /wEAAAADAAAABQAAAAUAAAAFAAAAA////wH///8B////Af///wEAAAADXycUB5lRLA+XWzQRoGE3D7Fn
+ QA2+akQNwW5EDbJpQA2dYDYPklcwEYNPLxOFUC4Tk1cyEZ5gNg+sdEANgmhnBwUFBQUAAAAFAAAABQAA
+ AAP///8B////AQAAAAMAAAADAAAABQAAAAUAAAAD////ASMkWAkwMbCxKive/3p79v+lpvn/dXbx/yMj
+ 2/8bHNv/JifE7yYmZ28AAAAbAAAABf///wH///8B////AQAAAAMAAAADAAAABQAAAAUAAAAFAAAABQAA
+ AAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAA////wH///8B////Af///wEAAAADAAAABQAA
+ AAUAAAAFAAAABQAAAAUAAAAD////Af///wH///8B////Af///wH///8BAAAAAwAAAAUAAAAFAAAAAwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABwAAAA8AAAAZAAAAHwAAACEAAAAdAAAAFwAA
+ AA8AAAAPAAAAGQAAAB0AAAAdAAAAGQAAAA8AAAAHAAAACwAAABcAAAAdAAAAHQAAABcAAAANAAAAA///
+ /wH///8BAAAABwAAABUTDQYfNSMTKUAsGidXPCIfiGE2FbR7RBGdbjsTbU0uGU80ICM5KhgrNCYVLzYn
+ Fi0/KhgpVDkiIVw/KxkaFw8VAAAAGwAAAB0AAAAdAAAAFQAAAAkAAAAHAAAAEQAAABsAAAAdAAAAGwAA
+ ABUAAAAJOz6bBzg8s6syNMTPPD3H1U5P2elsbfL/R0jw/ygp5P8nKNv/LS6gvQwMGi8AAAAL////Af//
+ /wEAAAADAAAACwAAABkAAAAdAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHQAA
+ ABkAAAAPAAAAA////wEAAAADAAAACQAAABEAAAAbAAAAIQAAACMAAAAhAAAAGwAAABMAAAALAAAAA///
+ /wH///8B////AQAAAAkAAAAVAAAAHQAAAB0AAAAZAAAAEQAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAcAAAAZAAAALwAAAD8AAAFFAAACRwAAAEMAAAA7AAAALQAAAC0AAAA7AAAARQAAAEUAAAA3AAAAHQAA
+ AA0AAAAdAAAANwAAAEUAAABFAAAANwAAAB0AAAAH////AQAAAAMAAAATAAAALwoGAUcXDwdRIBMLSzUg
+ ETdwRy8fnWdBF2dDKh87JRczJRYORRwRC08bEQhVHBAHUyASCk0oGQ5DLBsRNQoGAzUAAAA/AAAARQAA
+ AEEAAAAtAAAAEQAAAA8AAAApAAAAPwAAAEcAAABDAAAALwAAABMYGD8DQkOoHUdJnx1FSJwfNjijVTEy
+ w+s0Nuj/Ky3h/zQ37P8uMMTxISFSVQAAABMAAAAD////AQAAAAcAAAAbAAAANwAAAEUAAABHAAAARwAA
+ AEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABFAAAAOwAAACEAAAAHAAAABQAAAA8AAAAhAAAANQAA
+ AEEAAABHAQEESQAAAUcAAABBAAAANQAAACUAAAARAAAABf///wEAAAADAAAAFQAAADEAAABDAAAARQAA
+ AD0AAAAlAAAACf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAFAAAAGQAAAjcQEi5fHB1QfS4ucpM0NHmdKClkjxYX
+ NGsBAgRPCAgUUxwcRnUbHEl/GxxJeyMiWGkZGT8nAAABDxkZPTUgIlNvGhxJfRscSX0eIE9rEBIvLwAA
+ AAf///8BAAAAAwoKFxsfH0pdHh1KgSIfRYcnI0qBNSlEV146LCVvSDIhOyQZNyAUClEeGCxzKCVckTo3
+ d6c1MWufKiVLhx4WHGkUCwZVFxg2ZxscSnsaHEl9HR5OdyIjVVMGBg0RAAABDxocQkceHk53GhxHfxwc
+ S3siIlNdCwwaGwAAAAP///8B////Af///wEWFzUNNDaXjygr0/8pLN3/Oj3u/zM13P0uMIaZAQEDHQAA
+ AAf///8BAAAACRETLisfIFJtGh1JfRocR38aHEd/GhxHfxocR38aHEd/GhxHfxocR38aHEd/GhxHfxsc
+ SH0eIE5xFxg8OwAAAQsAAAARAAAAKQAAAkMJChxdGx1QgScoZ402NnqfMjF1myYnX4kUFC9nAwIFRQAA
+ ACsAAAARAAAAAwAAAAUNDSAhHiBOYRsdS3saHEh/HiBQdxobP0MAAAAN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AA0FBQwxLS5rg2ljxuOHfuf9fXXz/2Re7v9JR+L/OjrE7TIzjbUtMHWhWVbU925o4/trZeL7VFLL+T09
+ mU8FBQ4JNjaTa1NQz/dtZ+P7bWfi+1NQ0PczNI5nAAAABf///wEAAAADKSpmMUFBtddmYN/7bmfi+2Je
+ 3ftFQ6u3XT0rLVM2HS8sHyNVSkWNr3x01euGfe//c2zw/1ZT6v9AP9b5OTmx3y4saZ85O6DRZmHe+21o
+ 4vtlYd37RES30ykpaRMaGj0VPz+ttWRf2fttZ9z7aGLc+0NEtdMlJmArAAAAA////wH///8BAAAABQEB
+ AxcuMHyBLzDM/SUo1f82OOX/QUTu/zI1st0UFC83AAAADQAAAAMAAAAHMzWEX1NSy/VsZt37bGbc+2xm
+ 3PttZ9z7bWfc+21n3PttZ9z7bWfc+21n3PttZ9z7bWbc+1tY1Pk5O5+RAwMKDwAAACUODiRPOTd2mXBq
+ w+GIf+X9gHjw/21m7/9ZVe3/SUfg/Ts9wOsvMYuvExQtWQAAACkAAAALAAAABSotdzlQT8jpbWfj+21o
+ 4/taWNb7NziaiwYGBg3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAADAAAAEyorbGlUU8ztYVzr/z9A4P8xNNr/T1Ls/4OG
+ 7/9tb+X/PT/S/TY5ufMxM9T/Ozzf/0FD5/84ObvnLS1pHQAAAQkzM5NvLzLK+zY32/9HSOz/Oz7Z/TQ2
+ k20AAAAF////Af///wEqLW8zMjS23zM02f8+PuL/RUfq/zs7rcFXOCIzQysZPUNAk61lYOb5U1Ho/zY3
+ 2/85POH/Zmnw/3+C7P9ZW+D/NTfF+zY5xf00Ndr/QUHm/zk72/04OaKVIiJCBSAgSBc0NrPBLzLX/zs7
+ 3/9JS/D/ODu91ycnYC0AAAAD////Af///wEAAAAJERIrLTY4pcMuMNb/LTHY/zM33v9ITPP/Oj3P/SYn
+ ZGMBAQIXAAAABQAAAAU3OZBhLTDM+zo63f9SU+T/VVbm/0tM4v9JSuL/R0ji/0RF4f9EReH/REXh/0RF
+ 4f9JSen/QEPm/zc6pJkCAgYXFBY4S0tKq8F6c+r7aWXt/0JD4v9GSOv/bG/x/5KU7f9tb+P/NDfa/zE0
+ 0PsxNKHHFxc4TwAAABUAAAAJLS9/PTI0xfE0Ntv/RUbp/0JE4v8zNZ6PDQYGDf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAMHBxIXPj+vvURE4P8uMdT/LDDU/ywv0v9FSNjxYWTe53d65/eBhPD/OTza/ysu0f85PeD/Q0fp/zY4
+ sL8gIEMTAAAABzQ0k28uMcj7KS3R/0lN8f8+Qdn9NTeTawAAAAX///8B////ASosbzMzNrbfKCzQ/zo+
+ 4v9ITOz/PT2swVE1HjdDN11hRkbN8zo73P8rL9L/Ky/T/zM30v1SVNvram3f7YOG6vtfY+b/MDTU/ysv
+ 0v9DR+v/Oz7T9zU3jmcHBw0DICBIFzY5sr8pLdD/Mzfb/0xQ8/85PL3XJyhgLQAAAAP///8BAAAAAwAA
+ ABEkJVxTOj3C7Swv0/81Od3/Mzfa/0VJ6/9DR+b/NDaVpwsLGSUAAAAJ////AT0+nFswNMv7RUrf/2ds
+ 6v+OkvL/nKD2/5qf9v+YnPf/kpb3/5CU9/+Pk/f/j5P4/4SI+f9LTuj/OTynlwYGDiE4OZWjUlHf+0JC
+ 3/8sMNP/LDDV/0JG3/1YXOLxe3/o+6+z9/9eYuv/OT3f/zk90/s1N5ijBgYJFQAAAAkuL309MzfE8Scr
+ z/9ESOv/Q0fi/zU2no8IBgYN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////ASstaSU5O8DpLjHU/zI22P82Otz/NTe98TEy
+ iHUrLIFBNzmlfUxPyd1LT+f/MTXW/0FF5/9ITOv/ODqsrRAQJg8AAAAHNDWTbzE0yvsuMtT/TVLz/0FE
+ 2v00N5NrAAAABf///wH///8BKixvMzQ4t98sMNL/P0Pl/0tP7v8+PqvBWj4fN0U/i4szNtP9LTHT/zY6
+ 3P8yNtP/Ojmhx0U2Y1tIO3VfRUOjo1JU2/c9QeH/MjbX/0tP8v8+QdHzMTGBVQMDBQUgIEgXNzqzvy0x
+ 0/84PN7/T1P0/zs+vtcnKGEtAAAAA////wEAAAAHAQEDHTQ1jZM6PNH9MDTW/zo+4P8xNdf/PkLk/1BU
+ 9v86PLTZGRtAQQAAAA8AAAADP0GiOUFEzelydvb/YGTx/0FE4v9FSeH/Sk7R/U9SzfVRVNHzUVTT8VJV
+ 1e9RVdXtUVTV7UJFzus6PKSBIiRYQUFDwuE4Otr/LzPV/zE11/8zNsTvNzmmnzI0kmc2OaCLREfM8Vtf
+ 8/9lavj/UVXw/zs/xOsxMnAvAAABCS4vfD01OcbxKi7S/0lN7v9GSuP/NTeejwYGBg3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BNziEJzc6wu0wNNT/QETk/0dL6v8zNZrBBQYORwAAADUCAgYpLzF9eTU5zf0zN9j/R0vr/0pN
+ 6v84OqWdCwsbCwAAAAk1NpRvNDfM+zE01f9RVfT/Q0fb/TM1lGsAAAAF////Af///wEqLG8zNjm33zAz
+ 1P9DRuf/TlLv/0A/rMNoQSI1SEKUjzI20/0zN9j/S07u/z1A0PszK1GJLx4KVTskD0tBKiBPOzqgxTU5
+ 2f84PNz/UVX0/0BDzvMuLnlPAQEDBSAgSBc5PLS/MDTU/zs/3/9TV/X/PD+/1ycnYS0AAAAD////AQAA
+ AA0TFTA1Oj2tyzc62f84PNz/Oz/b/zM2z/84PNz/Vlr4/0BE1P0qK3JvAQEBGQAAAAX///8BP0Gqa05S
+ 2e+AhPv/X2Pw/zs/4P85PMz9NTaPvyAhTmMqLGdHPT+TMT9CnC9AQ50vQkObLSkpah0zNo9/PD7V+TI1
+ 1v88QOD/ODvW/zEzi6MICBE5AAAAMwICBjM1NpGlQUTV+0RHzvE/QsHjPD6xzS4vck8EBAgNLjB+PTc7
+ x/EuMdP/TFDv/0pO5f83OJ6PBgYGDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEzM2wLPT+92UdK5/9YW/T/U1b0/z1A
+ ve0kJFyJDg4kYwAAAE8ODiNbODvB9zI21v9MT+7/TVDr/zk7opsKChgLAAAACTU2lG82Os37NDjY/1RY
+ 9v9GSd39MzSUawAAAAX///8B////ASosbzM3OrnfMzfW/0ZK6f9RVfH/QUCsw25BIjdTSIdzPUDU+09T
+ 7f9YXPf/Rkjk/zs5kMcrJECJJxoQcSQUA2c1NHWrNDfV/zo93P9VWfb/QkTN8SsrbEUAAAAFICBIFzo9
+ tL8zN9f/P0Pi/1db+P8/QcDXKClhLQAAAAMAAAADAAAAFy4wfHVBQs33NTjY/0JF5f88P8/9PD66+Tg8
+ 2v9NUe7/T1Lu/zc4pLkODiIrAAAAC////wFLS6EHP0Cwf1VZ3feHi/3/W1/w/0BD5P88P9L5MTSJqQUF
+ CUMAAAAjAAAACwAAAAMAAAADAAAAETc6pK02OdX9Nzva/0VJ6P84PMP7GRxMew4QMWcOEDFnDhAxZxYY
+ QnUgI1iNGhxGgRMVOHUSEzdfEBAtMQEBAxEsL3s/ODzI8TE11f9QU/H/TVDp/zc5ppkPDyEP////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AUBAdQM/P7B/XV/j962x/f+Qkvf/T1Hj/0pK1vVJScHdQ0SlvzU1gak7PcH5NjjX/05R
+ 7/9QU+3/OjynnwsLHAsAAAAHNjeVbzk8z/s3O9r/WFv4/0lM3v0zNZFtAAAAB////wH///8BKixvMzk8
+ ut82Odf/SUzr/1RX8v9DQazDckcmOX1YUDtFRsDZgob2/7O1+/9wcu//SUve/UxL0vNJSLDXQj6Kvz08
+ js02OdX/PD/d/1hb9v9ER87xKipnQQAAAAUgIEgXOz60vzY52P9CReP/WV34/0FDwdcpKWEtAAAAAwAA
+ AAkFBg4lOj2jsz9B2v85Pdv/RUjn/z0/wOE9P6rBOj3V/UVJ5/9cX/n/QUTD5yUmX1cAAAARAAAAA///
+ /wE/QaQTQEO5l15h5/2Kjv3/WFvu/0JF5P8+Qc73LzGAnQMDCD0AAAAdAAAACQAAAAMAAAAPOjywyTc6
+ 1/8+Qd//TE/t/2Rh3P9uas/pbmnP5W5pz+duac/nbmnP525pzuVwa8/ncWzP52ZizeU6PZWJDRAkDy0w
+ fD07P8nxNTjX/1RX8v9RVev/OTunnRERJRH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAzs7iRVGR7indHbe87S2
+ 9f+srvT/l5nw/3d47f9nZu7/X1/j+0xM2/84O9n/UlXw/1RX7v86PKifCwscCwAAAAc3N5VvPD7Q+zs+
+ 2/9cX/n/TE/f/TI0jHEAAAALAAAAAwAAAAMqLG01Oz273zk82f9MT+v/V1rz/0RCrMVzSCk7mmErLVxM
+ emNVVcfblZjt/bu99/+kpvH/hYft/21v7v9mZer9W1re+z9B3P8/Qt//W173/0ZJ0fEtLnFHAQEBBSAg
+ SBc8P7W/Oj3Z/0VI5f9dYPn/QkTC1ygpYS0AAAADAAAADxwdSUlCRL/fP0Hd/0JF4v9FSOL/PkCvqTo7
+ mk8+QMzxQETh/11h+f9MT9/9MjSKjQEBAx0AAAAF////AQAAAAM9P6IbQUO9qWxw7/2Hivv/VVjs/0RI
+ 5P8+QsPxKSpqiQQECjsAAAAbAAAACQAAAA09P7fXOTzY/0RH4/9rbvT/i4v3/42M+f+NjPn/jYz5/42M
+ +f+NjPn/jY35/3Jx8P9gYPD/Wlvx/zs+op8aHTwLLjB+PT1AyvE5PNr/W1/3/1ZZ7f85O6ehDQ0ZGQAA
+ AAUAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHAAAAExsbQC8uMIB7QkSswWBj0OuChOf3mJvv+7Cy9v+nqfb/jIzw/09S
+ 3/9UV/H/V1rv/zo8qJ8LCxwLAAAABzc4lW89QND7Q0fg/2Vo+/9QU+H9MDKGfwAAABcAAAAJAAAACyYo
+ ZD09P7/jPD/a/09T7P9aXfP/RUOrxXRJKj+ETyg3Zj0aQ0g0SmtBPIyzUVK4321v1feLjer5o6bz/6+x
+ 9/+am/P/d3jq/0ZJ4f9eYfj/SEvU8zAwfE8BAQMFICBIFz5Atr89QNv/SEvm/19j+f9CRcPXJyhhLQAA
+ AAcAAAAZMDJ+f0dJ1/k/Qt3/Sk3o/0NG1f89PqVjOzyWIT5Av89BReD/VVjw/1pd8f88P67HEBEoMwAA
+ AA8AAAALAAAADQAAAA0rLW0lQ0a7xXl98/2Fifr/VFjs/0dK5P89QLnnHR5ObwEBAjUAAAAZAAAADTxA
+ tMU9QNn/SUzm/2xv+/9mauj/Z2vk+Whs5vdobOb3aGzm92dr4/lkZ+X/SUzf/01R7P9OUen/Oz2hhx0g
+ QQkvMX09P0LL8TxA3P9kZ/n/XmHy/zs/rbsMDR0tAAAAFQAAABMAAAATAAAACQAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkAAAAfAAAAOwAA
+ AkkLDCVhGRo/ZyIka2EzNZmZRUi4w11gy+N6fOb/TlHf/1da8v9ZXO//PD+omwsLGwsAAAAHNziVb0BC
+ 0ftHS+P/eX39/1hc5/8yM4ufAAAANQAAACMAAAAlHyBRVz9Cxu0/Q93/Ulbt/1xe8/9HQ6zFeEgsQXZF
+ JD9LKwxVNBwFZywaDnMxIzGHOys9fT80cpFDQJy/UlK42Wxt1fNqbeb/R0rh/2Bj+P9KTtPzMTF/SwEB
+ AwMiIkwVP0G3v0BD3P9LT+j/Y2b5/0VHw9coJ2AtAAAADQoLGS1AQazDR0ne/0RH4f9OUuv/QUTE6To7
+ kSUjI08FP0KtjUNH3P9NUOn/ZGf6/0lMy+siI1dZAAAAHQAAACMAAAAxAAAANwAAADUgIExXSErB5YKG
+ 9v+Jjfv/VVjt/0lN5f89P7LZGBk6YwAAAC0AAAARPUCvp0FE2v1KTeX/aW37/0ZJzfspKnGDJihuYSkr
+ d1smKW5jLS95j0FEyvVBRN7/UFTt/0lM3f87PqJlGRk2BzAxfj1CRMzxP0Pd/2pt+f9pbfn/QEO42wwN
+ H00AAAA5AAAANwAAADEAAAAZAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAwMBTc4h1lSUZurY1+tz3p2x+VAQZ2/CQkYVwEBBEcDAwpFGx1HdURG
+ x/lER+D/WVz0/1da7f8+P6SPEBAlBQAAAAc4OZZvQkXT+0lM5f+BhP3/c3f0/z9BsdkQEiljAAAASQAA
+ AEsgIVZ7RUfP90JG3/9VWO//W17y/0pGrcGFUi0/fVE7RVZMhp9fWZnLcGq04Whkvus4MV2lMx0FbTYf
+ BmkzIBVzOziBw0ZJ4P9JTOT/YGT5/0lN0O8yNIA5AQEDAyAgSBdAQre/Q0bf/09S6v9mafr/R0nD1ycl
+ XS8AAAAVJyllX0pMz/NGSOH/TE/n/05R6f9BQ66nPT2HC////wE9P6FFQ0fP9UpN5v9jZvj/WFvo/TY4
+ kZ8BAgQvBAQLPQMDDlUCAgxdAgIMXwMDDVshIVeJSk3D64qN+f+Lj/v/Vlnu/0xP5P9AQbHRGxtBVQAA
+ ABs9PqRlSUzc91FU7f9oa/v/U1ji/ywtdJkBAQRNAAAASQEBA000NoapUlPi+0dJ4v9QVOz/REbK9Tk6
+ kCcFBQoFMDF9PURGzfFDRuD/aGz6/3R4/P9NUNX3JilplwMDDFsLDCxnICBMawkIEi0AAAAL////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAPz8DRkesg25s
+ 4fmRi/f/gX34/05Q2vs6O5K3KChahy8vYotNTZa5Wlrl/UhK4v9YW/L/VFbo/T5Aon8ZHEEDAAAABzk5
+ lm9FR9X7TE/m/29y+/98f/n/VFbd+0BCrdMsLmmRMTJmkV5css9eXuf/RUjf/1VY7v9TVuj/Tkmlr5Zd
+ LjuEVklHWFa/34iD8f+Oifj/amny/0dHuOk+N2mvPTNToUc/Zq9eW7jnUFHn/0xP5v9cYPb/SUvO5TM2
+ fBv///8BHiBIF0FFuL9GSeH/UlXs/2pt+/9JSsTXIyJXMwMDCCE5O5OfT1Hi/UhL4v9TV+7/S07a/T0+
+ n2M0MWsD////ATg5kBVDRb/VS07m/1te8v9mafj/REe/2w0OIEU8PY2bX121y2Ngtc1jX7XNYV+1zWFf
+ tM1dXL3taWnf/5qc/P+Hivj/WFvv/0xP3/0+P6i/GxtDLTw9mS1JTMvfbG/5/3J1/f9cX/X/SkvI6zc4
+ hKctLmWPREKDq3Zx1fNcXOz/SUzi/0lM4v9DRbvDNDR/CwAAAAUxMn49RknO8UZJ4v9oa/v/am35/2Bi
+ 7f9NTsztXlq1zYR+xeFfXsXhJidlWQAAAA8AAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wFAQqUzSUvO43h69v+KjPf/XV/s/15d6Pt6duXzlY7o86Ga
+ 8ftiYu7/Sk3j/09S6f9LTdjzPj+jUf///wEAAAAHOzyaa0hL1/tRVOj/bG/7/2Fk6f98fvL/dnfy/3Fu
+ 5vWSi+b1k43y/V1e7P9JTOP/TlHn/0tN1PdbTIyFomMuOaZkLDlSSZmXWVvk+4uO+P96ffX/VFbp/2lm
+ 5PmGgOH1nJTn+ZOM9P9PUeb/TE/l/1BT6P9FR8O7MDRqC////wEdHkgXQ0a4v0lM4v9VWO3/bXD7/0pM
+ xdchIVI1Dg4kLUhKvtdOUOX/UFPn/1da8P9HSsftMziAG////wH///8BMzR9BUBDq4lLTuH/Vlnt/25x
+ +/9TVtr3JylldUFEsM1ubO3/f3v1/4B89f+AffX/gH31/4F98/+AfPP/enn2/5GS+P96ffb/YmX0/01Q
+ 0fEwMHRBLS1zBURGtnNucejztrj+/4yP9v9aXO7/YWHn+4J95PWfluz7fXn0/01Q5f9KTeP/R0rU60BC
+ qE3///8BAAAAAzM2hTtIS9DxSkzj/21w+/9aXez/bG/x/21v8f94dfT/iYX5/2Fi5/03OpaJAwMGEQAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AURE
+ mQVERraJeXvm99na/P/Jyvf/lpjw/42N8v+IiPX/f4D0/2ls9/9XWu7/TU/h/UZIwbE9PJsL////AQAA
+ AAM/QKZlT1LZ+5OW8/+Qk/3/T1HR+Vtdz/Ooqvj/rq/3/52d9v+DhfP/a271/1VY7P9MT+L/TUq2zYBY
+ VlGmYy47qGIxO3dVY1tUU77Zp6rz/+Hi/P+sr/L/kJHx/42M9P+EhPX/eXr2/2Jl9v9QU+j/Sk3T8URF
+ smslJUcD////AR0dSBdERrm/TVDk/1lc7v9wc/z/S07F1yMkVzMzNX9JV1ja93+C7/+ZnPj/YGPt/0RF
+ uK8oKHQH////Af///wH///8BPT+eT0pN1fmFh/T/pqn+/29y8v8/QaSrQEO1yWNm5/+doPX/pKf3/6Sn
+ 9/+kqPf/paj3/6Wo9/+mqff/oaT2/6mt+P+Vmf3/VVfY8TY3hjv///8BQEKfD0tNvpWJjOr53+D8/7+/
+ 9f+XmfH/hof0/3d59f9dYPL/T1Lm/0pN1fFER7V9RESQBf///wH///8BOz2aM0xO0+9+ge//mp3+/1lc
+ 3f1WWND7rbD5/7S29f+FiPj/bW/2/0hKwcUwM3IX////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUBAoA1ERbNnXmLRz5GT6f2ytPT/rrH4/5OW
+ 9v99gPT/Y2bs/09R1+VGSL6dQkOqHf///wH///8B////AUJErltVWNT5d3rk/3N15P9PUcjfP0CmY1FT
+ xrmHiuf9srX0/5aZ9/9sb/H/UFPb9U1LtbN+WV5VqGctPaZmMz+mZjM/q2krPXlVZV1WUKu5cnTZ86Om
+ 8f+2ufb/o6b3/4aJ9P90d/L/VVjh/UpNyNdCRa1pQECiCf///wH///8BHR1IF0VHur9QU+b/XF/w/3N2
+ /P9NT8jXKitrNURHr51dXt//dnnk/3V45P9XWtX3QUKnX////wH///8B////Af///wE7O5EJR0q92Wxv
+ 4f93euP/aWzi/0hKvtNER7XVZmng/3l75P94e+T/eHvk/3h75P94e+T/eHvk/3h75P95fOT/eHzl/3F1
+ 5f9TVc/pQECfKf///wH///8BQ0GfEUJDtHdlZtnfm53w/7S29v+Tlvb/bG/y/1ZZ4/NKTc7BQkSwV0BA
+ ogf///8B////Af///wFDRK0tUFLO73J15P91eOT/VVfR8UNFrq1qbNbrr7H1/4WI9f9aXef7TE7KyUBF
+ oxv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATo7nAM9P58ZP0CuTURDunVGR76JRUe6i0VHu3tER7ZdQUOlLUBCoQ3///8B////Af//
+ /wH///8BREanFz9CpkM8QKRFPUClRUBCpTk7QaAJOTueDT9CrlFERbp9Rki8jUZIuH1DRKpFkGI9Hadn
+ LjmhYzBBoWMwQaFjMEGhYzBBo2MuQZ1hMkNxUWdlYk6JgVpOn5tYTaOnV0yeo1xOmJVmUH51bVVvM29j
+ fQX///8B////Af///wEdHUgXR0i7v1NW6P9fYvD/d3r9/09RyNcoKmcvPkCgLz5CpEU8QKRFPECkRT9C
+ pUFHSK0R////Af///wH///8B////Af///wFAQ6Y5PUCkRTxApEU+QaVFQkOnPVJKlEdlT3dnaE5wb2hN
+ cG9oTXBvaE1wb2hNcG9oTXBvaE5wb2pQcm1nT3ZpY1B8Y2NPf0+XaVgVpHpVCb6WPgP///8BOzyZBTw+
+ oiVCRLZVRUe9eUVIu4lFR7ljQ0WtRUNFsg1AO54D////Af///wH///8B////AUBEpw1AQ6ZBPECkRTxA
+ pEVAQ6ZBQUOjFz8/pDVFRr11Rke6hUVGs1lDQqQhQESmA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BOjOVBTw8
+ kwk9PpYJPz+UBSIiiAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATo9lgc6PJMJP0KUB////wGebTEPoGQ0NaJjMUOgZDFFoGQxRaBkMUWgZDFFoWQwRaRl
+ K0OkZStDoWIvRZ9iMUWfYjFFomMvRaZmLUGjajEroHg5Cf///wH///8B////AR0dSBdISry/Vljq/2Jl
+ 8v96ff3/UVPJ1ygoYi0AAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wHMd1MDqGYzIaVoLD2lZipBpWUqQ6VlKkOlZSpDpWUqQ6VlKkOlZCpDpmYrQaZm
+ K0GmZys/qGYvO6VqNzehbDwrp3pBEf///wH///8B////Af///wE5PIoFPj+TCTs7gAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ATU1kQU9QJYH////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaFf
+ NAmhYzQtoWQxQ6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6Fl
+ Nzuma0EVyIl/A////wH///8BHh5JF0lMvb9YW+v/ZGfy/3x//f9SVMrXKSlmKwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AapwQA2hZDU1oWMyRaJk
+ MkeiZDJHomQyR6JkMkeiZDJHomQyR6JkMkeiZDJHomQyR6FkMkehZDJHomUyR59kMzulbToT////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Blnw3A6FkNyGgZDJBoWQxSaJkMUuiZDFLomQxS6Jk
+ MUuiZDFLomQxS6JkMUuiZDFLomQxS6JkMUuiZDFLoGMzRaFoOSmceksJ////Af///wEnJ10RS07AvVxf
+ 7P9+gfb/g4b+/1RWzNUtLXInAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGbdkIDomI5H59kM0OhZDFJomQxS6JkMUuiZDFLomQxS6JkMUuiZDFLomQxS6Jk
+ MUuiZDFLomQxS6FkMUuhZDJJpmk0M6JrKQ3///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BlGExEZ1jMTugYjJLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6Bk
+ M0ugZDNLoGY2P6N1Qhmvj4gD////ATs7iQ1PUsa7iYz3/8fJ/v+hpP7/WVvR0zk5kh////8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaZyPA+jZjg3n2MzS6Bk
+ M0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BkM0ugZDNLoGQzS6BmM0efazgljlMpB///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGmaDEHomQ1K6BhMkufYzFPn2MxT59j
+ MU+fYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fZDJLnmc3N5xuPxH///8BQkKXBUhL
+ tolXWcjFWFrHw1dayMVLTbmRQUGjDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGaak4JoGc5KaBjM0mfYzFPn2MxT59jMU+fYzFPn2MxT59jMU+fYzFPn2MxT59j
+ MU+fYzFPn2MxT59jMU+fYzFPoWQ0QaR2PBeidjsD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbGNFgOiaDUZomU1Q59iMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9j
+ MlGfYzJRn2MyUZ9jMlGgZjVLomk3MbtyTAv///8BOz2eDTY2lRM1NZUTMzWVEzs8nQ3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BsHtOBZ5pPSGfZDZDn2MyUZ9j
+ MlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9jMlGfYzJRn2MyUZ9iM0+kZjY1tXIwC///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaJyMguhajYznmExUZ9j
+ MVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWhZTNNomM3L6R0
+ SA2kgFYD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AbGASAehbDwfoWc2Q59kMlOgYzFVoGMxVaBjMVWgYzFVoGMxVaBjMVWgYzFVoGMxVaBj
+ MVWgYzFVoGMxVaBjMVWgYjFVn2I0S6JsOSGvgB8D////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BwoISA6NpMhugYzNJn2EyVaBjM1egYzNXoGMzV6BjM1egYzNXoGMzV6Bj
+ M1egYzNXoGMzV6BjM1egYzNXoGMyV6BjM1egZDVPoGk6NaVyQhWtf1wF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGedVEJo2g9JaBnNUWfZDNVn2MzV6Bj
+ M1egYzNXoGMzV6BjM1egYzNXoGMzV6BjM1egYzNXoGMzV6BjM1egYzNXoGMzV59iM1WdYzc9qnk5Df//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bq2Y0CZ9l
+ OS+fYTJTnmAxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9i
+ MVmfYzJXn2c3RZ5rOimjcEoRrnBFBaBeSwP///8B////Af///wH///8B////Af///wH///8B////Abea
+ bgOXb0oJom5DF59mOzOgYzRPnmExWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9gMVmfYDFZn2AxWZ9g
+ MVmfYDFZn2AxWZ9gMVmfYDFZoGQzT6FrOyOvXkQD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bm2U9E55kNkGdYDFZn2AyXZ9gMl2fYDJdn2AyXZ9g
+ Ml2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYjJbn2M0U59kNkOjZzsto208G6hr
+ QhGfcU8LpnJEB5xzRgedbEcHp3VRB6VySAmlbUMToGlAH59kPTOeZDdJn2M0V59gMl2eYDJdn2AyXZ9g
+ Ml2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdn2AyXZ9gMl2fYDJdnmAyXZ5hMlmfZTc9n3g6D///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGlehwFn2c2I51hMk+dYjFdnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51i
+ MV+dYjFfnWIxX51iMV+dYjFfnmIxXZ1jMlmgZjZPn2U3R6BmOD2iaTo5n2k6M55mOTOgZzo7oGc5PZ9l
+ NkebZTRTnmMyWZ1iMV2dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51iMV+dYjFfnWIxX51i
+ MV+dYjFfnWIxX51iMV+eYjFdoGQzTaJnOyOXaCgD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGsezwJnWQ0L55jM1WdYTBhnWAvY51g
+ L2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OcYC5jnWAuY51h
+ L2OeYS9hnmEvYZ1iL1+fYjBdnWIvX51iL1+eYS9hnmAvYZ1gL2OdYC5jnWAvY51gL2OdYC9jnWAvY51g
+ L2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvY51gL2OdYC9jnWAvYZ1iMVmfZjgzq2w8C///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGdZzwNn2U3N59hMludYTFjnWExZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1i
+ MWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1hMWWdYTFlnWIxZZ1i
+ MWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1iMWWdYjFlnWIxZZ1i
+ MWWdYjFlnWIxZZxiMWWeYjJhnmU2QahlPRH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGlZUARnmU1O51h
+ MV2cYTBnnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51g
+ L2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51g
+ L2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYC9nnWAvZ51gL2edYS9nnmExY59hM02faDQZp3ggA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AYVaPQOUaDgRnmY2PZxhMV+bYDFpm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tgMWubYDFrm2Axa5tg
+ MWubYDFrmmAwa5xhMWWfYjNPnm47Ia9/OQP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AZNr
+ KQOdZTkTnWU1PZtgMV2aYDFrm2AwbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtg
+ MW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtg
+ MW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2bYDFtm2AxbZtgMW2aYTJpn2U1T6BpOSWcYjcF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGpbDgPnmU2M5tiMlmaYDFtmWAwcZlg
+ L3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlf
+ L3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlfL3GZXy9xmV8vcZlg
+ L3GaYDBxnGAwa55kNk+cZzkjqFU2B////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAMAAAADAAAAAwAA
+ AAMAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wGkYDwHn2Q3I55jM02ZYDFpmV8vcZtgMXOaXzBzml8wc5pfMHOaXzBzml8wc5pf
+ MHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaXzBzml8wc5pf
+ MHOaXzBzml8wc5pfMHOaXzBzml8wc5pfMHOaYDFzmV8ycZxiM2WfZjlDo2s7F7ByQgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAMAAAADAAAABQAAAAUAAAAHAAAABwAA
+ AAcAAAAHAAAABQAAAAUAAAADAAAAAwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAUAAAAHAAAACQAAAAsAAAALAAAACwAAAAsAAAALAAAACQAAAAUAAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAABwAAAAkAAAALAAAACwAA
+ AAsAAAALAAAACwAAAAkAAAAHAAAAA////wH///8B////Af///wH///8B////Af///wGQTUMDn2o6E6Bl
+ ODebYjRbnGAwbZpgMHOZXzB1ml8wdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpf
+ L3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WaXy91ml8vdZpfL3WZXzF1ml8xc5pg
+ MmubYTVTnmc8LatkNQ2rXi0D////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAUAAAAJAAAACwAAAA8AAAARAAAAFQAAABcAAAAXAAAAGQAAABcAAAAVAAAAEwAAAA8AAAANAAAACQAA
+ AAcAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAADAAAACwAAABUAAAAdAAAAIQAA
+ ACMAAAAjAAAAIQAAAB8AAAAbAAAAEQAAAAcAAAAD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAkAAAATAAAAHQAAACEAAAAjAAAAIwAAACEAAAAfAAAAGwAAABMAAAAHAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8Bol8xCZ5iOh2cYzU9nGIzWZtgMmuZYDF1mV8wd5lg
+ MHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlhMHmZYTB5mWEweZlh
+ MHmZYTB5mWEweZlgMHmZYDB3mWAxdZthMmmcYjNVoGM3N6FnORelaz0F////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAAAwAAAAcAAAANAAAAEwAAABkAAAAhAAAAJwAAAC0AAAAxAAAAMwAA
+ ADUAAAA1AAAANQAAADEAAAAtAAAAKQAAACMAAAAdAAAAFQAAAA8AAAAHAAAAAwAAAAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcAAAATAAAAJwAAADcAAAA9AAAAPwAAAD8AAAA/AAAAOwAAADEAAAAdAAAACwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFAAAADwAAACUAAAA3AAAAPQAA
+ AD8AAAA/AAAAPwAAAD0AAAA1AAAAIwAAAA8AAAAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AZhpMgmhaT4boGU4NZ1jNU+bYjNjmWEwb5lfMXWZXzB5l18xe5deMHuYXzB7mF8we5hf
+ MHuYXzB7mF8we5hfMHuYXzB7mF8we5hfMHuXXzF7l18xe5hfMHmYXzF1mmAxbZphM2GcZDRNnGU4MZxo
+ OhemdTIH////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAUAAAALAAAAEwAA
+ AB8AAAArAAAANwAAAD8AAABFAAAASQAAAE0AAABPAAAAUQAAAFEAAABPAAAATQAAAEsAAABHAAAAQQAA
+ ADkAAAAvAAAAIwAAABcAAAANAAAABwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwAAABkAAAA1AAABSQAA
+ AFMAAABVAAAAVwAAAFUAAABPAAABQQAAACcAAAAPAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcAAAAVAAAAMQAAAUkAAABTAAAAVwAAAFcAAABXAAAAUwAAAEcAAAAvAAAAEQAA
+ AAX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGXWD0Folw7D6Fo
+ PCGaaTg1mmU1SZxjMleZYTJhmF8xZZhfM3OZXzN9mWExhZtjNIubYzSNmmIyh5hhMoWYXzN9mF8ycZhg
+ MGOZYDJfnWEzV5xjNUWcZjgxomk/HaV4OQ2iUUUD////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAMAAAAFAAAADwAAABsAAAAtAAAAPQAAAEkAAABRAAABVQEBA1cBAQVZAwMJXwoK
+ H2kQEi5xDxErcQsNH2kICBNlAwMHXQEBA1cAAAFXAAAAUwAAAEsAAABBAAAAMQAAACEAAAARAAAABwAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJCgoYHS4ucnM1NYGbNTR7oTUzeqE1M3qhNTR7oTU1fZ83OISVJSZZSQIC
+ BQ8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwICBRkwMHFnNzeCmTU0
+ fKE1M3qhNTN6oTQ0e6E0NHyhODeAlSsqX1cAAAATAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BqnNECaRvQy+kbj9NqXFBiapyQ7Oyd0bdtnpJ57p+
+ TOu/gU7vw4ZR88iJVPXKi1Xxy4xX782NWu3KjFnlxIhVy8CDUae6f097qHBFRZRiOhmIVSID////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABQAAAA8AAAAhAAAANQAA
+ AEcAAABPCAkaYRUYRH03N3qjVVOhx2JevOFnYsnlaWXQ621n2e9mYtbvYFzS61lWzelPTsDhQkGmzzIz
+ ha0fIlCFCgwdZQAAAFMAAABLAAAAOwAAACcAAAATAAAABwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkbHEEnQEG11VxX
+ 5vtqZOz7aWTs+2lk7PtpZOz7amTu+1RS4vs2NpKDCAgVDwAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHCwsRGTc4qr1fWub7aWTs+2lk7PtpZOz7aWTs+2pk7ftcWeT7OTqnpQcH
+ DRUAAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGfXVAFoW8/J6Nt
+ P3OmbT6vqG4+5a1xP/Wwc0H7sHNB/a5yQP+vc0H/sHRC/7J1Q/+ydUP/tHdE/7h6R/+9fkr/wYJN/8eH
+ Uv/Qj1j/15Ze/d6bZPnin2fx1pVg0cWKV6O5gE5bom5AG////wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAUAAAAPAAAAIQAAADkAAABLDxAqZTw7gaVpZMDbhXzd84R77/tvaO/9Xlns/1RP
+ 6P9KR+T/QD/h/z083/89PN//Pz7h/0NC5f9EQ+X/R0bk/UdH0vU/QLbdMDB/qRUVMWsBAQJPAAAAPQAA
+ ACcAAAATAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCc0N7PVKSzT/y0v1f8uMNb/LjDW/y8w1/8+P+b/PUDj/zU1
+ k4cKChcPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcMDBEZMjSpvSot
+ 0f8tL9b/LjDW/y4w1v8uMNb/Oz3k/0BD5f8zNKepDAwSFQAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGkcUgPo25BRaRrPZuhaTjXo2o496JoNv+gZjX/oGY1/6BmNf+gZjX/n2U0/59l
+ NP+gZjX/oWc1/6FmNf+hZzb/o2k3/6VqOP+mazn/qG07/6xwPv+wdEH/t3pG/8KET//Qj1j/25lh/d6c
+ Y/PRklvHuX9Pe6lyRjGbbEAJ////Af///wH///8B////Af///wEAAAADAAAACwAAAB0AAAA1BAUMTSIj
+ UntiXrnZhHzp+XJs8P9OTOX/Nzja/yst1P8mKdH/JSfQ/yQnz/8jJs//IybO/yMmzv8jJs7/JCfP/yQo
+ 0P8mKtH/LS/W/zM02f85O9X7Njez4SgqcpcLDBpXAAAAOwAAACEAAAANAAAABf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzU3
+ stUmKtD/JSnP/yUpz/8lKc//Ki3U/0JG7P8/QuP/NTWThwoKFw8AAAAF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAABwwMERkzNaq9KCvP/yUpz/8lKc//JSnP/ygr0v9AQ+r/Q0bn/zQ2
+ qKkMDBIVAAAABf///wH///8B////Af///wH///8B////Af///wGlcUUFpGtAKaFqPJ+iaDjrn2Q0/51i
+ Mf+bYTH/nGEx/5thMf+bYTH/nGEx/5thMf+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/m2Ex/5th
+ Mf+cYTL/nWMy/59lNP+jZzb/p2s6/6xwPv+zdkL/voBL/8+OVv/WlFz7zIxX37V9TYWkcEUV////Af//
+ /wH///8BAAAAAwAAAAcAAAAVAAAALQUGD0kuMXOVamXS7XRt8P9GReH/LjDV/ycq0P8lKc//JSnP/yUp
+ z/8mKtD/JirQ/yYq0f8nK9H/JivR/yYq0P8mKtD/JSnP/yUpz/8kKc7/JSjP/ygs0v8uMdf/NDfF8y4w
+ i7ENDSFTAAAAMQAAABcAAAAH////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkcHEAnNjmy1Skt0P8oLM//KCzP/ykt0P8vM9b/RUnt/0FF
+ 4/81NpOHCgoXDwAAAAX///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAHDAwRGTQ3
+ qr0qLs//KCzP/ygsz/8oLND/LTHV/0NH6/9FSef/NTeoqQwMEhUAAAAF////Af///wH///8B////Af//
+ /wH///8BonNGE6JsPnmhZzblnWIx/ZpgL/+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYTD/nWMy/6Fm
+ Nf+nazn/rHA+/7R2Q//BgU3/yopU+72ATcGmcUVFnWlAA////wEAAAADAAAACwAAACEBAQQ/LC1sjV9c
+ 0vNaV+z/LzLV/ykt0P8oLM//KCzP/ygsz/8oLND/Ki7S/y8z2P80ON3/PkLk/0pN6f9GSuf/QETk/zg8
+ 4P8wNNj/LDDT/ygs0P8oLM//KC3Q/you0v8xNdn/MzfK+y4xhKkCAgQ/AAAAIwAAAA0AAAAD////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwc
+ QCc3OrPVKy/R/you0P8qLtD/Ky7Q/zE11/9HS+7/Qkbk/zU3k4cKChcPAAAABf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcMDBEZNTervSww0P8qLtD/Ki7Q/you0P8vM9X/Rkrs/0dL
+ 6P81OKmpDAwSFQAAAAX///8B////Af///wH///8BmWVEA6RtQDmiaTrDnmQz/5pgMP+aYC//mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5lgMP+aYDD/mmAw/5phMP+eZDP/omc2/6ZqOP+tcD7/untH/76A
+ S++rc0SBnm9CFQAAAAUAAAATAAAALSQkW29RUMvtTU3n/y4x0/8qLdD/KS3P/yktz/8pLdD/Ki7Q/y4y
+ 1f87P+H/VVn1/3B0/P+UmP7/rrL+/8DE/v/Gyv7/tbj8/4KG+P9OUuv/Mzfa/yww0/8pLdD/Ky/R/zI2
+ 2f84PN7/NjnH9SYpaX0BAQQvAAAAEwAAAAf///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzc6s9UsMdL/LDDR/yww0f8sMNL/MjbY/0lN
+ 7/9ESOX/NjeThwoKFw8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwwM
+ ERk1N6u9LjHR/yww0v8sMNH/LDDS/zA01v9HS+z/SEzp/zY5qakMDBIVAAAABf///wH///8B////AaJ+
+ VQWhbT9ln2Y225xiMf2aYC//mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pgMP+aYDD/mmAw/5pg
+ MP+aYDD/mmAw/5pgMP+bYDD/nGEx/6BlNP+laTf/rXE+/7N2Q/WsckOljF46IwAAABkHBxE9QUGow0dI
+ 3/0vM9T/LDDR/yww0f8sMNH/LDDR/yww0f8uMtT/NTnb/0NH5P9JTOD7UVXb6VZa1+NZXNrjZmne7Xl8
+ 5Pmho/L/y8/8/6+z/f9kaPL/ODzd/y0x0v8sMNH/MDTV/z1B4v9AROT/Nzqv0xISLkMAAAAbAAAACQAA
+ AAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAkcHEAnODu01S4y0/8tMdL/LTHS/y4y0/80ONn/S0/w/0ZK5v83N5OHCgoXDwAAAAX///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAHDAwRGTY4rL0vM9L/LTHS/y0x0v8tMdL/MjbX/0lN
+ 7f9KTun/NzmpqQwMEhUAAAAF////Af///wGlb0EJo24/aZ9mNeucYTD/mmAv/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5pgMP+aYDD/m2Ew/51j
+ Mf+gZTP/pmk3/6tvPPumbT61UjUhNSkra3VFRtH1NTfX/y0x0v8tMdL/LTHS/y4y0v8uMtL/LjLT/zE1
+ 1P83O8jrPD+7qT4/sGk9PalDOzynNzw8qjc7Pa1JPT6uX0NEv5NcX9DdlJfv/Zmd/P9PU+z/NDjZ/y4y
+ 0/8vM9T/OT3e/01R8f8+Qtf9KCpybwICAx8AAAALAAAAA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCc5O7TVLzPU/y4y0/8uMtP/LzPT/zY6
+ 2v9NUfH/SEvn/zc3k4cKChcPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAcMDBEZNjmtvTE00/8uMtP/LjLT/y8z0/80ONn/S0/u/0tP6v84OampDAwSFQAAAAX///8Bp29BCaNr
+ PXGhZzXznGEw/5thL/+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+cYTD/nGIx/5xiMf+cYjH/nGIx/5xiMf+cYTD/m2Ew/5thMP+bYTD/m2Ew/5th
+ MP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5thMP+bYTD/m2Ew/5xhMP+eYjH/omY0/6hsOfuVYjexQj+ZuTw+
+ 2f0wM9T/LzPT/y8z0/8vM9P/MDTU/zE11v8xNdX/Oz6/3T5BqU9DQ6AP////Af///wH///8B////Af//
+ /wH///8BQ0ORBzs7njFDRr7Jb3Pv/Wlt+v9AROT/MjbW/zA01P82Otr/S0/v/01Q7v83OqGzDxAlJwAA
+ AAsAAAAD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAJHBxAJzo8tdUyNdX/MTTU/zE01P8xNNT/ODvb/09S8v9KTOj/NzeThwoKFw8AAAAF////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAABwwMERk3Oa29MzbU/zE01P8xNNT/MjXV/zc6
+ 2v9NUO//TlDr/zg6qqkMDBIVAAAABah3RQejbT9poWY185xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+dYjH/nmMy/6NmNP+majj/p2s5/6ls
+ Ov+pbTv/qGw6/6ZqN/+iZjT/nmMy/51hMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+cYTD/nGEw/5xhMP+eYjH/oGUz/6NnNf1wVof7NTjW/zE11P8xNdT/MTXU/zI21v81Odn/Nzva/zk8
+ xOlAQp5B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABTU3izU9QL3VTlLs/0hM
+ 6v8zN9b/MTXV/zU52P9FSej/Wl/4/z5AvtUeH081AAAACwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnOz221TQ31v8zNtX/MzbV/zM2
+ 1f86Pdz/UVTz/0xO6P83N5OHCgoXDwAAAAX///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAHCQoRGTc6rr00N9X/MzbV/zM21f8zNtX/OTzb/09S8P9PUuv/OTqqqQwMEhUAAAAFom09UaJo
+ NuudYjD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xh
+ MP+dYjD/nmMx/6FlM/+lajb/rW88/7Z3Qv+9fkj/woFL/8KCTP/BgUv/vH1I/7N1Qf+tcD3/qGw5/6Jm
+ NP+eYzH/nWIw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/5xhMP+cYTD/nGEw/51iMP+dYjD/nmMx/51m
+ PP9UR6n/NDnZ/zc72/84PNv/Nzva/z5C4P87PtT7PkCrfSIiSQP///8B////Af///wH///8B////Af//
+ /wH///8BAAAAAwAAAAcAAAAPAQEDGzExhns4PM75NzvZ/zM31f8zN9X/NTnX/0FF5P9cYPv/QEPI5Sst
+ cEMAAAAJAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAACRwcQCc8PrbVNjnX/zU41v81ONb/NTjW/zw/3f9TVvP/TVDo/zY4k4cJCRURAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAAAAcGBhEbODquvTY51v81ONb/NTjW/zU4
+ 1v87Pdv/UVTw/1FU7P86O6upCwsRE5xoPC+haDjRnmMx/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/55jMf+iZjT/qW06/7BzP/u6fEbnwoNN4cmJ
+ U9vQjljb2JZd4d+cYe3fnWP925dd/82MU/+9fkf/r3E9/6ZpNv+fZDL/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nmMv/5RpYv+HheL/gob2/3d69f9dYOv/Q0fl/zxA
+ yNs6Opcj////Af///wH///8B////AQAAAAMAAAAFAAAABwAAAAkAAAANAAAAFQAAAB8AAAAxICBVZzs+
+ yvU1ONj/NTjW/zU41v82Odj/QEPi/1tf+v9DRs/xMjOBSQAAAAf///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJzw/ttU4O9j/NjnX/zY5
+ 1/83Otf/PUDe/1RX9P9PUen/NjeQiQcHDxUAAAANAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAA
+ AAkAAAAJAAAADQUHDh84O6y/ODvX/zY51/82Odf/NzrX/zw/3P9SVfH/UlXs/zo7q6kuHxoZomo6v59k
+ Mv2dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+fYzH/o2c2+ahtPNOqckCPq3RDaap3RD+pdEUxqHVGJ6p1SCeud0g1sHhIS72DUHPPkFqz2ZZf49qW
+ XfnEgkz/rnA9/6NnNf+fZDL/nmIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51iMP+dYjD/nWIw/51i
+ MP+dYjD/n2Uz/7OUkP+6vPX/v8L8/7e7+/9bXuj/Oz69qT09egsAAAADAAAABQAAAAUAAAAJAAAADQAA
+ ABEAAAAVAAAAHQAAACUAAAAvAAAAOwAAAEckJWKDP0LO9zc62f82Otf/NjrX/zg72f9AQ+H/WVz4/0NG
+ 0O80NYhFAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAkcHEAnPT+21Tk82f84O9j/ODvY/zg72P8/Qt7/Vln0/1BT6f8zNYiRBAQIJQAA
+ AB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAfAwMJLTc7qsM6Pdj/ODvY/zg7
+ 2P85PNj/PkHd/1RX8v9UV+3/Ojyrq49eOG+hZTT5nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/nmIx/55i
+ Mf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/oWU0+6NrOtOlbkFxpW9AIaqBRQX///8B////Af//
+ /wH///8B////Af///wH///8B////AYZbMQ2sdkYtu4BMg8eHUvG9fEj/qmw6/6NmNf+fYzL/nmIx/55i
+ Mf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYjH/nmIx/55iMf+eYTD/mGND+2NYqtdRVdHXXF/U509S
+ ze0/Qq9tICAuBwAAAAsAAAAPAAAAEwAAABsAAAAhAAAAKQAAADEAAAA5AAAAQQAAAEsAAABRCwwdYUND
+ o8VQUOP/OT3Z/zg82P84PNj/OT3Z/0JG4v9VWfX/QkTM4zY3iDUAAAAD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCc9QLfVOj7a/zk9
+ 2f85Pdn/OT3Z/0BD4P9XW/X/UVXq/y4yfpsCAgQ/AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA
+ ADsAAAA7AAAAOwAAAD0CAgZFNzqlyTo+2P85Pdn/OT3Z/zo+2f8+Q97/VVny/1RY7v9LRJ2/nmY24Z9j
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/6Jo
+ N+2kbj57pHhGGf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGVaTsDpnBDPbN5Rr+0dUH9p2o3/6FlM/+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+gZDH9oGk9oU1Ghxc7OYwbPDuPHx0dPxMAAAAVAAAAHQAAACUAAAAvAAAAOQAA
+ AD8AAABHAAAATQAAAFMAAABVAAABWRobTIFeW6rNd3Ts+0tN5P85Pdn/OT3Z/zk92f86Ptr/RUjk/01R
+ 7f8/QsTJNTaFHf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJHBxAJz5Bt9U8QNv/Oz/Z/zs/2f87P9r/QUXh/1hc9f9TV+r/LS13pQEB
+ A1UAAABVAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQEBBFk2OKLNPEDZ/zs/
+ 2v87P9n/Oz/a/0BE3/9WWvP/Wlzo/39da/ehZDH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59j
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/6BjMf+iaDfVo3BAR593Rwn///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpXBBF6xyQaerbjv7o2Y0/6Bk
+ Mf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+fYzH/n2Mx/59jMf+iZzbrnGQ9MwIB
+ AA0AAAAXAAAAIwAAADEAAAA7AAAARQAAAE0AAABTAAAAVQICCFsRETFvIB9Rg0pHhatsaLPXl5De846H
+ 8/9UVuj/PEDb/zs/2f87P9n/Oz/a/z1B2/9ESOP/Rkrk/z5AsaE0NHwJ////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnP0G31T1B
+ 3P89Qdr/PUHa/z1B2/9DR+H/Wl71/1VZ6/88PI/DLi1hiy0sYo0tLGKNLSxijS0sYo0tLGKNLSxijS0s
+ Yo0tLGKNLSxijS0sYo0tLGGLLSxijT5Aq9s+Qtn/PUHa/z1B2v89Qdv/Qkff/1hc9P9pY9T/mmRD/6Bj
+ MP+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+hYzH/o2c326Jt
+ Pj+geEoD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8Bp3FCG6lvP6emaTf7oWQy/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bj
+ Mf+gYzH/oGMx/6BjMf+gYzH/oGMx/6FkMv2cZTqdEw0IIQAAADMAAABBAAAASwAAAFEBAQRXCwwjZyEh
+ S39GRYGlXVqjx4R+yeWYkOHzmpLw+4yF9P9oZ+7/Sk3j/z9C3P89Qdr/PUHa/z1B2v89Qdv/P0Pd/0RI
+ 4v9DRtL7P0GmSSwsYwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCc/QrfVP0Pd/z5C2/8+Qtv/P0Pc/0VJ4v9cX/X/bGz0/314
+ 4/uAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3gHrl94B65feAeuX3eXXl/UtO
+ 3/8+Qtv/PkLb/z9D3P9ESOD/Wl70/4JpnP+gZDL/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bj
+ Mf+gYzH/oGMx/6BjMf+gYzH/oGMx/6NnNu2ibD5Pl4VGA////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpW5CI6Vq
+ OcOjZjP/oGQx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6BjMf+gYzH/oGMx/6Bm
+ N+cxIRRNAAAASwEBBFcKCx5jKitZh0pJja93c7nXk4za8Z6W7vuVj/b/fXnz/2Vk7f9SU+b/Rkjh/0FE
+ 3f8+Qtv/PkLb/z5C2/8+Qtv/PkLb/z5C2/9ARN3/Qkbe/0FEv8c/QI4T////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0BD
+ uNVBRd7/QETc/0BE3P9ARNz/Rkri/1FU7P9PUeX/UFLl/1BS5f9QUuX/UFLl/1BS5f9QUuX/UFLl/1BS
+ 5f9QUuX/UFLl/1BS5f9QUuX/UFLl/1BS5f9RUuX/SUvi/0FF3f9ARNz/QUXd/0VK4v9hX+H/l2pd/6Bk
+ L/+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+iZjP7pWw9h5mA
+ TAX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BpW0/VaNnNfWgZDH/oGQx/6BkMf+gZDH/oGQx/6Bk
+ Mf+gZDH/oGQx/6BkMf+gZDH/oGQx/6BkMf+gZDH/omYz/18/JIcOECppNzd2oXl1uNmhmeX3pJv0/42H
+ 9/9savD/VFXo/0hK4v9DRt//QUXd/0BE3P9ARNz/QETc/0BE3P9ARNz/QETc/0BE3P9ARNz/QETc/0FF
+ 3f9BRcrtQkSoSUpKlgP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAkcHEAnQUO41UNG3/9CRt7/Qkbe/0JG3v9DR9//Qkbe/0JF
+ 3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG3v9CRt7/Qkbe/0JG
+ 3v9CRt7/Qkbe/0JG3v9DRt7/R0vk/3hiov+gZjb/oWQw/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6Fk
+ Mf+hZDH/oWQx/6FkMf+hZDH/oWQx/6NpOcOlc0MV////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGpbkMJo2o7paJlMv2hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6Fk
+ Mf+hZDD/j2Va8YeAze+on/X9iYT3/2Rj7v9OUOb/Rkjh/0NH3v9CRt7/Qkbd/0FG3f9CRt7/Qkbe/0JG
+ 3v9DR97/Q0ff/0RI4P9FSeH/Rkri/0ZK4v9ESN//QkXL6UBBq1////8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwc
+ QCdCRLjVRUjg/0VH3v9FR97/RUff/0dK4f9IS+P/SEzj/0hM4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hM
+ 4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hM4/9ITOP/SEzj/0hL4/9JTOP/Rkjg/0VI3/9JTOX/iGN5/6Fk
+ MP+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+hZDH/oWQx/6FkMf+jZjT7o2w8aaSI
+ TwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGlbUJJo2c18aFkMf+hZDH/oWQx/6Fk
+ Mf+hZDH/oWQx/6FkMf+hZDH/omUx/6JlMv+jZTL/omUy/6JlMf+kcE7/hXjY/1xb6/9LTeP/RUng/0VI
+ 3/9ER97/RUjf/0VI3/9FSN//RUjf/0ZJ4P9HSuH/SEvi/0pN4/9MUOf/UVTr/1FU6/9NUOj/SEvc/0RG
+ x9VBQq1XOTmeB////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0NFudVHSuH/Rknf/0ZJ3/9HSuD/TVDm/2hr
+ 9P+Ag/j/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE+P+BhPj/gYT4/4GE
+ +P+BhPj/fYD4/1xf7P9HSuD/R0rg/1JR2P+WZVL/omQv/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6Jk
+ Mf+iZDH/omQx/6JkMf+iZDH/omQx/6NpONWlckEl////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AaZtSAekaTm9o2Uy/6JkMf+iZDH/omQx/6JkMf+iZDH/o2Uy/6NlMv+lZjP/pWcz/6do
+ Nf+qajX/q2w3/6JqRP9kVrP/R0rh/0ZJ3/9GSd//Rkng/0dK4P9HSuH/SEvi/0pN4/9MT+b/TlHp/1NW
+ 7P9ZXPH/XF/1/11h9/9XWvH/TE/h/UdKz+VDRrqTQkOrNTo9igX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA
+ AAkcHEAnQ0a61UlM4v9IS+H/SEvh/0hL4f9OUef/bXD5/6Sn/f+usfv/rrH7/66x+/+usfv/rrH7/66x
+ +/+usfv/rrH7/66x+/+usfv/rrH7/66x+/+usfv/rrH7/66x+/+Qk/P/UVTj/0hL4P9IS+L/Z1iz/59l
+ Ov+iZDD/omQx/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6JkMf+iZDH/omQx/6JkMf+jZTH/pGs7n6Bx
+ Pgf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaNqPGOlZzT3omQx/6Jk
+ Mf+kZjL/pGYy/6VmMv+mZzP/qGk1/6prN/+rbTn9qG5D/5xtZf99YY7/YlW3/0xM2P9HSuD/R0rg/0dK
+ 4P9JTOL/Sk3j/01Q5v9SVer/WFvw/2Fk9v9navr/Z2r7/2Fk9/9ZW+39UVPd9UdKyNtBQ7KRPDyaOyws
+ aQsAAAAHAAAABwAAAAcAAAAFAAAAA////wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCdER7rVSk3j/0pN4v9KTeL/Sk3i/1BT
+ 6P9navn/YmXw/0xNw9tOUMfDT1HKwU9Sy79PUsu/T1LLv09Sy79PUsu/T1LLv09Sy79PUsu/T1HLv05R
+ ycFNT8XFTE7M8UtO4f9JTOH/Sk3i/0pN4/9/YIT/o2Yx/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6Nl
+ Mf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6RnM/+ibj1N////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BpHFCNaRoNuekZTH/pWcz/6doNP+pajX/rG03/65vOv+sbzz1pGo7yX9b
+ V8VtY7/3WVjj/0hM5f9ITOP/SUzh/0lM4f9JTOH/S07j/05R5v9VWO3/YmX4/2ls/P9pbPz/ZGf2/1lb
+ 5v9NUNP3SErEw0RFtZE6OphbJydgKwoKGB0AAAAbAAAAGwAAABkAAAAXAAAAFQAAAA8AAAAHAAAAA///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAJHBxAJ0VHu9VMT+T/S07i/0tO4v9MT+P/UlXp/2ls+v9iZe//ODiTiR4eSBcvL3YNNTWNCzU1
+ kgs1NZILNTWSCzU1kgs1NZILNTWSCzU1kgs1NY4LLCxsDRcXOiFAQ7LBTE/i/0tO4/9LTuP/TE/j/49j
+ Zf+kZTD/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+jZTH/o2Ux/6NlMf+kZTH/pWk236Ny
+ Px3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGoaEMFpms4sahp
+ NP+tbTf/r3A8/65xPd+scT+3pW4/dYtbODMpHiYzRUa0wVdY6f9LTuP/S07i/0tO4v9LTuL/S07j/0xP
+ 5P9RVOn/Wl3y/19i9v9aXez/UVTa8UtNystHSLqbQ0SvX0FBoCk4OIkNCgoZBwAAARsAAAAxAAAAPQAA
+ AD8AAAA9AAAAOQAAADcAAAAxAAAAJQAAABMAAAAH////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnRUi81U1Q5f9NUOP/TVDj/01Q
+ 5P9UV+v/a277/2Rm8P83OJWHCAgWDwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAAFBgcRGUFEs71NUOP/TVDk/01Q5P9OUeH/nGdI/6RlMP+kZTH/pGUx/6RlMf+kZTH/pGUx/6Rl
+ Mf+kZTH/pGUx/6RlMf+kZTH/pGUx/6VmMf+kajm5oHdCD////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGlbj1prXE+061yQKOqckJfpnNEKaVxQxF2UzIHAAAACyQk
+ WkVNT83nUVPn/01Q5P9NUOT/TVDk/05R5f9OUeX/T1Lm/1JV6P9OUdjzSkzHwUZHu3VERK87QkKmGT4+
+ mgk7O40D////AQAAAAUAAAAVAAAALQAAAEMAAABRAAAAVQAAAFMAAABTAAAATwAAAEcAAAAzAAAAGQAA
+ AAn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAACRwcQCdGSLzVT1Lm/05R5P9OUeT/T1Ll/1ZZ7P9tcPv/ZWjw/zc6locICBcPAAAABf//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcGBhEZQkSzvU9S5P9OUeT/TlHl/1lV
+ 0v+iaD7/pWYw/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH/pmcx/6Nr
+ OpWdcTwF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaFv
+ Qg+kcUIlonNHC6qIVQP///8B////AQAAAAMAAAANMTF/Y09Q2PVPUub/T1Ll/09S5f9QU+b/U1bq/1VY
+ 7P9OUd/9RknBzz5ApF07PZgbLi5xBQAAAAMAAAADAAAAAwAAAAMAAAAFAAAADQAAACETFDFJNDRzizQ0
+ a48vMGaRKipahyMiSn8fH0Z5HBxEax0eSU0ICBUbAAAAB////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHBxAJ0dJvNVRVOf/UFPl/1BT
+ 5f9RVOX/V1rs/29y+/9navD/OTqWhwgIFQ8AAAAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BAAAABwYGERlDRbO9UVTl/1BT5f9QU+b/aVu4/6RnN/+lZjD/pWYx/6VmMf+lZjH/pWYx/6Vm
+ Mf+lZjH/pWYx/6VmMf+lZjH/pWYx/6VmMf+lZjH9o289daJ3QQP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAwAA
+ AAk5O5JzUlTg+1JV5v9RVOb/UVTm/1NW6P9bXvD/YGP0/0lLxOUhI1ZJAQEEFQAAAA0AAAAJAAAABwAA
+ AAcAAAAHAAAACQAAAA8AAAAbAAAAMS4udIFratvziITq+YeC5vmHguT3hYDg9YSA3vOBfdvxXVzE3ycn
+ aysAAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAkcHEAnSEq91VNW5/9SVeb/UlXm/1JV5v9ZXO3/cXT8/2ls8f86OpaHCAgVDwAA
+ AAX///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAHBgYRGURFtL1TVeb/UlXm/1JV
+ 5/9zX6X/pmYy/6ZmMf+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6Zo
+ NP2lckJP////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BAQEDBzw+mnNRVeD7UlXn/1JV5/9TVuf/Vlnr/2dq
+ 9/9navP/Pj+juQEBA0MAAAAxAAAAJQAAAB0AAAAZAAAAGQAAABsAAAAfAAAAJwAAADUAAABHP0GgvVpb
+ 6f1cXuz/X2Dt/2Jj7/9kZfD/aWnz/3R1+/9TVtDnLTJ4JwAAAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAACRwcQCdISr3VVVjo/1RX
+ 5/9UV+f/VFfn/1pd7v9ydfz/a23x/zo6locICBUPAAAABf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAcGBhEZQ0W0vVRX5v9UV+f/U1fo/3tilf+nZzD/pmYx/6ZmMv+mZjL/pmYy/6Zm
+ Mv+mZjL/pmYy/6ZmMv+mZjL/pmYy/6ZmMv+mZjL/pmk1+6RuPyX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEAAAADOTuVW1BT2/dVWOn/VFfo/1RX6P9YW+z/bXD5/3Bz9v8/QaPFBQUNWQAAAEsAAABDAAAAOwAA
+ ADcAAAA3AAAAOQAAAD0AAABFAAAATRgZQHVXV87tWlzt/1RW5/9TV+j/U1fo/1RX6P9dYPD/aGv5/0tN
+ xs8uK3cZ////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAJHBxAJ0lLvdVWWen/VVjo/1VY6P9WWej/XWDv/3N2/P9sbvL/OjqWhwgI
+ FQ8AAAAF////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABwYGERlERrS9Vlnn/1VY
+ 6P9WWef/gmOK/6dnL/+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6Zn
+ Mv+majb5oW0/F////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAM6PJQ/T1LV7Vpd7v9ZXOz/Vlnp/1hb
+ 6/9jZvT/bHD6/1NW1/c0NYOtCwscZQAAAVcAAABTAAAAUQAAAFEAAABRAAAAVQEBBFkSEjNvW1mr0XJy
+ 8P1YWuv/VVjo/1VY6P9VWOj/V1rq/19i8v9eYe//RUiznzIjawn///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAkcHEAnSUu91Vda
+ 6v9XWun/V1rp/1da6f9eYfD/dHf8/21w8v86OpaHCAgVDwAAAAX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEAAAAHBgYRGUVHtL1XWuj/V1rp/1ha5f+HZYD/p2cv/6ZnMv+mZzL/pmcy/6Zn
+ Mv+mZzL/pmcy/6ZnMv+mZzL/pmcy/6ZnMv+mZzL/p2cy/6ZpN/embD8R////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////ATY2fQ9LTsXJYmXz/2Nm9P9bXu3/WFvr/1pd7f9jZvX/YGLx/1lb3vtLTLDRODqApygo
+ V4ccHD95FBUycRgYN3MwMWKPSkmHrYWAxuWgmfH9bW7z/1ha6v9WWen/Vlnp/1da6f9aXez/X2Ly/1ZZ
+ 3/VBRKVZKChfA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAACRwcQCdKTL3VWl3r/1lc6v9ZXOr/Wl3q/2Bj8f93ev3/b3Lz/zo6
+ locICBUPAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAcGBhEZRke0vVlc
+ 6P9ZXOr/Wl3m/4hmf/+oZy//p2cy/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2cy/6dnMv+nZzL/p2cy/6dn
+ Mv+nZzL/pmk366pzRA////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AUVHsntnaen3gYT9/2pt
+ 9/9eYfD/WV3r/1te7P9bXu3/XF/u/29v9v9+e/D9f3zk94F92/WGgtjzlY/c86eg5vmyq/H9npr7/2tr
+ 8/9bXuz/WFvq/1hb6v9YW+r/WVzq/1te7P9aXer/TE7EwzU1fRH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAJHR1BJUtN
+ vtVcX+z/W17r/1te6/9cX+z/YmXy/3l8/f9xdPP/OzuWhQgHFA8AAAAF////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BAAAABwcHEhlHSbW9W13q/1te6/9dX+f/imd7/6loMP+oaDL/qGgy/6ho
+ Mv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+nazjjpnNID////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BPkCiHVNUy8mPkvn/oKP+/3N2+v9hZPL/W17t/1pd6/9aXev/W13s/19h
+ 7v9kZvH/bGz0/3Z29/96efj/dHP2/2lp8/9gYe//W13r/1pd6/9aXev/Wl3r/1pd6/9bXuz/XF/s/1NW
+ 1/FDRKhT////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAcgIEkhTE+/1V5h7f9dYOz/XmHt/2Bj7/9kZ/P/en39/3N1
+ 8/87PZiDCAkYDQAAAAP///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAFCAgUFUhK
+ t7tdYOv/XF/s/2Bh5/+Oanj/qWgw/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6hoMv+oaDL/qGgy/6ho
+ Mv+oaDL/qGgy/6drONuidkQN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BRESsN2Jk
+ 1de3uvz/0dP+/5mc/f9ydfr/ZGfz/19i7/9dYOz/XF/s/1xg7P9dX+z/XGDs/11g7P9dYOz/XWDs/11g
+ 7P9dYO3/XmHt/15h7f9eYe7/X2Lu/15h7v9XWt31SEq2f0FClgv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAAykp
+ XRtOUMHTX2Lu/2Zp8P9xdPj/c3b6/3R3+v9/gv7/dHb0/z4/oX0PECsHAAAAA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////AQAAAAMMDSAPSk27t15h7P9laO//cnT0/5NyiP+qaTH/qmkz/6pp
+ M/+qaTP/qmkz/6ppM/+qaTP/qmkz/6ppM/+qaTP/qmkz/6ppM/+qaTP/qWw526J2RA3///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wFAQJcFR0iwUWZo1dnCxPn/6ur+/8rL/v+gov7/goX7/3Bz
+ +P9oa/T/ZGfy/2Jl8f9hZPD/YmXw/2Jl8f9jZvL/ZWjz/2hr9P9pbPX/am33/2Zp9f9hZO//V1rb90pL
+ u5M/QKAR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BNTl/E09RxM96fPP/t7r7/8TG///Exv//w8b//7W4
+ //97ffT/QUOodxocUQX///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ARka
+ QAdLTb+1cHPv/7G0+v/Exfz/tZWU/65tN/+wbjr/sG46/7BuOv+wbjr/sG46/7BuOv+wbjr/sG46/7Bu
+ Ov+wbjr/sG46/7BuOv+tbz7bonZEDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wE1N48FPj+lNV9izcOen+752dn7/+zt/v/j5P//yMr+/7Cz/v+go/7/lpn9/4uO+/+Mjvz/jY/8/4qN
+ /P+Kjf3/jI/+/4GD/v9ydPn/YWPr/VRX0uFHSrNvQUOgE////wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wE9P5cRUFG/z3x+6f+Tler/k5Xq/5OV6v+Tler/kZPr/3J05v9CRax1MzOIA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BNTqMBUlNu7N1d+b9kpTr/5KU6f+fgZP/uHVF/7h2
+ R/+4dkf/uHZH/7h2R/+4dkf/uHZH/7h2R/+4dkf/uHZH/7h2R/+4dkf/uXZI/7J0Rummd0QP////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BOz6hFUVItHVdX8zBfX/c97Cx
+ 8//Q0f7/4OH+/+Hj/v/Z2/7/zc/+/7/B/v+wsv7/oqT+/5OV/v90dvD/YWPg/VNVzNFHSLOHQkOrNSMl
+ WwP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AUREiANCRKk/QUSuWz9Crls/Qq5bP0KuWz9C
+ rls/Qq1dQ0auXURErBf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BREWqJ0FFrlk+Qq5bPUCtW45mZKe9ekz/vHlM/7x5TP+8eUz/vHlM/7x5TP+8eUz/vHlM/7x5
+ TP+8eUz/vHlM/7x5TP+8eUz/tHZJ76N0RhH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AS4lgAk1OqIpQESxaUtMuJVaXMq1XmDQx2Bi1NFgYtPXWlzOzVZY
+ zsNSU8azTE69p0VGrm1AQqovOTmcDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wEvOokDKTqAAyk6gAMpOoADKTqAAyw7gQM2NogD////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BKzuHAyk6gwM1N3gDqnNHb7x6
+ Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+8eU3/vHlN/7x5Tf+0d0r5o3ZEF///
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wEsLIgDLS2XBTg5rA05NaYVOjyiGz0+pB86P6AZPT6iEzs8pgs7PqEHNTWIA////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGncUNfunlN/bx6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6
+ Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7d3S/uldEcv////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AaZx
+ QTe5eUz3vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/vHpO/7x6Tv+8ek7/uXlN/ahx
+ RlOSaEgD////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bo3JGD7h4TO+9e0//vXtP/717T/+9e0//vXtP/717
+ T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0/9qXJEc5tzOgP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGRckkDsnZI2b57T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0//vXtP/717T/+9e0//vXtP/718
+ T/+sdEebonZFBf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGwdEe5vnxQ/718UP+9fFD/vXxQ/718
+ UP+9fFD/vXxQ/718UP+9fFD/vXxQ/718UP+9fFD/vXxQ/7J2S7eqcUQN////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Aa50R3+9fVD7vXxR/718Uf+9fFH/vXxR/718Uf+9fFH/vXxR/718Uf+9fFH/vXxR/718
+ Uf+9fFH/t3lN8alzRjP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8Bn25BCZltQAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bp3BCUbp7T/W9fVL/vX1S/719
+ Uv+9fVL/vX1S/719Uv+9fVL/vX1S/719Uv+9fVL/vX1S/719Uv+7fFH/rXRHaZloNAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaZ1Qw24gFGJwI1bg7J/UU2seU4ZrHZIC55t
+ QAP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGmcUAZuHlO1b99U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759
+ U/++fVP/vn1T/799U/+xdkqvpHVDDf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BqXBGPcSHWuvxuYj/9L+N+eGufO/XpXXHyJVmibF9T2GldEUrnmBACf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGwdUihvnxS/b59
+ U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/7l7T+2pdEc/////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGudUmBvn1S+8yJXv/hnG//7Kh5//Oz
+ g//2vIr99b+N++q2hOvbp3fVy5lqo8OMXmeud0o7oG4/Gf///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////AatyR127fFH3vn1T/759U/++fVP/vn1T/759U/++fVP/vn1T/759
+ U/++fVP/vn1T/759U/++fVP/vX5T/7J4TJebaz4J////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BpG5AC7V5TdG+flT/v39V/8mHXP/QjGD/1ZFk/9uXav/jnnD/6ad4//Kzg//zuIf987yK+ey6
+ iOvdqnjRu4lZnaJuPhv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bpm9BI7Z5
+ TtO/flT/vn5U/75+VP++flT/vn5U/75+VP++flT/vn5U/75+VP++flT/vn5U/75+VP++flT/unxR56x0
+ SEv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRuRAOrc0dfvX5T975+VP++flT/vn5U/8CA
+ Vv/Dglf/x4Va/8uIXf/PjGH/1JBk/9qWaf/inW//5qR1/9ygcf/BiFrVonFCIf///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wG6dzMDr3VJgb9/VPu/f1X/v39V/79/Vf+/f1X/v39V/79/
+ Vf+/f1X/v39V/79/Vf+/f1X/v39V/79/Vf/AgFX/tntOw6BuQhv///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8BpHVFH7R5TdPAf1X/v39V/79/Vf+/f1X/vn9V/75/Vf+/f1X/v39V/8GAVv/Eglj/xoVa/8eG
+ W//Cglf/v35V/7B1SZWldE0H////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGtckcpuXtQ579/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/
+ Vv/EhFn9tntQtaNrQQ////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaVwQQ2wd0qhv39V/79/Vv+/f1b/v39W/79/
+ Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+/f1b/v39W/79/Vv+9flT/rHdHRZN0NAP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////AaRvRQ2vdUqjv4BW/7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/8KDWf/LimD9u35VpaZwRhn///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGmbkIPr3dKhb1/VPe/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+AV/+/gFf/v4BX/7+A
+ V/+/gFf/v4BX/7Z6T9mkckER////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AahyRi24fFLlwIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wYFY/8iIXv/Vk2j7xYldubB6TDuiaUAF////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8Bp3FHKbJ4TJ2+f1X1wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP++gFb7rHRHe5VzMgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpnJFBax0SYW/gFf7wIFY/8CB
+ WP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/xYVc/9KQZf/loHP/25xu27yG
+ WX2mdEkjl2c8Bf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGjZ0ADpnBEEax0
+ SVm3e1DXwIFX/cCBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CBWP/AgVj/wIFY/8CB
+ WP/AgVj/wIFY/7l8Utmnc0Il////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BoGpEE7Z7UNnBg1r/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/8CCWf/DhFv/yopg/9SSaP/ppnn/8rWG/dqod9vAi16FrHhLP55rPRNgQRAFUDchA///
+ /wH///8B////Af///wGgRDYDp3JEJ6t0SG+3fFC5v4JX98GDWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf+/gVf9sXhMiZhmIgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BqXRHQbyA
+ VuPEhVz/wYNa/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/ChFr/yIhf/9GQ
+ Zv/dnHD/8bKD//nCkv/wvYz53q187dakdMnOm2yxzZdpl8qRZI/HjF6fxolcrcSHW9PGiF3xyIle/cWH
+ XP/Bgln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CCWf/Agln/wIJZ/8CC
+ Wf/Agln/wIJZ/7Z7UM+ldEYh////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGfZTUFsHdMf8SGXPfHiF//xIVc/8KEW//Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv/Cg1v/xode/82OZP/WlWr/3pxw/+akeP/vsIL/9LaH//K0
+ hv/ysoP9761//emmef3enHD90ZBm/8iJYP/Ehl3/woRb/8GDWv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GD
+ Wv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv/Bg1r/wYNa/8GDWv+8gFX1q3VIXaJuOgP///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGib0IRtn1Rl8uMYfvJi2L/xYde/8OFXf/BhFv/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GD
+ W//BhFv/woVc/8aIXv/Li2H/z49l/9STaP/XlWv/1pVr/9aVav/Uk2n/0ZFn/8uMY//Fh17/woVc/8GE
+ XP/Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GDW//Bg1v/wYNb/8GD
+ W//Bg1v/v4JY+7B4TJmkcUIR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wGncUITuX9SndCRZv3MjmX/x4ph/8WH
+ X//ChV3/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/ChVz/xIZd/8WH
+ Xv/GiF//x4hf/8aIXv/Fh17/w4Vd/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GE
+ XP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEXP/BhFz/wYRc/8GEW/+zek2xpXJDG////wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wGcbDYLuH5RodWVa/3QkWn/yoxk/8aJYf/ChV7/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/tHtR16V0QiH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wGZaTgJuH5SkdSU
+ avfZmHD/z5Bp/8qMZP/GiGH/w4Zf/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GE
+ Xf/BhF3/wYRd/8GEXf/BhF3/wYRd/8GEXf/BhF3/wINb/bV8UsGnc0cr////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wGeajsPt35TbdSVatvlo3n/2ppx/9GSav/Nj2f/yYpj/8SG
+ X//ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KF
+ Xv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/76C
+ WvezeVCdqXRHIf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wGSZT0FsXtNOdOWaavqqn756qp//+Cgdv/Xl27/0JBo/8mMZP/FiGH/w4Zf/8KFXv/ChV7/woVe/8KF
+ Xv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KFXv/ChV7/woVe/8KF
+ Xv/Dhl//woVe/8KFXv/ChV7/woVf/8KFXf+7gFbprnZLfahzRBX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bn3BCDb2FWHnXn3Hd77eK+/Gz
+ if/kpHr/25ty/9WWbv/PkWn/yY1l/8aKY//EiGH/w4dg/8KGX//Chl//woZf/8KGX//Chl//woZf/8KG
+ X//Chl//woZf/8KGX//Dhl//w4dg/8SIYf/EiGH/xYlh/8WIYf/EiGD/xIhh/8SIYP++hFr1tHtRwalz
+ SD2XYzIF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8BSCYAA59sPh25hVh33Kl82/LBk/34wpb/8bWJ/+enff/ennX/2Jlx/9SV
+ bf/Qkmv/zI9o/8qNZv/JjGb/yYxm/8iLZf/Hi2T/yIxl/8iMZf/IjGX/yIxl/8mMZv/KjWb/yYxl/8mM
+ Zf/JjGb/yo5n/8qNZv/AhVz5tHxQu6l0R1OfazwL////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AYpc
+ LQOreEcXuIdZUc6dbqHgtYbh8MOV+fnIm//3wZX/8baL/+usgv/lpXz/3593/9ucdP/ZmnL/1Zdw/9SW
+ b//Ulm//1ZZv/9SWb//UlW7/1ZZu/9aXb//Wl2//0ZNr/8uOZvm/hVvXtXxSmah2SEmhdUEN////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BpHBEC613SSfCk2VbxZVnm9Sl
+ ebnluYvZ6ryP8e69kPnwuo398baL/fCziP3sroP96aqA/eeofv3kpXr94aJ4/d6edPnXmnDpy5Bl1cGH
+ XL+2f1SPs3xRU6ZzSCOhb0QH////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wF7PQoFpXVKDap5SyeueUtFw5BiU8eWZ23Kl2mDzZhqg8qT
+ Zo/Ij2KTxo5hfcKKXW2+h1pjuYJVVax2STmqdUchpXdEDZJcKwX///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8BTSwAA2pBAAP///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
+ /wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellPopulations.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellPopulations.Designer.cs
new file mode 100644
index 0000000..482b850
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellPopulations.Designer.cs
@@ -0,0 +1,100 @@
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ partial class PanelForParamCellPopulations
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.panel = new System.Windows.Forms.Panel();
+ this.listViewForCellPopulations = new System.Windows.Forms.ListView();
+ this.columnHeaderPopName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderCellNum = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderCellType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.panel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.Controls.Add(this.listViewForCellPopulations);
+ this.panel.Location = new System.Drawing.Point(3, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(233, 251);
+ this.panel.TabIndex = 0;
+ //
+ // listViewForCellPopulations
+ //
+ this.listViewForCellPopulations.CheckBoxes = true;
+ this.listViewForCellPopulations.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeaderPopName,
+ this.columnHeaderCellNum,
+ this.columnHeaderCellType});
+ this.listViewForCellPopulations.GridLines = true;
+ this.listViewForCellPopulations.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
+ this.listViewForCellPopulations.Location = new System.Drawing.Point(0, 3);
+ this.listViewForCellPopulations.MultiSelect = false;
+ this.listViewForCellPopulations.Name = "listViewForCellPopulations";
+ this.listViewForCellPopulations.Size = new System.Drawing.Size(230, 246);
+ this.listViewForCellPopulations.TabIndex = 9;
+ this.listViewForCellPopulations.UseCompatibleStateImageBehavior = false;
+ this.listViewForCellPopulations.View = System.Windows.Forms.View.Details;
+ this.listViewForCellPopulations.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewForCellPopulations_MouseDown);
+ //
+ // columnHeaderPopName
+ //
+ this.columnHeaderPopName.Text = "Name";
+ this.columnHeaderPopName.Width = 78;
+ //
+ // columnHeaderCellNum
+ //
+ this.columnHeaderCellNum.Text = "Cell Number";
+ this.columnHeaderCellNum.Width = 77;
+ //
+ // columnHeaderCellType
+ //
+ this.columnHeaderCellType.Text = "Type";
+ this.columnHeaderCellType.Width = 90;
+ //
+ // PanelForParamCellPopulations
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForParamCellPopulations";
+ this.Size = new System.Drawing.Size(239, 258);
+ this.panel.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ColumnHeader columnHeaderPopName;
+ private System.Windows.Forms.ColumnHeader columnHeaderCellNum;
+ private System.Windows.Forms.ColumnHeader columnHeaderCellType;
+ public System.Windows.Forms.Panel panel;
+ public System.Windows.Forms.ListView listViewForCellPopulations;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellPopulations.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellPopulations.cs
new file mode 100644
index 0000000..f43d328
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellPopulations.cs
@@ -0,0 +1,230 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Simulator.Classes;
+using HCSAnalyzer.Classes._3D;
+using HCSAnalyzer.Simulator.Forms.NewCellType;
+using System.Runtime.Serialization;
+using System.IO;
+using System.Runtime.Serialization.Formatters.Binary;
+
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ public partial class PanelForParamCellPopulations : UserControl
+ {
+ // cWorld NewWorld;
+ public cPoint3D WorldDims;
+ FormForSimuGenerator Parent;
+
+ public PanelForParamCellPopulations(cPoint3D WorldDims, FormForSimuGenerator Parent)
+ {
+ InitializeComponent();
+ this.WorldDims = WorldDims;
+ this.Parent = Parent;
+ }
+
+ private void editToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Point locationOnForm = listViewForCellPopulations.FindForm().PointToClient(Control.MousePosition);
+ ListViewItem IdxItem = listViewForCellPopulations.GetItemAt(Control.MousePosition.X, Control.MousePosition.Y);// locationOnForm.Y - 163;
+ }
+
+ void EditItem(object sender, EventArgs e)
+ {
+ cCellPopulation SelectedCellPop = (cCellPopulation)listViewForCellPopulations.FocusedItem.Tag;
+
+ FormForInfoSingleCellPopInit_Simulator WindowForSingleCellPop =
+ new FormForInfoSingleCellPopInit_Simulator( this.WorldDims,SelectedCellPop.AssociatedVariables, Parent, SelectedCellPop);
+
+ WindowForSingleCellPop.richTextBoxDescription.Text = SelectedCellPop.Information;
+
+ if (WindowForSingleCellPop.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ {
+ List names = new List();
+
+ cCellPopulation returnPop = WindowForSingleCellPop.CellPopulation;
+
+ listViewForCellPopulations.FocusedItem.SubItems[0].Text = returnPop.Name;
+ listViewForCellPopulations.FocusedItem.SubItems[1].Text = returnPop.Count.ToString();
+ listViewForCellPopulations.FocusedItem.SubItems[2].Text = returnPop[0].Type.Name;
+
+ //names.Add(SelectedCellPop.Count.ToString());
+ // names.Add(WindowForSingleCellPop.CellPopulation[0].Type.Name);
+ returnPop.AssociatedVariables = WindowForSingleCellPop.ListVariables;
+
+
+ // ListViewItem NewItem = new ListViewItem(names.ToArray());
+
+ listViewForCellPopulations.FocusedItem.Tag = returnPop;
+ // NewItem.Checked = true;
+ //this.listViewForCellPopulations.Items.Add(NewItem);
+ }
+ }
+
+ void DeleteItem(object sender, EventArgs e)
+ {
+ listViewForCellPopulations.Items.Remove(listViewForCellPopulations.FocusedItem);
+ }
+
+ void NewTypeItem(object sender, EventArgs e)
+ {
+ Parent.CreateNewCellType();
+ }
+
+ private void LoadItem(object sender, EventArgs e)
+ {
+ OpenFileDialog CurrOpenFileDialog = new OpenFileDialog();
+
+ CurrOpenFileDialog.Filter = "opt files (*.CP)|*.CP";
+ CurrOpenFileDialog.Multiselect = true;
+ DialogResult Res = CurrOpenFileDialog.ShowDialog();
+ if (Res != DialogResult.OK) return;
+
+ if (CurrOpenFileDialog.FileNames[0] == "") return;
+
+ foreach (var FileName in CurrOpenFileDialog.FileNames)
+ {
+ IFormatter formatter = new BinaryFormatter();
+ Stream stream = new FileStream(FileName,
+ FileMode.Open,
+ FileAccess.Read,
+ FileShare.Read);
+ cCellPopulation obj = (cCellPopulation)formatter.Deserialize(stream);
+ stream.Close();
+
+ List names = new List();
+ names.Add(obj.Name);
+ names.Add(obj.Count.ToString());
+ names.Add(obj[0].Type.Name);
+
+ // WindowForSingleCellPop.CellPopulation.AssociatedVariables = WindowForSingleCellPop.ListVariables;
+ ListViewItem NewItem = new ListViewItem(names.ToArray());
+
+ NewItem.Tag = obj;
+
+ NewItem.Checked = true;
+ this.listViewForCellPopulations.Items.Add(NewItem);
+ }
+ //Parent.ListCellTypes.Add(obj);
+ //MyPanelForParamCellTypes.RefreshDisplay(this);
+ //this.RefreshDisplay(Parent);
+ }
+
+ private void SaveItem(object sender, EventArgs e)
+ {
+ SaveFileDialog CurrSavefileDialog = new SaveFileDialog();
+ CurrSavefileDialog.Filter = "opt files (*.CP)|*.CP";
+ CurrSavefileDialog.FileName = ((cCellPopulation)listViewForCellPopulations.FocusedItem.Tag).Name + ".CP";
+ DialogResult Res = CurrSavefileDialog.ShowDialog();
+ if (Res != DialogResult.OK) return;
+
+ if (CurrSavefileDialog.FileName == "") return;
+
+ IFormatter formatter = new BinaryFormatter();
+ Stream stream = new FileStream(CurrSavefileDialog.FileName,
+ FileMode.Create,
+ FileAccess.Write, FileShare.None);
+ formatter.Serialize(stream, (cCellPopulation)listViewForCellPopulations.FocusedItem.Tag);
+ stream.Close();
+ }
+
+ private void AddItem(object sender, EventArgs e)
+ {
+ List ListVar = new List();
+ ListVar.Add(new cClassForVariable("v_CellNumber", 100));
+ ListVar.Add(new cClassForVariable("v_InitPosX", 0));
+ ListVar.Add(new cClassForVariable("v_InitPosY", 0));
+ ListVar.Add(new cClassForVariable("v_InitPosZ", 0));
+ ListVar.Add(new cClassForVariable("v_InitPosType", 0));
+ ListVar.Add(new cClassForVariable("v_InitVolType", 0));
+ ListVar.Add(new cClassForVariable("v_InitVol", 10));
+
+ cListVariables AssociatedListVar = new cListVariables(ListVar);
+
+ FormForInfoSingleCellPopInit_Simulator WindowForSingleCellPop =
+ new FormForInfoSingleCellPopInit_Simulator(WorldDims, AssociatedListVar, Parent,null);
+
+ if (WindowForSingleCellPop.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ {
+ List names = new List();
+ names.Add(WindowForSingleCellPop.CellPopulation.Name);
+ names.Add(WindowForSingleCellPop.CellPopulation.Count.ToString());
+ names.Add(WindowForSingleCellPop.CellPopulation[0].Type.Name);
+ WindowForSingleCellPop.CellPopulation.AssociatedVariables = WindowForSingleCellPop.ListVariables;
+ ListViewItem NewItem = new ListViewItem(names.ToArray());
+ WindowForSingleCellPop.CellPopulation.Information = WindowForSingleCellPop.richTextBoxDescription.Text;
+
+ NewItem.Tag = WindowForSingleCellPop.CellPopulation;
+
+ NewItem.Checked = true;
+ this.listViewForCellPopulations.Items.Add(NewItem);
+
+ }
+ }
+
+ private void ClearItem(object sender, EventArgs e)
+ {
+ int NumItems = this.listViewForCellPopulations.Items.Count;
+ for (int IdxItem = 0; IdxItem < NumItems; IdxItem++)
+ {
+ this.listViewForCellPopulations.Items[0].Remove();
+ }
+ }
+
+ private void listViewForCellPopulations_MouseDown(object sender, MouseEventArgs e)
+ {
+
+ if (e.Button == System.Windows.Forms.MouseButtons.Right)
+ {
+ //Point locationOnForm = listViewForCellPopulations.FindForm().PointToClient(Control.MousePosition);
+ ListViewItem IdxItem = listViewForCellPopulations.GetItemAt(e.X, e.Y);
+
+ ContextMenuStrip contextMenuStripPicker = new ContextMenuStrip();
+
+ ToolStripMenuItem AddItem = new ToolStripMenuItem("Add");
+ AddItem.Click += new System.EventHandler(this.AddItem);
+ contextMenuStripPicker.Items.Add(AddItem);
+
+
+ ToolStripMenuItem LoadItem = new ToolStripMenuItem("Load");
+ LoadItem.Click += new System.EventHandler(this.LoadItem);
+ contextMenuStripPicker.Items.Add(LoadItem);
+
+ if (IdxItem != null)
+ {
+ ToolStripMenuItem EditItem = new ToolStripMenuItem("Edit " + IdxItem.Text);
+ EditItem.Click += new System.EventHandler(this.EditItem);
+ contextMenuStripPicker.Items.Add(EditItem);
+
+ ToolStripMenuItem SaveItem = new ToolStripMenuItem("Save " + IdxItem.Text);
+ SaveItem.Click += new System.EventHandler(this.SaveItem);
+ contextMenuStripPicker.Items.Add(SaveItem);
+
+ ToolStripMenuItem DeleteItem = new ToolStripMenuItem("Delete " + IdxItem.Text);
+ DeleteItem.Click += new System.EventHandler(this.DeleteItem);
+ contextMenuStripPicker.Items.Add(DeleteItem);
+
+ }
+
+ if (listViewForCellPopulations.Items.Count > 0)
+ {
+ ToolStripMenuItem ClearItem = new ToolStripMenuItem("Clear");
+ ClearItem.Click += new System.EventHandler(this.ClearItem);
+ contextMenuStripPicker.Items.Add(ClearItem);
+ }
+ contextMenuStripPicker.Items.Add(new ToolStripSeparator());
+
+ ToolStripMenuItem NewTypeItem = new ToolStripMenuItem("New Cell Type");
+ NewTypeItem.Click += new System.EventHandler(this.NewTypeItem);
+ contextMenuStripPicker.Items.Add(NewTypeItem);
+
+ contextMenuStripPicker.Show(Control.MousePosition);
+ }
+ }
+ }
+}
diff --git a/Classes/cDisplayTable.resx b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellPopulations.resx
similarity index 100%
rename from Classes/cDisplayTable.resx
rename to Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellPopulations.resx
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellTypes.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellTypes.Designer.cs
new file mode 100644
index 0000000..d08c840
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellTypes.Designer.cs
@@ -0,0 +1,157 @@
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ partial class PanelForParamCellTypes
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.panel = new System.Windows.Forms.Panel();
+ this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.addNewCellTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.editCurrentTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.richTextBox = new System.Windows.Forms.RichTextBox();
+ this.panelForColor = new System.Windows.Forms.Panel();
+ this.comboBoxCellTypes = new System.Windows.Forms.ComboBox();
+ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+ this.saveCellTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.loadCellTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.panel.SuspendLayout();
+ this.contextMenuStrip.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.ContextMenuStrip = this.contextMenuStrip;
+ this.panel.Controls.Add(this.richTextBox);
+ this.panel.Controls.Add(this.panelForColor);
+ this.panel.Controls.Add(this.comboBoxCellTypes);
+ this.panel.Location = new System.Drawing.Point(3, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(233, 188);
+ this.panel.TabIndex = 0;
+ //
+ // contextMenuStrip
+ //
+ this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.addNewCellTypeToolStripMenuItem,
+ this.editCurrentTypeToolStripMenuItem,
+ this.toolStripSeparator1,
+ this.saveCellTypeToolStripMenuItem,
+ this.loadCellTypeToolStripMenuItem});
+ this.contextMenuStrip.Name = "contextMenuStrip";
+ this.contextMenuStrip.Size = new System.Drawing.Size(167, 120);
+ //
+ // addNewCellTypeToolStripMenuItem
+ //
+ this.addNewCellTypeToolStripMenuItem.Name = "addNewCellTypeToolStripMenuItem";
+ this.addNewCellTypeToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
+ this.addNewCellTypeToolStripMenuItem.Text = "New Cell Type";
+ this.addNewCellTypeToolStripMenuItem.Click += new System.EventHandler(this.addNewCellTypeToolStripMenuItem_Click);
+ //
+ // editCurrentTypeToolStripMenuItem
+ //
+ this.editCurrentTypeToolStripMenuItem.Name = "editCurrentTypeToolStripMenuItem";
+ this.editCurrentTypeToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
+ this.editCurrentTypeToolStripMenuItem.Text = "Edit Current Type";
+ this.editCurrentTypeToolStripMenuItem.Click += new System.EventHandler(this.editCurrentTypeToolStripMenuItem_Click);
+ //
+ // richTextBox
+ //
+ this.richTextBox.ContextMenuStrip = this.contextMenuStrip;
+ this.richTextBox.Location = new System.Drawing.Point(12, 36);
+ this.richTextBox.Name = "richTextBox";
+ this.richTextBox.ReadOnly = true;
+ this.richTextBox.Size = new System.Drawing.Size(205, 144);
+ this.richTextBox.TabIndex = 2;
+ this.richTextBox.Text = "";
+ //
+ // panelForColor
+ //
+ this.panelForColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.panelForColor.ContextMenuStrip = this.contextMenuStrip;
+ this.panelForColor.Location = new System.Drawing.Point(139, 6);
+ this.panelForColor.Name = "panelForColor";
+ this.panelForColor.Size = new System.Drawing.Size(78, 21);
+ this.panelForColor.TabIndex = 1;
+ this.panelForColor.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panelForColor_MouseClick);
+ //
+ // comboBoxCellTypes
+ //
+ this.comboBoxCellTypes.ContextMenuStrip = this.contextMenuStrip;
+ this.comboBoxCellTypes.FormattingEnabled = true;
+ this.comboBoxCellTypes.Location = new System.Drawing.Point(12, 6);
+ this.comboBoxCellTypes.Name = "comboBoxCellTypes";
+ this.comboBoxCellTypes.Size = new System.Drawing.Size(121, 21);
+ this.comboBoxCellTypes.TabIndex = 0;
+ this.comboBoxCellTypes.SelectedIndexChanged += new System.EventHandler(this.comboBoxCellTypes_SelectedIndexChanged);
+ //
+ // toolStripSeparator1
+ //
+ this.toolStripSeparator1.Name = "toolStripSeparator1";
+ this.toolStripSeparator1.Size = new System.Drawing.Size(163, 6);
+ //
+ // saveCellTypeToolStripMenuItem
+ //
+ this.saveCellTypeToolStripMenuItem.Name = "saveCellTypeToolStripMenuItem";
+ this.saveCellTypeToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
+ this.saveCellTypeToolStripMenuItem.Text = "Save Cell Type";
+ this.saveCellTypeToolStripMenuItem.Click += new System.EventHandler(this.saveCellTypeToolStripMenuItem_Click);
+ //
+ // loadCellTypeToolStripMenuItem
+ //
+ this.loadCellTypeToolStripMenuItem.Name = "loadCellTypeToolStripMenuItem";
+ this.loadCellTypeToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
+ this.loadCellTypeToolStripMenuItem.Text = "Load Cell Type";
+ this.loadCellTypeToolStripMenuItem.Click += new System.EventHandler(this.loadCellTypeToolStripMenuItem_Click);
+ //
+ // PanelForParamCellTypes
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForParamCellTypes";
+ this.Size = new System.Drawing.Size(241, 194);
+ this.panel.ResumeLayout(false);
+ this.contextMenuStrip.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.RichTextBox richTextBox;
+ private System.Windows.Forms.Panel panelForColor;
+ private System.Windows.Forms.ComboBox comboBoxCellTypes;
+ public System.Windows.Forms.Panel panel;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
+ private System.Windows.Forms.ToolStripMenuItem addNewCellTypeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem editCurrentTypeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+ private System.Windows.Forms.ToolStripMenuItem saveCellTypeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem loadCellTypeToolStripMenuItem;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellTypes.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellTypes.cs
new file mode 100644
index 0000000..ba8bbfe
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellTypes.cs
@@ -0,0 +1,116 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Simulator.Classes;
+using HCSAnalyzer.Simulator.Forms.NewCellType;
+using System.Runtime.Serialization;
+using System.Runtime.Serialization.Formatters.Binary;
+using System.IO;
+
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ public partial class PanelForParamCellTypes : UserControl
+ {
+
+ public PanelForParamCellTypes()
+ {
+ InitializeComponent();
+ }
+
+ FormForSimuGenerator Parent;
+
+ public void RefreshDisplay(FormForSimuGenerator Parent)
+ {
+ this.Parent = Parent;
+ comboBoxCellTypes.Items.Clear();
+ foreach (cCellType item in Parent.ListCellTypes)
+ {
+ comboBoxCellTypes.Items.Add(item.Name);
+ }
+
+ this.comboBoxCellTypes.SelectedItem = this.comboBoxCellTypes.Items[0];
+ }
+
+ private void comboBoxCellTypes_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ cCellType CurrentType = Parent.ListCellTypes.FindType(comboBoxCellTypes.Text);
+ if (CurrentType == null) return;
+ this.panelForColor.BackColor = CurrentType.TypeColor;
+ this.richTextBox.Clear();
+ // this.richTextBox.AppendText(CurrentType.Cycle.ListProba.ToString());
+ }
+
+ private void panelForColor_MouseClick(object sender, MouseEventArgs e)
+ {
+ ColorDialog ColorPicker = new ColorDialog();
+ if (ColorPicker.ShowDialog() != DialogResult.OK) return;
+ panelForColor.BackColor = ColorPicker.Color;
+ panelForColor.Refresh();
+ cCellType CurrentType = Parent.ListCellTypes.FindType(comboBoxCellTypes.Text);
+ CurrentType.TypeColor = panelForColor.BackColor;
+ }
+
+ private void addNewCellTypeToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Parent.CreateNewCellType();
+ }
+
+ private void editCurrentTypeToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Parent.EditCellType(Parent.ListCellTypes.FindType(comboBoxCellTypes.Text));
+ }
+
+ private void saveCellTypeToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+// Parent.ListCellTypes.FindType(comboBoxCellTypes.Text);
+
+ SaveFileDialog CurrSavefileDialog = new SaveFileDialog();
+ CurrSavefileDialog.Filter = "opt files (*.CT)|*.CT";
+ DialogResult Res = CurrSavefileDialog.ShowDialog();
+ if (Res != DialogResult.OK) return;
+
+ if (CurrSavefileDialog.FileName == "") return;
+
+ IFormatter formatter = new BinaryFormatter();
+ Stream stream = new FileStream(CurrSavefileDialog.FileName,
+ FileMode.Create,
+ FileAccess.Write, FileShare.None);
+ formatter.Serialize(stream, Parent.ListCellTypes.FindType(comboBoxCellTypes.Text));
+ stream.Close();
+
+
+
+
+ }
+
+ private void loadCellTypeToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog CurrOpenFileDialog = new OpenFileDialog();
+
+ CurrOpenFileDialog.Filter = "opt files (*.CT)|*.CT";
+ DialogResult Res = CurrOpenFileDialog.ShowDialog();
+ if (Res != DialogResult.OK) return;
+
+ if (CurrOpenFileDialog.FileName == "") return;
+
+ IFormatter formatter = new BinaryFormatter();
+ Stream stream = new FileStream(CurrOpenFileDialog.FileName,
+ FileMode.Open,
+ FileAccess.Read,
+ FileShare.Read);
+ cCellType obj = (cCellType)formatter.Deserialize(stream);
+ stream.Close();
+
+ Parent.ListCellTypes.Add(obj);
+ //MyPanelForParamCellTypes.RefreshDisplay(this);
+ this.RefreshDisplay(Parent);
+
+ }
+
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellTypes.resx b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellTypes.resx
new file mode 100644
index 0000000..2d8292b
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamCellTypes.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamGeneral.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamGeneral.Designer.cs
new file mode 100644
index 0000000..355cb89
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamGeneral.Designer.cs
@@ -0,0 +1,106 @@
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ partial class PanelForParamGeneral
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.panel = new System.Windows.Forms.Panel();
+ this.numericUpDownRunIterations = new System.Windows.Forms.NumericUpDown();
+ this.label1 = new System.Windows.Forms.Label();
+ this.checkBoxMemory = new System.Windows.Forms.CheckBox();
+ this.panel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownRunIterations)).BeginInit();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.Controls.Add(this.checkBoxMemory);
+ this.panel.Controls.Add(this.numericUpDownRunIterations);
+ this.panel.Controls.Add(this.label1);
+ this.panel.Location = new System.Drawing.Point(3, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(171, 242);
+ this.panel.TabIndex = 0;
+ //
+ // numericUpDownRunIterations
+ //
+ this.numericUpDownRunIterations.Location = new System.Drawing.Point(68, 15);
+ this.numericUpDownRunIterations.Maximum = new decimal(new int[] {
+ 276447232,
+ 23283,
+ 0,
+ 0});
+ this.numericUpDownRunIterations.Name = "numericUpDownRunIterations";
+ this.numericUpDownRunIterations.Size = new System.Drawing.Size(84, 20);
+ this.numericUpDownRunIterations.TabIndex = 4;
+ this.numericUpDownRunIterations.Value = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(12, 17);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(50, 13);
+ this.label1.TabIndex = 5;
+ this.label1.Text = "Iterations";
+ //
+ // checkBoxMemory
+ //
+ this.checkBoxMemory.AutoSize = true;
+ this.checkBoxMemory.Location = new System.Drawing.Point(13, 63);
+ this.checkBoxMemory.Name = "checkBoxMemory";
+ this.checkBoxMemory.Size = new System.Drawing.Size(144, 17);
+ this.checkBoxMemory.TabIndex = 6;
+ this.checkBoxMemory.Text = "Keep previous cell states";
+ this.checkBoxMemory.UseVisualStyleBackColor = true;
+ //
+ // PanelForParamGeneral
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForParamGeneral";
+ this.Size = new System.Drawing.Size(177, 248);
+ this.panel.ResumeLayout(false);
+ this.panel.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownRunIterations)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public System.Windows.Forms.Panel panel;
+ private System.Windows.Forms.NumericUpDown numericUpDownRunIterations;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.CheckBox checkBoxMemory;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamGeneral.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamGeneral.cs
new file mode 100644
index 0000000..372d999
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamGeneral.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ public partial class PanelForParamGeneral : UserControl
+ {
+ public PanelForParamGeneral()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamGeneral.resx b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamGeneral.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamGeneral.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/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamPlateDesign.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamPlateDesign.Designer.cs
new file mode 100644
index 0000000..b9b446f
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamPlateDesign.Designer.cs
@@ -0,0 +1,170 @@
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ partial class PanelForParamPlateDesign
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.panel = new System.Windows.Forms.Panel();
+ this.checkBoxExportToDB = new System.Windows.Forms.CheckBox();
+ this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.numericUpDownNumCols = new System.Windows.Forms.NumericUpDown();
+ this.groupBoxPlateDesign = new System.Windows.Forms.GroupBox();
+ this.numericUpDownNumRows = new System.Windows.Forms.NumericUpDown();
+ this.panel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNumCols)).BeginInit();
+ this.groupBoxPlateDesign.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNumRows)).BeginInit();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.Controls.Add(this.groupBoxPlateDesign);
+ this.panel.Controls.Add(this.checkBoxExportToDB);
+ this.panel.Location = new System.Drawing.Point(3, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(187, 232);
+ this.panel.TabIndex = 1;
+ //
+ // checkBoxExportToDB
+ //
+ this.checkBoxExportToDB.AutoSize = true;
+ this.checkBoxExportToDB.Location = new System.Drawing.Point(38, 21);
+ this.checkBoxExportToDB.Name = "checkBoxExportToDB";
+ this.checkBoxExportToDB.Size = new System.Drawing.Size(117, 17);
+ this.checkBoxExportToDB.TabIndex = 12;
+ this.checkBoxExportToDB.Text = "Export to Database";
+ this.checkBoxExportToDB.UseVisualStyleBackColor = true;
+ this.checkBoxExportToDB.CheckedChanged += new System.EventHandler(this.checkBoxExportToDB_CheckedChanged);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(18, 31);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(47, 13);
+ this.label1.TabIndex = 13;
+ this.label1.Text = "Columns";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(18, 62);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(34, 13);
+ this.label2.TabIndex = 14;
+ this.label2.Text = "Rows";
+ //
+ // numericUpDownNumCols
+ //
+ this.numericUpDownNumCols.Location = new System.Drawing.Point(73, 29);
+ this.numericUpDownNumCols.Maximum = new decimal(new int[] {
+ 10000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownNumCols.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownNumCols.Name = "numericUpDownNumCols";
+ this.numericUpDownNumCols.Size = new System.Drawing.Size(91, 20);
+ this.numericUpDownNumCols.TabIndex = 15;
+ this.numericUpDownNumCols.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // groupBoxPlateDesign
+ //
+ this.groupBoxPlateDesign.Controls.Add(this.numericUpDownNumRows);
+ this.groupBoxPlateDesign.Controls.Add(this.numericUpDownNumCols);
+ this.groupBoxPlateDesign.Controls.Add(this.label1);
+ this.groupBoxPlateDesign.Controls.Add(this.label2);
+ this.groupBoxPlateDesign.Enabled = false;
+ this.groupBoxPlateDesign.Location = new System.Drawing.Point(4, 56);
+ this.groupBoxPlateDesign.Name = "groupBoxPlateDesign";
+ this.groupBoxPlateDesign.Size = new System.Drawing.Size(179, 95);
+ this.groupBoxPlateDesign.TabIndex = 16;
+ this.groupBoxPlateDesign.TabStop = false;
+ this.groupBoxPlateDesign.Text = "Plate Design";
+ //
+ // numericUpDownNumRows
+ //
+ this.numericUpDownNumRows.Location = new System.Drawing.Point(73, 60);
+ this.numericUpDownNumRows.Maximum = new decimal(new int[] {
+ 10000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownNumRows.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownNumRows.Name = "numericUpDownNumRows";
+ this.numericUpDownNumRows.Size = new System.Drawing.Size(91, 20);
+ this.numericUpDownNumRows.TabIndex = 18;
+ this.numericUpDownNumRows.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // PanelForParamPlateDesign
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForParamPlateDesign";
+ this.Size = new System.Drawing.Size(193, 240);
+ this.panel.ResumeLayout(false);
+ this.panel.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNumCols)).EndInit();
+ this.groupBoxPlateDesign.ResumeLayout(false);
+ this.groupBoxPlateDesign.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNumRows)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public System.Windows.Forms.Panel panel;
+ private System.Windows.Forms.ToolTip toolTip;
+ private System.Windows.Forms.CheckBox checkBoxExportToDB;
+ private System.Windows.Forms.GroupBox groupBoxPlateDesign;
+ private System.Windows.Forms.NumericUpDown numericUpDownNumRows;
+ private System.Windows.Forms.NumericUpDown numericUpDownNumCols;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamPlateDesign.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamPlateDesign.cs
new file mode 100644
index 0000000..a466dec
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamPlateDesign.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ public partial class PanelForParamPlateDesign : UserControl
+ {
+ public PanelForParamPlateDesign()
+ {
+ InitializeComponent();
+ }
+
+ private void checkBoxExportToDB_CheckedChanged(object sender, EventArgs e)
+ {
+ groupBoxPlateDesign.Enabled = checkBoxExportToDB.Checked;
+ }
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamPlateDesign.resx b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamPlateDesign.resx
new file mode 100644
index 0000000..8766f29
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamPlateDesign.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamWorldDimensions.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamWorldDimensions.Designer.cs
new file mode 100644
index 0000000..24906fc
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamWorldDimensions.Designer.cs
@@ -0,0 +1,176 @@
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ partial class PanelForParamWorldDimensions
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.panel = new System.Windows.Forms.Panel();
+ this.numericUpDownWorldDimensionY = new System.Windows.Forms.NumericUpDown();
+ this.numericUpDownWorldDimensionX = new System.Windows.Forms.NumericUpDown();
+ this.numericUpDownWorldDimensionZ = new System.Windows.Forms.NumericUpDown();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.panel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWorldDimensionY)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWorldDimensionX)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWorldDimensionZ)).BeginInit();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.Controls.Add(this.label3);
+ this.panel.Controls.Add(this.label2);
+ this.panel.Controls.Add(this.label1);
+ this.panel.Controls.Add(this.numericUpDownWorldDimensionY);
+ this.panel.Controls.Add(this.numericUpDownWorldDimensionX);
+ this.panel.Controls.Add(this.numericUpDownWorldDimensionZ);
+ this.panel.Location = new System.Drawing.Point(1, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(187, 238);
+ this.panel.TabIndex = 0;
+ //
+ // numericUpDownWorldDimensionY
+ //
+ this.numericUpDownWorldDimensionY.Location = new System.Drawing.Point(52, 39);
+ this.numericUpDownWorldDimensionY.Maximum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownWorldDimensionY.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownWorldDimensionY.Name = "numericUpDownWorldDimensionY";
+ this.numericUpDownWorldDimensionY.Size = new System.Drawing.Size(109, 20);
+ this.numericUpDownWorldDimensionY.TabIndex = 1;
+ this.numericUpDownWorldDimensionY.Value = new decimal(new int[] {
+ 600,
+ 0,
+ 0,
+ 0});
+ //
+ // numericUpDownWorldDimensionX
+ //
+ this.numericUpDownWorldDimensionX.Location = new System.Drawing.Point(52, 13);
+ this.numericUpDownWorldDimensionX.Maximum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownWorldDimensionX.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownWorldDimensionX.Name = "numericUpDownWorldDimensionX";
+ this.numericUpDownWorldDimensionX.Size = new System.Drawing.Size(109, 20);
+ this.numericUpDownWorldDimensionX.TabIndex = 0;
+ this.numericUpDownWorldDimensionX.Value = new decimal(new int[] {
+ 600,
+ 0,
+ 0,
+ 0});
+ //
+ // numericUpDownWorldDimensionZ
+ //
+ this.numericUpDownWorldDimensionZ.Location = new System.Drawing.Point(52, 65);
+ this.numericUpDownWorldDimensionZ.Maximum = new decimal(new int[] {
+ 10000000,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownWorldDimensionZ.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.numericUpDownWorldDimensionZ.Name = "numericUpDownWorldDimensionZ";
+ this.numericUpDownWorldDimensionZ.Size = new System.Drawing.Size(109, 20);
+ this.numericUpDownWorldDimensionZ.TabIndex = 2;
+ this.numericUpDownWorldDimensionZ.Value = new decimal(new int[] {
+ 50,
+ 0,
+ 0,
+ 0});
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(11, 15);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(35, 13);
+ this.label1.TabIndex = 3;
+ this.label1.Text = "Width";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(11, 41);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(38, 13);
+ this.label2.TabIndex = 3;
+ this.label2.Text = "Height";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(11, 67);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(36, 13);
+ this.label3.TabIndex = 3;
+ this.label3.Text = "Depth";
+ //
+ // PanelForParamWorldDimensions
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForParamWorldDimensions";
+ this.Size = new System.Drawing.Size(188, 241);
+ this.panel.ResumeLayout(false);
+ this.panel.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWorldDimensionY)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWorldDimensionX)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWorldDimensionZ)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.NumericUpDown numericUpDownWorldDimensionZ;
+ private System.Windows.Forms.NumericUpDown numericUpDownWorldDimensionY;
+ private System.Windows.Forms.NumericUpDown numericUpDownWorldDimensionX;
+ public System.Windows.Forms.Panel panel;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label1;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamWorldDimensions.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamWorldDimensions.cs
new file mode 100644
index 0000000..3e437d9
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamWorldDimensions.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ public partial class PanelForParamWorldDimensions : UserControl
+ {
+ public PanelForParamWorldDimensions()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamWorldDimensions.resx b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamWorldDimensions.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParamWorldDimensions.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/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParams3D.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParams3D.Designer.cs
new file mode 100644
index 0000000..ee1687d
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParams3D.Designer.cs
@@ -0,0 +1,85 @@
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ partial class PanelForParams3D
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.panel = new System.Windows.Forms.Panel();
+ this.checkBoxDisplayText = new System.Windows.Forms.CheckBox();
+ this.checkBoxDisplayCellPath = new System.Windows.Forms.CheckBox();
+ this.panel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.Controls.Add(this.checkBoxDisplayCellPath);
+ this.panel.Controls.Add(this.checkBoxDisplayText);
+ this.panel.Location = new System.Drawing.Point(3, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(175, 142);
+ this.panel.TabIndex = 0;
+ //
+ // checkBoxDisplayText
+ //
+ this.checkBoxDisplayText.AutoSize = true;
+ this.checkBoxDisplayText.Location = new System.Drawing.Point(32, 17);
+ this.checkBoxDisplayText.Name = "checkBoxDisplayText";
+ this.checkBoxDisplayText.Size = new System.Drawing.Size(118, 17);
+ this.checkBoxDisplayText.TabIndex = 0;
+ this.checkBoxDisplayText.Text = "Display Type Name";
+ this.checkBoxDisplayText.UseVisualStyleBackColor = true;
+ //
+ // checkBoxDisplayCellPath
+ //
+ this.checkBoxDisplayCellPath.AutoSize = true;
+ this.checkBoxDisplayCellPath.Location = new System.Drawing.Point(32, 53);
+ this.checkBoxDisplayCellPath.Name = "checkBoxDisplayCellPath";
+ this.checkBoxDisplayCellPath.Size = new System.Drawing.Size(110, 17);
+ this.checkBoxDisplayCellPath.TabIndex = 1;
+ this.checkBoxDisplayCellPath.Text = "Display Cell Paths";
+ this.checkBoxDisplayCellPath.UseVisualStyleBackColor = true;
+ //
+ // PanelForParams3D
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForParams3D";
+ this.Size = new System.Drawing.Size(182, 152);
+ this.panel.ResumeLayout(false);
+ this.panel.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public System.Windows.Forms.Panel panel;
+ private System.Windows.Forms.CheckBox checkBoxDisplayText;
+ private System.Windows.Forms.CheckBox checkBoxDisplayCellPath;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParams3D.cs b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParams3D.cs
new file mode 100644
index 0000000..9028a2f
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParams3D.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HCSAnalyzer.Simulator.Forms.Panels
+{
+ public partial class PanelForParams3D : UserControl
+ {
+ public PanelForParams3D()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParams3D.resx b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParams3D.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/MainWindow/PanelForParams3D.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/Cell-by-Cell and DB/Simulator/Forms/NewCellType/FormForNewCellType.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/FormForNewCellType.Designer.cs
new file mode 100644
index 0000000..f8b176b
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/FormForNewCellType.Designer.cs
@@ -0,0 +1,140 @@
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ partial class FormForNewCellType
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("General");
+ System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("Transition Values");
+ System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("Cell Cycle");
+ System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("Velocity");
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormForNewCellType));
+ this.treeViewForOptions = new System.Windows.Forms.TreeView();
+ this.panelForDisplay = new System.Windows.Forms.Panel();
+ this.buttonOk = new System.Windows.Forms.Button();
+ this.contextMenuStripForTree = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.collapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.contextMenuStripForTree.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // treeViewForOptions
+ //
+ this.treeViewForOptions.Location = new System.Drawing.Point(3, 5);
+ this.treeViewForOptions.Name = "treeViewForOptions";
+ treeNode5.Name = "Node0";
+ treeNode5.Tag = "General";
+ treeNode5.Text = "General";
+ treeNode6.Name = "Node0";
+ treeNode6.Tag = "TransitionMatrix";
+ treeNode6.Text = "Transition Values";
+ treeNode7.Name = "Node1";
+ treeNode7.Tag = "CellCycle";
+ treeNode7.Text = "Cell Cycle";
+ treeNode8.Name = "Node2";
+ treeNode8.Tag = "Velocity";
+ treeNode8.Text = "Velocity";
+ this.treeViewForOptions.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
+ treeNode5,
+ treeNode6,
+ treeNode7,
+ treeNode8});
+ this.treeViewForOptions.Size = new System.Drawing.Size(188, 276);
+ this.treeViewForOptions.TabIndex = 11;
+ this.treeViewForOptions.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViewForOptions_AfterSelect);
+ //
+ // panelForDisplay
+ //
+ this.panelForDisplay.AutoScroll = true;
+ this.panelForDisplay.BackColor = System.Drawing.SystemColors.Control;
+ this.panelForDisplay.Location = new System.Drawing.Point(197, 5);
+ this.panelForDisplay.Name = "panelForDisplay";
+ this.panelForDisplay.Size = new System.Drawing.Size(252, 276);
+ this.panelForDisplay.TabIndex = 12;
+ //
+ // buttonOk
+ //
+ this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.buttonOk.Location = new System.Drawing.Point(351, 286);
+ this.buttonOk.Name = "buttonOk";
+ this.buttonOk.Size = new System.Drawing.Size(98, 25);
+ this.buttonOk.TabIndex = 13;
+ this.buttonOk.Text = "Ok";
+ this.buttonOk.UseVisualStyleBackColor = true;
+ this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click);
+ //
+ // contextMenuStripForTree
+ //
+ this.contextMenuStripForTree.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.collapseAllToolStripMenuItem,
+ this.expandAllToolStripMenuItem});
+ this.contextMenuStripForTree.Name = "contextMenuStripForTree";
+ this.contextMenuStripForTree.Size = new System.Drawing.Size(153, 70);
+ //
+ // collapseAllToolStripMenuItem
+ //
+ this.collapseAllToolStripMenuItem.Name = "collapseAllToolStripMenuItem";
+ this.collapseAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.collapseAllToolStripMenuItem.Text = "Collapse All";
+ this.collapseAllToolStripMenuItem.Click += new System.EventHandler(this.collapseAllToolStripMenuItem_Click);
+ //
+ // expandAllToolStripMenuItem
+ //
+ this.expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem";
+ this.expandAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.expandAllToolStripMenuItem.Text = "Expand All";
+ this.expandAllToolStripMenuItem.Click += new System.EventHandler(this.expandAllToolStripMenuItem_Click);
+ //
+ // FormForNewCellType
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(453, 313);
+ this.Controls.Add(this.buttonOk);
+ this.Controls.Add(this.panelForDisplay);
+ this.Controls.Add(this.treeViewForOptions);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.Name = "FormForNewCellType";
+ this.Text = "New Cell Type";
+ this.contextMenuStripForTree.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public System.Windows.Forms.TreeView treeViewForOptions;
+ private System.Windows.Forms.Panel panelForDisplay;
+ private System.Windows.Forms.Button buttonOk;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStripForTree;
+ private System.Windows.Forms.ToolStripMenuItem collapseAllToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem expandAllToolStripMenuItem;
+ }
+}
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/FormForNewCellType.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/FormForNewCellType.cs
new file mode 100644
index 0000000..76fdcd7
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/FormForNewCellType.cs
@@ -0,0 +1,244 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Forms.FormsForOptions.ClassForOptions.Children;
+using HCSAnalyzer.Simulator.Classes;
+
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ public partial class FormForNewCellType : Form
+ {
+
+ #region List Parameters
+
+ cListParams ListParams;
+ public PanelForTransitionMatrix TransitionMatrixGUI;
+
+ public class cListParams : List
+ {
+ public cListParams(FormForSimuGenerator Parent, FormForNewCellType DirectParent)
+ {
+ this.Add(new cParamGeneral("General"));
+ this.Add(new cParamTransitionMatrix("TransitionMatrix", Parent, DirectParent));
+ this.Add(new cParamVelocity("Velocity"));
+ this.Add(new cParamCellCycle("CellCycle"));
+ }
+
+ public Panel GetPanel(string Name)
+ {
+ if (Name == null) return null;
+
+ foreach (var item in this)
+ if (item.Name == Name) return item.GetPanel();
+
+ return null;
+ }
+
+ public cParamAlgo GetListParams(string CategoryName)
+ {
+ foreach (cParamAlgo item in this)
+ {
+ if (item.Name == CategoryName) return item;
+ }
+ return null;
+
+ }
+ }
+
+ [Serializable]
+ public class cParamCellCycle : cParamAlgo
+ {
+ public cParamCellCycle(string Name)
+ : base(Name)
+ {
+ PanelForParamCellCycle PanelForOption = new PanelForParamCellCycle();
+ this.PanelToDisplay = PanelForOption.panel;
+ }
+ }
+
+ [Serializable]
+ public class cParamVelocity : cParamAlgo
+ {
+ public cParamVelocity(string Name)
+ : base(Name)
+ {
+ PanelForParamVelocity PanelForOption = new PanelForParamVelocity();
+ this.PanelToDisplay = PanelForOption.panel;
+ }
+ }
+
+ [Serializable]
+ public class cParamGeneral : cParamAlgo
+ {
+ public cParamGeneral(string Name)
+ : base(Name)
+ {
+ PanelForParamGeneralForCellType PanelForOption = new PanelForParamGeneralForCellType();
+ this.PanelToDisplay = PanelForOption.panel;
+ }
+ }
+
+
+
+ [Serializable]
+ public class cParamTransitionMatrix : cParamAlgo
+ {
+ public cParamTransitionMatrix(string Name, FormForSimuGenerator Parent, FormForNewCellType DirectParent)
+ : base(Name)
+ {
+ PanelForTransitionMatrix PanelForOption = new PanelForTransitionMatrix(Parent, DirectParent);
+ this.PanelToDisplay = PanelForOption.panel;
+ }
+ }
+
+ #endregion
+ FormForSimuGenerator Parent;
+
+
+ public FormForNewCellType(FormForSimuGenerator Parent)
+ {
+ InitializeComponent();
+
+ this.treeViewForOptions.ExpandAll();
+ this.treeViewForOptions.SelectedNode = this.treeViewForOptions.Nodes[0];
+ this.ListParams = new cListParams(Parent, this);
+ this.Parent = Parent;
+
+ }
+ public FormForNewCellType(FormForSimuGenerator Parent, cCellType CurrentType)
+ {
+ InitializeComponent();
+
+ this.treeViewForOptions.ExpandAll();
+ this.treeViewForOptions.SelectedNode = this.treeViewForOptions.Nodes[0];
+ this.ListParams = new cListParams(Parent, this);
+ this.Parent = Parent;
+ // ListParams.GetListParams("Velocity")
+ // ListParams.GetListParams("Velocity").GetListValuesParam().ListDoubleValues.Get("numericUpDownFront").Value = 100;
+
+ UpdateNumUpDownValue("Velocity", "numericUpDownFront", CurrentType.Velocity.Weight_Front);
+ UpdateNumUpDownValue("Velocity", "numericUpDownBack", CurrentType.Velocity.Weight_Back);
+ UpdateNumUpDownValue("Velocity", "numericUpDownTop", CurrentType.Velocity.Weight_Top);
+ UpdateNumUpDownValue("Velocity", "numericUpDownBottom", CurrentType.Velocity.Weight_Bottom);
+ UpdateNumUpDownValue("Velocity", "numericUpDownLeft", CurrentType.Velocity.Weight_Left);
+ UpdateNumUpDownValue("Velocity", "numericUpDownRight", CurrentType.Velocity.Weight_Right);
+
+ UpdatePanelCtrlColor("General", "panelColor", CurrentType.TypeColor);
+ UpdateCtrlTextValue("General", "textBoxName", CurrentType.Name);
+ UpDateTransitionMatrix("TransitionMatrix", "dataGridViewForProbaTransition", CurrentType.ListInitialTransitions);
+ }
+
+
+ void UpDateTransitionMatrix(string ParamPanelName, string ParamName, cListTransition ListTransitionValues)
+ {
+ cParamAlgo MyParamAlgo = ListParams.GetListParams(ParamPanelName);
+ Control[] ListCtrl = MyParamAlgo.GetPanel().Controls.Find(ParamName, true);
+
+ DataGridView MyGrid = (DataGridView)ListCtrl[0];
+
+ // DirectParent.TransitionMatrixGUI = this;
+ MyGrid.Rows.Clear();
+
+ foreach (var item in ListTransitionValues)
+ {
+ MyGrid.Rows.Add();
+ MyGrid.Rows[MyGrid.Rows.Count - 1].HeaderCell.Value = item.DestType.Name;
+ MyGrid[0, MyGrid.Rows.Count - 1].Value = item.Value;
+ }
+ // MyGrid.ColumnCount;
+ MyGrid.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders);
+ }
+
+ void UpdateCtrlTextValue(string ParamPanelName, string ParamName, string NewValue)
+ {
+ cParamAlgo MyParamAlgo = ListParams.GetListParams(ParamPanelName);
+ MyParamAlgo.GetListValuesParam().ListTextValues.Get(ParamName).Value = NewValue;
+
+ Control[] ListCtrl = MyParamAlgo.GetPanel().Controls.Find(ParamName, true);
+ if ((ListCtrl != null) && (ListCtrl.Length == 1))
+ ListCtrl[0].Text = NewValue;
+ }
+
+ void UpdateNumUpDownValue(string ParamPanelName, string ParamName, double NewValue)
+ {
+ cParamAlgo MyParamAlgo = ListParams.GetListParams(ParamPanelName);
+ MyParamAlgo.GetListValuesParam().ListDoubleValues.Get(ParamName).Value = NewValue;
+
+ Control[] ListCtrl = MyParamAlgo.GetPanel().Controls.Find(ParamName, true);
+ if ((ListCtrl != null) && (ListCtrl.Length == 1))
+ ListCtrl[0].Text = NewValue.ToString();
+ }
+
+ void UpdatePanelCtrlColor(string ParamPanelName, string ParamName, Color NewValue)
+ {
+ cParamAlgo MyParamAlgo = ListParams.GetListParams(ParamPanelName);
+ MyParamAlgo.GetListValuesParam().ListColorValues.Get(ParamName).Value = NewValue;
+
+ Control[] ListCtrl = MyParamAlgo.GetPanel().Controls.Find(ParamName, true);
+ if ((ListCtrl != null) && (ListCtrl.Length == 1))
+ {
+ ListCtrl[0].BackColor = NewValue;
+ }
+ }
+
+
+
+ private void treeViewForOptions_AfterSelect(object sender, TreeViewEventArgs e)
+ {
+ this.panelForDisplay.Controls.Clear();
+ string TagName = (string)e.Node.Tag;
+ Panel PanelToDisp = ListParams.GetPanel(TagName);
+ if (PanelToDisp == null) return;
+ this.panelForDisplay.Controls.Add(PanelToDisp);
+ }
+
+ public cCellType NewCellType;
+
+ private void buttonOk_Click(object sender, EventArgs e)
+ {
+ double Front = (double)(ListParams.GetListParams("Velocity").GetListValuesParam().ListDoubleValues.Get("numericUpDownFront").Value);
+ double Back = (double)(ListParams.GetListParams("Velocity").GetListValuesParam().ListDoubleValues.Get("numericUpDownBack").Value);
+ double Left = (double)(ListParams.GetListParams("Velocity").GetListValuesParam().ListDoubleValues.Get("numericUpDownLeft").Value);
+ double Right = (double)(ListParams.GetListParams("Velocity").GetListValuesParam().ListDoubleValues.Get("numericUpDownRight").Value);
+ double Top = (double)(ListParams.GetListParams("Velocity").GetListValuesParam().ListDoubleValues.Get("numericUpDownTop").Value);
+ double Bottom = (double)(ListParams.GetListParams("Velocity").GetListValuesParam().ListDoubleValues.Get("numericUpDownBottom").Value);
+
+ cVelocity Velocity = new cVelocity(Front, Back, Left, Right, Top, Bottom);
+ Velocity.Speed = 1;
+
+ string Name = (string)(ListParams.GetListParams("General").GetListValuesParam().ListTextValues.Get("textBoxName").Value);
+
+ Color PickedColor = (Color)(ListParams.GetListParams("General").GetListValuesParam().ListColorValues.Get("panelColor").Value);
+
+ List NewListTransitions = new List();
+
+ for (int IdxRow = 0; IdxRow < this.TransitionMatrixGUI.dataGridViewForProbaTransition.Rows.Count; IdxRow++)
+ {
+
+ // this.TransitionMatrixGUI.dataGridView.Rows[IdxRow];
+ NewListTransitions.Add(new cTransitionValue(Parent.ListCellTypes.FindType((string)this.TransitionMatrixGUI.dataGridViewForProbaTransition.Rows[IdxRow].HeaderCell.Value),
+ Convert.ToDouble(this.TransitionMatrixGUI.dataGridViewForProbaTransition.Rows[IdxRow].Cells[0].Value.ToString())));
+ }
+
+
+ NewCellType = new cCellType(Name, Velocity, PickedColor, new cCellCycle(), NewListTransitions);
+
+ NewCellType.ListInitialTransitions[NewCellType.ListInitialTransitions.Count - 1].DestType = NewCellType;
+ }
+
+ private void collapseAllToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ this.treeViewForOptions.CollapseAll();
+ }
+
+ private void expandAllToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ this.treeViewForOptions.ExpandAll();
+ }
+ }
+}
diff --git a/Forms/FormsForGraphsDisplay/FormForSingleCellsDisplay.resx b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/FormForNewCellType.resx
similarity index 99%
rename from Forms/FormsForGraphsDisplay/FormForSingleCellsDisplay.resx
rename to Cell-by-Cell and DB/Simulator/Forms/NewCellType/FormForNewCellType.resx
index 960d4b7..eca637e 100644
--- a/Forms/FormsForGraphsDisplay/FormForSingleCellsDisplay.resx
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/FormForNewCellType.resx
@@ -117,7 +117,7 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
17, 17
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamCellCycle.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamCellCycle.Designer.cs
new file mode 100644
index 0000000..2c1d3e2
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamCellCycle.Designer.cs
@@ -0,0 +1,71 @@
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ partial class PanelForParamCellCycle
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.panel = new System.Windows.Forms.Panel();
+ this.label1 = new System.Windows.Forms.Label();
+ this.panel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.Controls.Add(this.label1);
+ this.panel.Location = new System.Drawing.Point(3, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(231, 242);
+ this.panel.TabIndex = 2;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(19, 18);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(53, 13);
+ this.label1.TabIndex = 5;
+ this.label1.Text = "Cell Cycle";
+ //
+ // PanelForParamCellCycle
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForParamCellCycle";
+ this.Size = new System.Drawing.Size(238, 251);
+ this.panel.ResumeLayout(false);
+ this.panel.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public System.Windows.Forms.Panel panel;
+ private System.Windows.Forms.Label label1;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamCellCycle.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamCellCycle.cs
new file mode 100644
index 0000000..2495969
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamCellCycle.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ public partial class PanelForParamCellCycle : UserControl
+ {
+ public PanelForParamCellCycle()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamCellCycle.resx b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamCellCycle.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamCellCycle.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/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamGeneralForCellType.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamGeneralForCellType.Designer.cs
new file mode 100644
index 0000000..917d626
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamGeneralForCellType.Designer.cs
@@ -0,0 +1,107 @@
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ partial class PanelForParamGeneralForCellType
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.panel = new System.Windows.Forms.Panel();
+ this.textBoxName = new System.Windows.Forms.TextBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.panelColor = new System.Windows.Forms.Panel();
+ this.panel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.Controls.Add(this.panelColor);
+ this.panel.Controls.Add(this.label2);
+ this.panel.Controls.Add(this.textBoxName);
+ this.panel.Controls.Add(this.label1);
+ this.panel.Location = new System.Drawing.Point(3, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(231, 242);
+ this.panel.TabIndex = 1;
+ //
+ // textBoxName
+ //
+ this.textBoxName.Location = new System.Drawing.Point(60, 15);
+ this.textBoxName.Name = "textBoxName";
+ this.textBoxName.Size = new System.Drawing.Size(134, 20);
+ this.textBoxName.TabIndex = 6;
+ this.textBoxName.Text = "New Type";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(19, 18);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(35, 13);
+ this.label1.TabIndex = 5;
+ this.label1.Text = "Name";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(19, 47);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(31, 13);
+ this.label2.TabIndex = 7;
+ this.label2.Text = "Color";
+ //
+ // panelColor
+ //
+ this.panelColor.BackColor = System.Drawing.Color.Chocolate;
+ this.panelColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.panelColor.Location = new System.Drawing.Point(60, 48);
+ this.panelColor.Name = "panelColor";
+ this.panelColor.Size = new System.Drawing.Size(134, 13);
+ this.panelColor.TabIndex = 8;
+ this.panelColor.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panelColor_MouseClick);
+ //
+ // PanelForParamGeneralForCellType
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForParamGeneralForCellType";
+ this.Size = new System.Drawing.Size(238, 252);
+ this.panel.ResumeLayout(false);
+ this.panel.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public System.Windows.Forms.Panel panel;
+ private System.Windows.Forms.TextBox textBoxName;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Panel panelColor;
+ private System.Windows.Forms.Label label2;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamGeneralForCellType.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamGeneralForCellType.cs
new file mode 100644
index 0000000..e05f82a
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamGeneralForCellType.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ public partial class PanelForParamGeneralForCellType : UserControl
+ {
+ public PanelForParamGeneralForCellType()
+ {
+ InitializeComponent();
+ }
+
+ private void panelColor_MouseClick(object sender, MouseEventArgs e)
+ {
+ ColorDialog ColorPicker = new ColorDialog();
+ if(ColorPicker.ShowDialog() != DialogResult.OK) return;
+ panelColor.BackColor = ColorPicker.Color;
+ panelColor.Refresh();
+
+ }
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamGeneralForCellType.resx b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamGeneralForCellType.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamGeneralForCellType.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/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamVelocity.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamVelocity.Designer.cs
new file mode 100644
index 0000000..1f46537
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamVelocity.Designer.cs
@@ -0,0 +1,251 @@
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ partial class PanelForParamVelocity
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.panel = new System.Windows.Forms.Panel();
+ this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.resetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.label6 = new System.Windows.Forms.Label();
+ this.numericUpDownBottom = new System.Windows.Forms.NumericUpDown();
+ this.label5 = new System.Windows.Forms.Label();
+ this.numericUpDownTop = new System.Windows.Forms.NumericUpDown();
+ this.label4 = new System.Windows.Forms.Label();
+ this.numericUpDownRight = new System.Windows.Forms.NumericUpDown();
+ this.label3 = new System.Windows.Forms.Label();
+ this.numericUpDownLeft = new System.Windows.Forms.NumericUpDown();
+ this.label2 = new System.Windows.Forms.Label();
+ this.numericUpDownBack = new System.Windows.Forms.NumericUpDown();
+ this.label1 = new System.Windows.Forms.Label();
+ this.numericUpDownFront = new System.Windows.Forms.NumericUpDown();
+ this.panel.SuspendLayout();
+ this.contextMenuStrip.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownBottom)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTop)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownRight)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLeft)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownBack)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownFront)).BeginInit();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.ContextMenuStrip = this.contextMenuStrip;
+ this.panel.Controls.Add(this.label6);
+ this.panel.Controls.Add(this.numericUpDownBottom);
+ this.panel.Controls.Add(this.label5);
+ this.panel.Controls.Add(this.numericUpDownTop);
+ this.panel.Controls.Add(this.label4);
+ this.panel.Controls.Add(this.numericUpDownRight);
+ this.panel.Controls.Add(this.label3);
+ this.panel.Controls.Add(this.numericUpDownLeft);
+ this.panel.Controls.Add(this.label2);
+ this.panel.Controls.Add(this.numericUpDownBack);
+ this.panel.Controls.Add(this.label1);
+ this.panel.Controls.Add(this.numericUpDownFront);
+ this.panel.Location = new System.Drawing.Point(3, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(231, 242);
+ this.panel.TabIndex = 3;
+ //
+ // contextMenuStrip
+ //
+ this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.resetToolStripMenuItem});
+ this.contextMenuStrip.Name = "contextMenuStrip";
+ this.contextMenuStrip.Size = new System.Drawing.Size(103, 26);
+ //
+ // resetToolStripMenuItem
+ //
+ this.resetToolStripMenuItem.Name = "resetToolStripMenuItem";
+ this.resetToolStripMenuItem.Size = new System.Drawing.Size(102, 22);
+ this.resetToolStripMenuItem.Text = "Reset";
+ this.resetToolStripMenuItem.Click += new System.EventHandler(this.resetToolStripMenuItem_Click);
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(112, 215);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(35, 13);
+ this.label6.TabIndex = 17;
+ this.label6.Text = "Down";
+ //
+ // numericUpDownBottom
+ //
+ this.numericUpDownBottom.DecimalPlaces = 2;
+ this.numericUpDownBottom.Location = new System.Drawing.Point(151, 212);
+ this.numericUpDownBottom.Name = "numericUpDownBottom";
+ this.numericUpDownBottom.Size = new System.Drawing.Size(67, 20);
+ this.numericUpDownBottom.TabIndex = 16;
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(112, 189);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(21, 13);
+ this.label5.TabIndex = 15;
+ this.label5.Text = "Up";
+ //
+ // numericUpDownTop
+ //
+ this.numericUpDownTop.DecimalPlaces = 2;
+ this.numericUpDownTop.Location = new System.Drawing.Point(151, 186);
+ this.numericUpDownTop.Name = "numericUpDownTop";
+ this.numericUpDownTop.Size = new System.Drawing.Size(67, 20);
+ this.numericUpDownTop.TabIndex = 14;
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(169, 97);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(32, 13);
+ this.label4.TabIndex = 13;
+ this.label4.Text = "Right";
+ //
+ // numericUpDownRight
+ //
+ this.numericUpDownRight.DecimalPlaces = 2;
+ this.numericUpDownRight.Location = new System.Drawing.Point(151, 74);
+ this.numericUpDownRight.Name = "numericUpDownRight";
+ this.numericUpDownRight.Size = new System.Drawing.Size(68, 20);
+ this.numericUpDownRight.TabIndex = 12;
+ this.numericUpDownRight.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(21, 97);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(25, 13);
+ this.label3.TabIndex = 11;
+ this.label3.Text = "Left";
+ //
+ // numericUpDownLeft
+ //
+ this.numericUpDownLeft.DecimalPlaces = 2;
+ this.numericUpDownLeft.Location = new System.Drawing.Point(3, 74);
+ this.numericUpDownLeft.Name = "numericUpDownLeft";
+ this.numericUpDownLeft.Size = new System.Drawing.Size(68, 20);
+ this.numericUpDownLeft.TabIndex = 10;
+ this.numericUpDownLeft.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(94, 140);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(32, 13);
+ this.label2.TabIndex = 9;
+ this.label2.Text = "Back";
+ //
+ // numericUpDownBack
+ //
+ this.numericUpDownBack.DecimalPlaces = 2;
+ this.numericUpDownBack.Location = new System.Drawing.Point(77, 117);
+ this.numericUpDownBack.Name = "numericUpDownBack";
+ this.numericUpDownBack.Size = new System.Drawing.Size(67, 20);
+ this.numericUpDownBack.TabIndex = 8;
+ this.numericUpDownBack.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(94, 13);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(31, 13);
+ this.label1.TabIndex = 7;
+ this.label1.Text = "Front";
+ //
+ // numericUpDownFront
+ //
+ this.numericUpDownFront.DecimalPlaces = 2;
+ this.numericUpDownFront.Location = new System.Drawing.Point(76, 29);
+ this.numericUpDownFront.Name = "numericUpDownFront";
+ this.numericUpDownFront.Size = new System.Drawing.Size(68, 20);
+ this.numericUpDownFront.TabIndex = 6;
+ this.numericUpDownFront.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // PanelForParamVelocity
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForParamVelocity";
+ this.Size = new System.Drawing.Size(238, 250);
+ this.panel.ResumeLayout(false);
+ this.panel.PerformLayout();
+ this.contextMenuStrip.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownBottom)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTop)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownRight)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLeft)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownBack)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownFront)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ public System.Windows.Forms.Panel panel;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.NumericUpDown numericUpDownBottom;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.NumericUpDown numericUpDownTop;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.NumericUpDown numericUpDownRight;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.NumericUpDown numericUpDownLeft;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.NumericUpDown numericUpDownBack;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.NumericUpDown numericUpDownFront;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
+ private System.Windows.Forms.ToolStripMenuItem resetToolStripMenuItem;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamVelocity.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamVelocity.cs
new file mode 100644
index 0000000..49b3985
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamVelocity.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ public partial class PanelForParamVelocity : UserControl
+ {
+ public PanelForParamVelocity()
+ {
+ InitializeComponent();
+ }
+
+ private void resetToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ this.numericUpDownBack.Value = 1;
+ this.numericUpDownFront.Value = 1;
+ this.numericUpDownLeft.Value = 1;
+ this.numericUpDownRight.Value = 1;
+ this.numericUpDownTop.Value = 0;
+ this.numericUpDownBottom.Value = 0;
+ }
+
+
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamVelocity.resx b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamVelocity.resx
new file mode 100644
index 0000000..2d8292b
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForParamVelocity.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForTransitionMatrix.Designer.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForTransitionMatrix.Designer.cs
new file mode 100644
index 0000000..bd64ba9
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForTransitionMatrix.Designer.cs
@@ -0,0 +1,118 @@
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ partial class PanelForTransitionMatrix
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
+ this.dataGridViewForProbaTransition = new System.Windows.Forms.DataGridView();
+ this.ColumnForNames = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.resetToNoTransitionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.panel = new System.Windows.Forms.Panel();
+ ((System.ComponentModel.ISupportInitialize)(this.dataGridViewForProbaTransition)).BeginInit();
+ this.contextMenuStrip.SuspendLayout();
+ this.panel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // dataGridViewForProbaTransition
+ //
+ this.dataGridViewForProbaTransition.AllowUserToAddRows = false;
+ this.dataGridViewForProbaTransition.AllowUserToDeleteRows = false;
+ dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dataGridViewForProbaTransition.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
+ this.dataGridViewForProbaTransition.ColumnHeadersHeight = 28;
+ this.dataGridViewForProbaTransition.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.ColumnForNames});
+ this.dataGridViewForProbaTransition.Location = new System.Drawing.Point(3, 0);
+ this.dataGridViewForProbaTransition.Name = "dataGridViewForProbaTransition";
+ this.dataGridViewForProbaTransition.Size = new System.Drawing.Size(244, 235);
+ this.dataGridViewForProbaTransition.TabIndex = 0;
+ //
+ // ColumnForNames
+ //
+ this.ColumnForNames.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+ dataGridViewCellStyle2.Format = "N2";
+ dataGridViewCellStyle2.NullValue = null;
+ this.ColumnForNames.DefaultCellStyle = dataGridViewCellStyle2;
+ this.ColumnForNames.HeaderText = "Probability";
+ this.ColumnForNames.Name = "ColumnForNames";
+ this.ColumnForNames.Width = 80;
+ //
+ // contextMenuStrip
+ //
+ this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.resetToNoTransitionToolStripMenuItem});
+ this.contextMenuStrip.Name = "contextMenuStrip";
+ this.contextMenuStrip.Size = new System.Drawing.Size(187, 26);
+ //
+ // resetToNoTransitionToolStripMenuItem
+ //
+ this.resetToNoTransitionToolStripMenuItem.Name = "resetToNoTransitionToolStripMenuItem";
+ this.resetToNoTransitionToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
+ this.resetToNoTransitionToolStripMenuItem.Text = "Reset to no transition";
+ this.resetToNoTransitionToolStripMenuItem.Click += new System.EventHandler(this.resetToNoTransitionToolStripMenuItem_Click);
+ //
+ // panel
+ //
+ this.panel.Controls.Add(this.dataGridViewForProbaTransition);
+ this.panel.Location = new System.Drawing.Point(3, 3);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(250, 238);
+ this.panel.TabIndex = 1;
+ //
+ // PanelForTransitionMatrix
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.panel);
+ this.Name = "PanelForTransitionMatrix";
+ this.Size = new System.Drawing.Size(256, 244);
+ ((System.ComponentModel.ISupportInitialize)(this.dataGridViewForProbaTransition)).EndInit();
+ this.contextMenuStrip.ResumeLayout(false);
+ this.panel.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
+ private System.Windows.Forms.ToolStripMenuItem resetToNoTransitionToolStripMenuItem;
+ public System.Windows.Forms.Panel panel;
+ public System.Windows.Forms.DataGridView dataGridViewForProbaTransition;
+ private System.Windows.Forms.DataGridViewTextBoxColumn ColumnForNames;
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForTransitionMatrix.cs b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForTransitionMatrix.cs
new file mode 100644
index 0000000..d62232a
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForTransitionMatrix.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HCSAnalyzer.Simulator.Classes;
+
+namespace HCSAnalyzer.Simulator.Forms.NewCellType
+{
+ public partial class PanelForTransitionMatrix : UserControl
+ {
+ FormForSimuGenerator Parent;
+
+ public PanelForTransitionMatrix(FormForSimuGenerator Parent, FormForNewCellType DirectParent)
+ {
+ InitializeComponent();
+ this.Parent = Parent;
+ DirectParent.TransitionMatrixGUI = this;
+ foreach (var item in Parent.ListCellTypes)
+ {
+ this.dataGridViewForProbaTransition.Rows.Add();
+ this.dataGridViewForProbaTransition.Rows[this.dataGridViewForProbaTransition.Rows.Count - 1].HeaderCell.Value = item.Name;
+ this.dataGridViewForProbaTransition[0, this.dataGridViewForProbaTransition.Rows.Count - 1].Value = 0;
+ }
+
+ this.dataGridViewForProbaTransition.Rows.Add();
+ this.dataGridViewForProbaTransition.Rows[this.dataGridViewForProbaTransition.Rows.Count - 1].HeaderCell.Value = "New Type";
+ this.dataGridViewForProbaTransition[0, this.dataGridViewForProbaTransition.Rows.Count - 1].Value = 1;
+
+ //dataGridViewForProbaTransition.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
+ // dataGridViewForProbaTransition.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;
+ this.dataGridViewForProbaTransition.AutoResizeRowHeadersWidth( DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);//[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
+
+ }
+
+
+
+ //public PanelForTransitionMatrix(FormForSimuGenerator Parent, FormForNewCellType DirectParent, cCellType CellType )
+ //{
+ // InitializeComponent();
+ // this.Parent = Parent;
+ // DirectParent.TransitionMatrixGUI = this;
+ // foreach (var item in CellType.ListInitialTransitions)
+ // {
+ // this.dataGridView.Rows.Add();
+ // this.dataGridView.Rows[this.dataGridView.Rows.Count - 1].HeaderCell.Value = item.DestType.Name;
+ // this.dataGridView[0, this.dataGridView.Rows.Count - 1].Value = item.Value;
+ // }
+ //}
+
+ private void resetToNoTransitionToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+
+ }
+
+
+ }
+}
diff --git a/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForTransitionMatrix.resx b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForTransitionMatrix.resx
new file mode 100644
index 0000000..fc53e19
--- /dev/null
+++ b/Cell-by-Cell and DB/Simulator/Forms/NewCellType/PanelForTransitionMatrix.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ True
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/Classes/cExportDatabase.cs b/Cell-by-Cell and DB/cExportDatabase.cs
similarity index 100%
rename from Classes/cExportDatabase.cs
rename to Cell-by-Cell and DB/cExportDatabase.cs
diff --git a/Class2.cs b/ClassBase.cs
similarity index 94%
rename from Class2.cs
rename to ClassBase.cs
index 99eb08c..809d6b1 100644
--- a/Class2.cs
+++ b/ClassBase.cs
@@ -6,7 +6,7 @@
namespace HCSAnalyzer
{
- class Class2
+ class ClassBase
{
///
/// The main entry point for the application.
@@ -17,7 +17,6 @@ static void Main()
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new HCSAnalyzer());
-
}
diff --git a/ClassDiagram1.cd b/ClassDiagram1.cd
deleted file mode 100644
index e3728b6..0000000
--- a/ClassDiagram1.cd
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
- AAAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAIAAAAAIAA=
- Classes\cDRCanalysis.cs
-
-
-
-
-
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
- Classes\cDRCanalysis.cs
-
-
-
-
-
- AAAAAAIAAAAAAAAAAAAAFQAAAAAAAAAAAAAACCAAAAQ=
- Classes\cDRCanalysis.cs
-
-
-
-
-
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
- Classes\cDRCanalysis.cs
-
-
-
-
-
- AAAAAEAAAAAAAAAAAAAUAAAAAAAIQAAAQAAAAAAAAEA=
- Classes\cDRCanalysis.cs
-
-
-
-
\ No newline at end of file
diff --git a/Classes/Base Classes/Data/cFeedBackMessage.cs b/Classes/Base Classes/Data/cFeedBackMessage.cs
new file mode 100644
index 0000000..f657bdf
--- /dev/null
+++ b/Classes/Base Classes/Data/cFeedBackMessage.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HCSAnalyzer.Classes.Base_Classes
+{
+ public class cFeedBackMessage
+ {
+ public bool IsSucceed;
+ public string Message;
+
+ public cFeedBackMessage(bool IsSucceed)
+ {
+ if (!IsSucceed)
+ {
+ this.IsSucceed = false;
+ this.Message = "Fail";
+ }
+ else
+ {
+ this.IsSucceed = true;
+ this.Message = "Success";
+
+ }
+
+ }
+
+ }
+}
diff --git a/Classes/Base Classes/Data/cRandomGenerator.cs b/Classes/Base Classes/Data/cRandomGenerator.cs
new file mode 100644
index 0000000..396097f
--- /dev/null
+++ b/Classes/Base Classes/Data/cRandomGenerator.cs
@@ -0,0 +1,55 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+using System.Drawing;
+
+namespace HCSAnalyzer.Classes.Base_Classes.Data
+{
+ class cRandomGenerator : cDataGenerator
+ {
+ #region Parameters
+ public int List_Number = 1;
+ public int Size_List = 100;
+ public double Min = 0;
+ public double Max = 100;
+ #endregion
+
+
+ Random RND = new Random();
+ cGlobalInfo GlobalInfo;
+ cExtendedTable ToReturn = null;
+
+
+ public cRandomGenerator(cGlobalInfo GlobalInfo)
+ {
+ this.GlobalInfo = GlobalInfo;
+ }
+
+ public cExtendedTable GetOutPut()
+ {
+ return this.ToReturn;
+ }
+
+ public void Run()
+ {
+ ToReturn = new cExtendedTable();
+ for (int IdxList = 0; IdxList < this.List_Number; IdxList++)
+ {
+
+ cExtendedList CurrentList = new cExtendedList("List" + IdxList, GlobalInfo.ListCellularPhenotypes[IdxList % GlobalInfo.ListCellularPhenotypes.Count].ColourForDisplay);
+
+
+ for (int IdxValue = 0; IdxValue < this.Size_List; IdxValue++)
+ {
+ CurrentList.Add(RND.NextDouble() * (Max - Min) + Min);
+ }
+
+ ToReturn.Add(CurrentList);
+ }
+ }
+
+
+ }
+}
diff --git a/Classes/Base Classes/DataAnalysis/Arithmetic/cArithmeticOperation.cs b/Classes/Base Classes/DataAnalysis/Arithmetic/cArithmeticOperation.cs
new file mode 100644
index 0000000..c3db07a
--- /dev/null
+++ b/Classes/Base Classes/DataAnalysis/Arithmetic/cArithmeticOperation.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+
+namespace HCSAnalyzer.Classes.Base_Classes.DataProcessing
+{
+ abstract class cArithmeticOperation : cComponent
+ {
+ protected cExtendedTable Input1;
+ protected cExtendedTable Input2;
+
+ protected cExtendedTable Output;
+
+ public cExtendedTable GetOutPut()
+ {
+ return this.Output;
+ }
+
+ }
+}
diff --git a/Classes/Base Classes/DataAnalysis/Arithmetic/cArithmetic_Abs.cs b/Classes/Base Classes/DataAnalysis/Arithmetic/cArithmetic_Abs.cs
new file mode 100644
index 0000000..343253b
--- /dev/null
+++ b/Classes/Base Classes/DataAnalysis/Arithmetic/cArithmetic_Abs.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+
+namespace HCSAnalyzer.Classes.Base_Classes.DataProcessing
+{
+ class cArithmetic_Abs : cArithmeticOperation
+ {
+ public cArithmetic_Abs()
+ {
+
+ }
+
+
+ public void SetInputData(cExtendedTable MyData)
+ {
+ this.Input1 = MyData;
+ }
+
+ public cFeedBackMessage Run()
+ {
+ cFeedBackMessage FeedBackMessage = new cFeedBackMessage(true);
+
+ if (this.Input1 == null)
+ {
+ FeedBackMessage = new cFeedBackMessage(false);
+ FeedBackMessage.Message = "No Basis defined.";
+ return FeedBackMessage;
+ }
+
+ Process();
+
+ return FeedBackMessage;
+ }
+
+ void Process()
+ {
+ this.Title = "Abs.";
+ this.Output = new cExtendedTable(this.Input1);
+ this.Output.Name = "abs(" + this.Input1.Name + ")";
+
+ for (int Col = 0; Col < this.Input1.Count; Col++)
+ {
+
+
+ for (int Row = 0; Row < this.Input1[0].Count; Row++)
+ this.Output[Col][Row] = Math.Abs(this.Input1[Col][Row]);
+ }
+ }
+
+ }
+}
diff --git a/Classes/Base Classes/DataAnalysis/Arithmetic/cArithmetic_Power.cs b/Classes/Base Classes/DataAnalysis/Arithmetic/cArithmetic_Power.cs
new file mode 100644
index 0000000..056b4d0
--- /dev/null
+++ b/Classes/Base Classes/DataAnalysis/Arithmetic/cArithmetic_Power.cs
@@ -0,0 +1,58 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+
+namespace HCSAnalyzer.Classes.Base_Classes.DataProcessing
+{
+ class cArithmetic_Power : cArithmeticOperation
+ {
+
+ double Power = 1;
+
+ public cArithmetic_Power()
+ {
+
+ }
+
+
+ public void Set_Power(double Power)
+ {
+ this.Power = Power;
+ }
+
+ public void SetInputData(cExtendedTable MyData)
+ {
+ this.Input1 = MyData;
+ }
+
+ public cFeedBackMessage Run()
+ {
+ cFeedBackMessage FeedBackMessage = new cFeedBackMessage(true);
+
+ if (this.Input1 == null)
+ {
+ FeedBackMessage = new cFeedBackMessage(false);
+ FeedBackMessage.Message = "No Basis defined.";
+ return FeedBackMessage;
+ }
+
+ Process();
+
+ return FeedBackMessage;
+ }
+
+ void Process()
+ {
+ this.Title = "Power("+ this.Power +")";
+ this.Output = new cExtendedTable(this.Input1);
+ this.Output.Name = "(" + this.Output.Name + ")^" + this.Power;
+
+ for (int Col = 0; Col < this.Input1.Count; Col++)
+ for (int Row = 0; Row < this.Input1[0].Count; Row++)
+ this.Output[Col][Row] = Math.Pow(this.Input1[Col][Row], this.Power);
+ }
+
+ }
+}
diff --git a/Classes/Base Classes/DataAnalysis/ColumnBasedAnalysis/cHistogramBuilder.cs b/Classes/Base Classes/DataAnalysis/ColumnBasedAnalysis/cHistogramBuilder.cs
new file mode 100644
index 0000000..12f2784
--- /dev/null
+++ b/Classes/Base Classes/DataAnalysis/ColumnBasedAnalysis/cHistogramBuilder.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+
+namespace HCSAnalyzer.Classes.Base_Classes.DataProcessing
+{
+ class cHistogramBuilder : cComponent
+ {
+ public cHistogramBuilder()
+ {
+ this.Title = "Histogram builder";
+ }
+
+ cExtendedTable Input;
+ cExtendedTable Output;
+
+ public double BinNumber = 100;
+ public double Min = double.NaN;
+ public double Max = double.NaN;
+
+
+ public void SetInputData(cExtendedTable InputTable)
+ {
+ this.Input = InputTable;
+ }
+
+ public cExtendedTable GetOutPut()
+ {
+ return this.Output;
+ }
+
+
+ public cFeedBackMessage Run()
+ {
+ cFeedBackMessage FeedBackMessage = new cFeedBackMessage(true);
+ if (this.Input == null)
+ {
+ FeedBackMessage = new cFeedBackMessage(false);
+ FeedBackMessage.Message = "No input data.";
+ return FeedBackMessage;
+ }
+ Process();
+
+ return FeedBackMessage;
+ }
+
+ void Process()
+ {
+ this.Output = new cExtendedTable();
+ this.Output.Name = "Histogram (" + this.Input.Name + ")";
+
+ List Res = null;
+
+ if(double.IsNaN(this.Min)||double.IsNaN(this.Max))
+ Res = Input[0].CreateHistogram(this.BinNumber);
+ else
+ Res = Input[0].CreateHistogram(this.Min,this.Max,(int)this.BinNumber);
+
+ cExtendedList ListX = new cExtendedList("Value");
+ cExtendedList ListY = new cExtendedList("Histogram value");
+
+ ListX.AddRange(Res[0]);
+ ListY.AddRange(Res[1]);
+
+ this.Output.Add(ListX);
+ this.Output.Add(ListY);
+ }
+
+ }
+}
diff --git a/Classes/Base Classes/DataAnalysis/ColumnBasedAnalysis/cStatistics.cs b/Classes/Base Classes/DataAnalysis/ColumnBasedAnalysis/cStatistics.cs
new file mode 100644
index 0000000..dc5f282
--- /dev/null
+++ b/Classes/Base Classes/DataAnalysis/ColumnBasedAnalysis/cStatistics.cs
@@ -0,0 +1,134 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+
+namespace HCSAnalyzer.Classes.Base_Classes.DataProcessing
+{
+ class cStatistics : cArithmeticOperation
+ {
+ public cStatistics()
+ {
+ this.Title = "Statistics";
+ }
+
+
+ public void SetInputData(cExtendedTable MyData)
+ {
+ this.Input1 = MyData;
+ }
+
+ public cFeedBackMessage Run()
+ {
+ cFeedBackMessage FeedBackMessage = new cFeedBackMessage(true);
+
+ if (this.Input1 == null)
+ {
+ FeedBackMessage = new cFeedBackMessage(false);
+ FeedBackMessage.Message = "No Basis defined.";
+ return FeedBackMessage;
+ }
+ if (!IsMAD && !IsMax && !IsMean && !IsMedian && !IsMin && !IsStdDev && !IsSum && !IsCV)
+ {
+ FeedBackMessage = new cFeedBackMessage(false);
+ FeedBackMessage.Message = "You have to select at least one statistic value to be computed";
+ return FeedBackMessage;
+ }
+ Process();
+
+ return FeedBackMessage;
+ }
+
+ public bool IsSum = true;
+ public bool IsMean = true;
+ public bool IsCV = true;
+ public bool IsMAD = false;
+ public bool IsStdDev = true;
+ public bool IsMedian = true;
+ public bool IsMin = false;
+ public bool IsMax = false;
+ public bool IsSkewness = false;
+ public bool IsKurtosis = false;
+
+
+
+ public void UnselectAll()
+ {
+ IsSum = false;
+ IsMean = false;
+ IsCV = false;
+ IsMAD = false;
+ IsStdDev = false;
+ IsMedian = false;
+ IsMin = false;
+ IsMax = false;
+ IsSkewness = false;
+ IsKurtosis = false;
+ }
+
+ void Process()
+ {
+ this.Title = "Statistics";
+ this.Output = new cExtendedTable();
+ this.Output.Name = "Statistics (" + this.Input1.Name + ")";
+
+ this.Output.ListRowNames = new List();
+
+ if(IsSum)
+ this.Output.ListRowNames.Add("Sum");
+ if (IsMean)
+ this.Output.ListRowNames.Add("Mean");
+ if (IsStdDev)
+ this.Output.ListRowNames.Add("StdDev");
+ if (IsCV)
+ this.Output.ListRowNames.Add("CV");
+ //if (IsMedian)
+ // this.Output.ListRowNames.Add("Median");
+ //if (IsMAD)
+ // this.Output.ListRowNames.Add("MAD");
+ if (IsMin)
+ this.Output.ListRowNames.Add("Min");
+ if (IsMax)
+ this.Output.ListRowNames.Add("Max");
+ if (IsSkewness)
+ this.Output.ListRowNames.Add("Skewness");
+ if (IsKurtosis)
+ this.Output.ListRowNames.Add("Kurtosis");
+
+
+ for (int Col = 0; Col < this.Input1.Count; Col++)
+ {
+ this.Output.Add(new cExtendedList());
+ this.Output[Col].Name = this.Input1[Col].Name;
+ if (this.Input1[Col].Tag != null)
+ {
+ this.Output[Col].Tag = this.Input1[Col].Tag;
+ }
+
+ if (IsSum)
+ this.Output[Col].Add(this.Input1[Col].Sum());
+ if (IsMean)
+ this.Output[Col].Add(this.Input1[Col].Mean());
+ if (IsStdDev)
+ this.Output[Col].Add(this.Input1[Col].Std());
+ if (IsCV)
+ this.Output[Col].Add(this.Input1[Col].CV());
+ // if (IsMedian)
+ //this.Output[Col].Add(this.Input1[Col].Med);
+ //if (IsMAD)
+ //this.Output[Col].Add(this.Input1[Col].Ma);
+ if (IsMin)
+ this.Output[Col].Add(this.Input1[Col].Min());
+ if (IsMax)
+ this.Output[Col].Add(this.Input1[Col].Max());
+ if (IsSkewness)
+ this.Output[Col].Add(this.Input1[Col].Skewness());
+ if (IsKurtosis)
+ this.Output[Col].Add(this.Input1[Col].Kurtosis());
+
+ }
+ }
+
+ }
+}
diff --git a/Classes/Base Classes/DataAnalysis/Fitting & Regression/cLinearRegression.cs b/Classes/Base Classes/DataAnalysis/Fitting & Regression/cLinearRegression.cs
new file mode 100644
index 0000000..d89a698
--- /dev/null
+++ b/Classes/Base Classes/DataAnalysis/Fitting & Regression/cLinearRegression.cs
@@ -0,0 +1,186 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HCSAnalyzer.Classes.Base_Classes.DataStructures;
+
+namespace HCSAnalyzer.Classes.Base_Classes.DataAnalysis
+{
+ class cLinearRegression : cComponent
+ {
+ cExtendedList ListClass = null;
+ cExtendedTable Input = null;
+ cExtendedTable Output;
+
+ public cLinearRegression()
+ {
+ this.Title = "Linear regression";
+ }
+
+
+ public void SetInputData(cExtendedTable Input)
+ {
+ this.Input = Input;
+ }
+
+ public cFeedBackMessage Run()
+ {
+ cFeedBackMessage FeedBackMessage;// = new cFeedBackMessage();
+
+ if (this.Input == null)
+ {
+ FeedBackMessage = new cFeedBackMessage(false);
+ FeedBackMessage.Message = "No input data table defined.";
+ return FeedBackMessage;
+ }
+
+ // ------------- now proceed -------------
+ Process();
+
+
+
+ FeedBackMessage = new cFeedBackMessage(true);
+ return FeedBackMessage;
+ }
+
+
+ public cExtendedTable GetOutPut()
+ {
+ return this.Output;
+ }
+
+ private void Process()
+ {
+ double[,] DataForLDA = Input.CopyToArray();
+
+ //double[,] Basis;
+ //double[] s2;
+ int Info;
+ /*************************************************************************
+ Linear least squares fitting.
+
+ QR decomposition is used to reduce task to MxM, then triangular solver or
+ SVD-based solver is used depending on condition number of the system. It
+ allows to maximize speed and retain decent accuracy.
+
+ INPUT PARAMETERS:
+ Y - array[0..N-1] Function values in N points.
+ FMatrix - a table of basis functions values, array[0..N-1, 0..M-1].
+ FMatrix[I, J] - value of J-th basis function in I-th point.
+ N - number of points used. N>=1.
+ M - number of basis functions, M>=1.
+
+ OUTPUT PARAMETERS:
+ Info - error code:
+ * -4 internal SVD decomposition subroutine failed (very
+ rare and for degenerate systems only)
+ * 1 task is solved
+ C - decomposition coefficients, array[0..M-1]
+ Rep - fitting report. Following fields are set:
+ * Rep.TaskRCond reciprocal of condition number
+ * R2 non-adjusted coefficient of determination
+ (non-weighted)
+ * RMSError rms error on the (X,Y).
+ * AvgError average error on the (X,Y).
+ * AvgRelError average relative error on the non-zero Y
+ * MaxError maximum error
+ NON-WEIGHTED ERRORS ARE CALCULATED
+
+ ERRORS IN PARAMETERS
+
+ This solver also calculates different kinds of errors in parameters and
+ fills corresponding fields of report:
+ * Rep.CovPar covariance matrix for parameters, array[K,K].
+ * Rep.ErrPar errors in parameters, array[K],
+ errpar = sqrt(diag(CovPar))
+ * Rep.ErrCurve vector of fit errors - standard deviations of empirical
+ best-fit curve from "ideal" best-fit curve built with
+ infinite number of samples, array[N].
+ errcurve = sqrt(diag(F*CovPar*F')),
+ where F is functions matrix.
+ * Rep.Noise vector of per-point estimates of noise, array[N]
+
+ NOTE: noise in the data is estimated as follows:
+ * for fitting without user-supplied weights all points are
+ assumed to have same level of noise, which is estimated from
+ the data
+ * for fitting with user-supplied weights we assume that noise
+ level in I-th point is inversely proportional to Ith weight.
+ Coefficient of proportionality is estimated from the data.
+
+ NOTE: we apply small amount of regularization when we invert squared
+ Jacobian and calculate covariance matrix. It guarantees that
+ algorithm won't divide by zero during inversion, but skews
+ error estimates a bit (fractional error is about 10^-9).
+
+ However, we believe that this difference is insignificant for
+ all practical purposes except for the situation when you want
+ to compare ALGLIB results with "reference" implementation up
+ to the last significant digit.
+
+ -- ALGLIB --
+ Copyright 17.08.2009 by Bochkanov Sergey
+ *************************************************************************/
+
+
+ double[] weights = null;
+ int fitResult = 0;
+ double[] resultData = new double[this.Input[0].Count];
+
+ //alglib.lsfit.lsfitreport rep = new alglib.lsfit.lsfitreport();
+ //alglib.lsfit.lsfitlinear(resultData, DataForLDA, this.Input[0].Count, this.Input.Count, ref fitResult, ref weights, rep);
+
+ //alglib.lsfitstate state;
+ int info;
+ //double[] c = new double[] { 0, 0, 0, 0 };
+
+
+ //alglib.lsfitreport Nrep;
+ //alglib.lsfitresults(state, out info, out c, out Nrep);
+
+ // alglib.fisherldan(DataForLDA, this.Input[0].Count, this.Input.Count - 1, (int)this.Input[this.Input.Count - 1].Max() + 1, out Info, out Basis);
+ //Output = new cExtendedTable(Basis);
+ alglib.linearmodel LM = null;
+ alglib.lrreport Lreport = null;
+ alglib.lrbuild(DataForLDA, this.Input[0].Count, this.Input.Count-1, out info, out LM, out Lreport);
+
+ //LM.innerobj.w[0] = 1;
+
+ double[] Coeff = null;
+ int NVars;
+
+ alglib.lrunpack(LM, out Coeff, out NVars);
+
+ cExtendedList CL = new cExtendedList();
+ CL.AddRange(Coeff);
+ CL.Name = "Coefficients";
+
+ this.Output = new cExtendedTable(CL);
+
+ this.Output.ListRowNames = new List();
+
+ for (int i = 0; i < this.Output[0].Count; i++)
+ this.Output.ListRowNames.Add("Coeff_" + i);
+
+ Output.Name = "Linear regression coeff. of (" + this.Input.Name + ")";
+
+ //foreach (var item in Output)
+ //{
+ // item.ListTags = new List