diff --git a/EasyCPDLC/App.config b/EasyCPDLC/App.config
index b581f60..d6a101b 100644
--- a/EasyCPDLC/App.config
+++ b/EasyCPDLC/App.config
@@ -1,5 +1,10 @@
+
+
+
+
+
@@ -12,4 +17,14 @@
+
+
+
+ False
+
+
+ True
+
+
+
diff --git a/EasyCPDLC/EasyCPDLC.csproj b/EasyCPDLC/EasyCPDLC.csproj
index 4883d21..bbee27b 100644
--- a/EasyCPDLC/EasyCPDLC.csproj
+++ b/EasyCPDLC/EasyCPDLC.csproj
@@ -163,6 +163,12 @@
RequestForm.cs
+
+ Form
+
+
+ SettingsForm.cs
+
Form
@@ -186,6 +192,9 @@
RequestForm.cs
+
+ SettingsForm.cs
+
TelexForm.cs
@@ -199,19 +208,20 @@
Settings.settings
True
+
PreserveNewest
PreserveNewest
+
+ PreserveNewest
+
-
-
-
diff --git a/EasyCPDLC/MainForm.Designer.cs b/EasyCPDLC/MainForm.Designer.cs
index a090418..af17424 100644
--- a/EasyCPDLC/MainForm.Designer.cs
+++ b/EasyCPDLC/MainForm.Designer.cs
@@ -37,6 +37,8 @@ private void InitializeComponent()
this.retrieveButton = new System.Windows.Forms.Button();
this.atcUnitLabel = new System.Windows.Forms.Label();
this.atcUnitDisplay = new System.Windows.Forms.Label();
+ this.settingsButton = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)(this.settingsButton)).BeginInit();
this.SuspendLayout();
//
// titleLabel
@@ -45,7 +47,7 @@ private void InitializeComponent()
this.titleLabel.AutoSize = true;
this.titleLabel.Font = new System.Drawing.Font("Oxygen", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.titleLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
- this.titleLabel.Location = new System.Drawing.Point(340, 3);
+ this.titleLabel.Location = new System.Drawing.Point(334, 3);
this.titleLabel.Name = "titleLabel";
this.titleLabel.Size = new System.Drawing.Size(186, 41);
this.titleLabel.TabIndex = 0;
@@ -60,7 +62,7 @@ private void InitializeComponent()
this.exitButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.exitButton.Font = new System.Drawing.Font("Oxygen", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.exitButton.ForeColor = System.Drawing.SystemColors.ControlLight;
- this.exitButton.Location = new System.Drawing.Point(515, 0);
+ this.exitButton.Location = new System.Drawing.Point(531, 0);
this.exitButton.Name = "exitButton";
this.exitButton.Size = new System.Drawing.Size(24, 24);
this.exitButton.TabIndex = 1;
@@ -75,14 +77,14 @@ private void InitializeComponent()
| System.Windows.Forms.AnchorStyles.Right)));
this.outputTable.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
this.outputTable.ColumnCount = 2;
- this.outputTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80F));
- this.outputTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 433F));
+ this.outputTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
+ this.outputTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 87.5F));
this.outputTable.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
this.outputTable.Location = new System.Drawing.Point(12, 66);
this.outputTable.Name = "outputTable";
this.outputTable.RowCount = 1;
this.outputTable.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.outputTable.Size = new System.Drawing.Size(513, 112);
+ this.outputTable.Size = new System.Drawing.Size(528, 127);
this.outputTable.TabIndex = 3;
this.outputTable.Click += new System.EventHandler(this.outputTable_Click);
//
@@ -137,7 +139,7 @@ private void InitializeComponent()
this.atcUnitLabel.AutoSize = true;
this.atcUnitLabel.Font = new System.Drawing.Font("Oxygen", 11F, System.Drawing.FontStyle.Bold);
this.atcUnitLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
- this.atcUnitLabel.Location = new System.Drawing.Point(343, 44);
+ this.atcUnitLabel.Location = new System.Drawing.Point(337, 44);
this.atcUnitLabel.Name = "atcUnitLabel";
this.atcUnitLabel.Size = new System.Drawing.Size(135, 19);
this.atcUnitLabel.TabIndex = 7;
@@ -149,19 +151,32 @@ private void InitializeComponent()
this.atcUnitDisplay.AutoSize = true;
this.atcUnitDisplay.Font = new System.Drawing.Font("Oxygen", 11F, System.Drawing.FontStyle.Bold);
this.atcUnitDisplay.ForeColor = System.Drawing.SystemColors.ControlLight;
- this.atcUnitDisplay.Location = new System.Drawing.Point(478, 44);
+ this.atcUnitDisplay.Location = new System.Drawing.Point(472, 44);
this.atcUnitDisplay.Name = "atcUnitDisplay";
this.atcUnitDisplay.Size = new System.Drawing.Size(29, 19);
this.atcUnitDisplay.TabIndex = 8;
this.atcUnitDisplay.Text = "----";
//
+ // settingsButton
+ //
+ this.settingsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.settingsButton.Image = global::EasyCPDLC.Properties.Resources.cog_wheel_gear_setting;
+ this.settingsButton.Location = new System.Drawing.Point(516, 3);
+ this.settingsButton.Name = "settingsButton";
+ this.settingsButton.Size = new System.Drawing.Size(18, 18);
+ this.settingsButton.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ this.settingsButton.TabIndex = 9;
+ this.settingsButton.TabStop = false;
+ this.settingsButton.Click += new System.EventHandler(this.settingsButton_Click);
+ //
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
- this.ClientSize = new System.Drawing.Size(537, 187);
+ this.ClientSize = new System.Drawing.Size(552, 202);
+ this.Controls.Add(this.settingsButton);
this.Controls.Add(this.atcUnitDisplay);
this.Controls.Add(this.atcUnitLabel);
this.Controls.Add(this.retrieveButton);
@@ -172,12 +187,13 @@ private void InitializeComponent()
this.Controls.Add(this.titleLabel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.MinimumSize = new System.Drawing.Size(537, 187);
+ this.MinimumSize = new System.Drawing.Size(552, 202);
this.Name = "MainForm";
this.Text = "MainForm";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
this.Load += new System.EventHandler(this.MainForm_Load);
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MoveWindow);
+ ((System.ComponentModel.ISupportInitialize)(this.settingsButton)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -193,6 +209,7 @@ private void InitializeComponent()
private System.Windows.Forms.Button retrieveButton;
private System.Windows.Forms.Label atcUnitLabel;
private System.Windows.Forms.Label atcUnitDisplay;
+ private System.Windows.Forms.PictureBox settingsButton;
}
}
diff --git a/EasyCPDLC/MainForm.cs b/EasyCPDLC/MainForm.cs
index e3a094f..60fcbc1 100644
--- a/EasyCPDLC/MainForm.cs
+++ b/EasyCPDLC/MainForm.cs
@@ -38,6 +38,7 @@ namespace EasyCPDLC
{
public partial class MainForm : Form
{
+
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
private const int cGrip = 16;
@@ -59,6 +60,32 @@ public partial class MainForm : Form
private RequestForm rForm;
private TelexForm tForm;
+ private SettingsForm sForm;
+
+ public bool stayOnTop
+ {
+ get
+ {
+ return Properties.Settings.Default.StayOnTop;
+ }
+ set
+ {
+ Properties.Settings.Default.StayOnTop = value;
+ this.TopMost = value;
+ }
+ }
+
+ public bool playSound
+ {
+ get
+ {
+ return Properties.Settings.Default.PlayAudibleAlert;
+ }
+ set
+ {
+ Properties.Settings.Default.PlayAudibleAlert = value;
+ }
+ }
public int messageOutCounter = 1;
private bool _connected;
@@ -85,6 +112,8 @@ public bool connected
}
}
}
+
+ public string pendingLogon = null;
private string _currentATCUnit;
public string currentATCUnit
{
@@ -137,7 +166,7 @@ public string currentATCUnit
ToolStripMenuItem deleteAllMenu;
ToolStripMenuItem freeTextMenu;
- private SoundPlayer player = new SoundPlayer(Properties.Resources.honk);
+ private SoundPlayer player = new SoundPlayer(Properties.Resources.notification);
private RegistryKey regKey = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\EasyCPDLC");
private static Regex hoppieParse = new Regex(@"{(.*?)}");
@@ -161,6 +190,7 @@ public MainForm()
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
InitializeComponent();
+ this.TopMost = stayOnTop;
this.FormBorderStyle = FormBorderStyle.None;
this.DoubleBuffered = true;
this.SetStyle(ControlStyles.ResizeRedraw, true);
@@ -194,18 +224,26 @@ private void MainForm_Load(object sender, EventArgs e)
private async void CheckNewVersion()
{
- var client = new GitHubClient(new ProductHeaderValue("EasyCPDLC"));
- var releases = await client.Repository.Release.GetAll("josh-seagrave", "EasyCPDLC");
- var latest = releases[0];
- string latestVersion = latest.TagName.Replace("cpdlc", "");
- if(latestVersion != System.Windows.Forms.Application.ProductVersion)
+ try
{
- DialogResult updateBox = MessageBox.Show(String.Format("New Version {0} Available to download from Github. This application will now exit. Would you like me to take you to the Github page for the latest release?", latestVersion), "New Version Available", MessageBoxButtons.YesNo);
- if(updateBox == DialogResult.Yes)
+ var client = new GitHubClient(new ProductHeaderValue("EasyCPDLC"));
+ var releases = await client.Repository.Release.GetAll("josh-seagrave", "EasyCPDLC");
+ var latest = releases[0];
+ string latestVersion = latest.TagName.Replace("cpdlc", "");
+ if (latestVersion != System.Windows.Forms.Application.ProductVersion)
{
- System.Diagnostics.Process.Start(latest.HtmlUrl);
+ DialogResult updateBox = MessageBox.Show(String.Format("New Version {0} Available to download from Github. This application will now exit. Would you like me to take you to the Github page for the latest release?", latestVersion), "New Version Available", MessageBoxButtons.YesNo);
+ if (updateBox == DialogResult.Yes)
+ {
+ System.Diagnostics.Process.Start(latest.HtmlUrl);
+ }
+ System.Windows.Forms.Application.Exit();
}
- System.Windows.Forms.Application.Exit();
+ }
+
+ catch
+ {
+
}
}
@@ -272,6 +310,7 @@ private void freeTextMessage(object sender, EventArgs e)
CPDLCMessage message = (CPDLCMessage)sourceControl;
tForm = new TelexForm(this, message.recipient);
+ tForm.TopMost = stayOnTop;
tForm.Show();
}
private async void RogerMessage(object sender, EventArgs e)
@@ -571,7 +610,7 @@ private async Task TelexParser(string response)
format_response += _modify[1];
WriteMessage(format_response, type, sender);
- player.Play();
+ if (playSound) { player.Play(); }
FlashWindow.Flash(this);
}
}
@@ -613,14 +652,17 @@ private async Task CPDLCParser(string _response, string _sender)
}
if (messageString.StartsWith("LOGON ACCEPTED"))
{
- return;
+ currentATCUnit = pendingLogon;
}
string message = callsign + " " + messageString.Replace("@@", "N/A").Replace("@", Environment.NewLine).Replace("_", "");
message = Regex.Replace(message, @"\s+", " ");
- if (message == "LOGOFF")
+ Logger.Debug(message);
+
+ if (message.Contains("LOGOFF"))
{
currentATCUnit = null;
+ pendingLogon = null;
}
WriteMessage(message, "CPDLC", _sender, false, header);
@@ -740,6 +782,7 @@ private void telexButton_Click(object sender, EventArgs e)
private void requestButton_Click(object sender, EventArgs e)
{
rForm = new RequestForm(this);
+ rForm.TopMost = stayOnTop;
rForm.Show();
}
@@ -786,6 +829,20 @@ protected override void WndProc(ref Message m)
}
base.WndProc(ref m);
}
+
+ private void settingsButton_Click(object sender, EventArgs e)
+ {
+ bool[] settings = new bool[] { stayOnTop, playSound };
+ sForm = new SettingsForm(this, settings);
+ sForm.TopMost = stayOnTop;
+ if (sForm.ShowDialog(this) == DialogResult.OK)
+ {
+ settings = sForm.settings;
+ stayOnTop = settings[0];
+ playSound = settings[1];
+ Properties.Settings.Default.Save();
+ }
+ }
}
internal class NoHighlightRenderer : ToolStripProfessionalRenderer
{
diff --git a/EasyCPDLC/Properties/Resources.Designer.cs b/EasyCPDLC/Properties/Resources.Designer.cs
index a45c3d5..ab0155a 100644
--- a/EasyCPDLC/Properties/Resources.Designer.cs
+++ b/EasyCPDLC/Properties/Resources.Designer.cs
@@ -70,12 +70,32 @@ internal static byte[] B612Mono_Regular {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap cog_wheel_gear_setting {
+ get {
+ object obj = ResourceManager.GetObject("cog_wheel_gear_setting", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
///
- internal static System.IO.UnmanagedMemoryStream honk {
+ internal static System.IO.UnmanagedMemoryStream notification {
get {
- return ResourceManager.GetStream("honk", resourceCulture);
+ return ResourceManager.GetStream("notification", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Byte[].
+ ///
+ internal static byte[] Oxygen_Bold {
+ get {
+ object obj = ResourceManager.GetObject("Oxygen_Bold", resourceCulture);
+ return ((byte[])(obj));
}
}
diff --git a/EasyCPDLC/Properties/Resources.resx b/EasyCPDLC/Properties/Resources.resx
index 8297366..3726c21 100644
--- a/EasyCPDLC/Properties/Resources.resx
+++ b/EasyCPDLC/Properties/Resources.resx
@@ -117,681 +117,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- AAEAAAD/////AQAAAAAAAAAEAQAAABZTeXN0ZW0uSU8uTWVtb3J5U3RyZWFtCgAAAAdfYnVmZmVyB19v
- cmlnaW4JX3Bvc2l0aW9uB19sZW5ndGgJX2NhcGFjaXR5C19leHBhbmRhYmxlCV93cml0YWJsZQpfZXhw
- b3NhYmxlB19pc09wZW4dTWFyc2hhbEJ5UmVmT2JqZWN0K19faWRlbnRpdHkHAAAAAAAAAAACAggICAgB
- AQEBCQIAAAAAAAAARJwAAEScAABEnAAAAAEAAQoPAgAAAEScAAACUklGRjycAABXQVZFZm10IBAAAAAB
- AAIAgLsAAADuAgAEABAAZGF0YRicAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
- AAEAAQABAAEAAQABAAEAAQABAAEAAQACAAIAAwADAAMAAwADAAMABAAEAAUABQAGAAYABgAGAAUABQAD
- AAMAAgACAAEAAQAAAAAA/v/+//z//P/8//z/+v/6//r/+v/6//r/+f/5//j/+P/3//f/+P/4//n/+f/6
- //r/+v/6//v/+//8//z//f/9//z//P/8//z//v/+////////////AAAAAAMAAwAGAAYACAAIAAgACAAK
- AAoADgAOAA4ADgANAA0ADAAMAAoACgAKAAoACgAKAAwADAAPAA8ADwAPAAwADAAJAAkACgAKAAwADAAN
- AA0ACgAKAAYABgAEAAQAAgACAP/////7//v/+f/5//r/+v8AAAAACQAJAAoACgAFAAUAAAAAAAAAAAD+
- //7/AAAAAAIAAgD+//7/9//3//X/9f/y//L/8v/y//b/9v/3//f//f/9/wEAAQAAAAAAAgACAAYABgAE
- AAQAAAAAAPz//P8BAAEADgAOAA8ADwAJAAkACAAIAAkACQANAA0AFAAUAB8AHwAiACIAGAAYABAAEAAQ
- ABAADgAOAA0ADQAGAAYAAAAAAAAAAAD6//r/7f/t/+j/6P/k/+T/3P/c/9r/2v/h/+H/7//v//b/9v/4
- //j/AQABAAcABwAHAAcADwAPABkAGQAhACEALAAsADwAPABMAEwAVgBWAFkAWQBbAFsAYQBhAGkAaQBq
- AGoAaABoAGUAZQBWAFYARwBHAEIAQgBAAEAAQABAAD4APgBCAEIAUwBTAF4AXgBjAGMAcgByAHoAegBu
- AG4AYgBiAG4AbgCKAIoAhgCGAFoAWgA4ADgANAA0ADoAOgAqACoA/v/+/9X/1f+6/7r/rf+t/67/rv+Y
- /5j/ZP9k/z7/Pv8r/yv/Gf8Z/wj/CP/9/v3++/77/vL+8v7j/uP+9f71/if/J/9L/0v/Wv9a/3n/ef+q
- /6r/0f/R//X/9f8KAAoABgAGABMAEwA7ADsAYABgAIYAhgCVAJUAegB6AG4AbgCLAIsAqwCrALEAsQCS
- AJIAcgByAG4AbgBxAHEAeQB5AIYAhgCAAIAAbQBtAGYAZgBxAHEAgQCBAHwAfABcAFwAOgA6ADwAPABh
- AGEAgQCBAIcAhwB0AHQAUgBSAEoASgBWAFYATABMADMAMwASABIA6P/o/8f/x/+u/67/kf+R/3P/c/9W
- /1b/U/9T/2j/aP9x/3H/cf9x/27/bv9o/2j/hP+E/7H/sf/E/8T/zP/M/8r/yv+8/7z/yf/J/wQABABS
- AFIAhwCHAI4AjgCHAIcAmgCaALkAuQC0ALQAfwB/AFUAVQBGAEYAJAAkAPb/9v/g/+D/1v/W/8j/yP+/
- /7//z//P//P/8//3//f/zP/M/5P/k/9l/2X/Wf9Z/3n/ef+f/5//s/+z/8D/wP/G/8b/w//D/8X/xf/a
- /9r/AAAAADUANQBbAFsAUgBSAEcARwBkAGQAkwCTAMQAxAD4APgAHwEfATUBNQEzATMBFQEVAfYA9gDi
- AOIAzADMAL8AvwCxALEAkgCSAGUAZQArACsA7v/u/8j/yP++/77/wP/A/8f/x//C/8L/o/+j/3n/ef9g
- /2D/b/9v/5X/lf+h/6H/lP+U/4X/hf95/3n/eP94/4H/gf+Q/5D/tf+1/93/3f/y//L/AwADAAQABADx
- //H/6v/q/+H/4f/Y/9j/8f/x/wQABAD1//X/2//b/83/zf/N/83/x//H/73/vf/N/83/2P/Y/8j/yP/H
- /8f/1f/V/9//3//w//D/BwAHAB0AHQAsACwAPwA/AF0AXQBzAHMAjgCOAMIAwgDqAOoA6wDrANYA1gDC
- AMIAzQDNANgA2AC3ALcAkwCTAI4AjgCLAIsAfQB9AHkAeQCCAIIAegB6AFUAVQA1ADUAHgAeAAsACwAA
- AAAA2v/a/57/nv+D/4P/gf+B/3//f/+C/4L/h/+H/4r/iv98/3z/af9p/3n/ef+S/5L/j/+P/4X/hf92
- /3b/aP9o/3T/dP+P/4//nf+d/6T/pP/B/8H/AgACADsAOwBPAE8AVABUAFEAUQBVAFUAbQBtAHIAcgBv
- AG8AkQCRALcAtwCyALIAjACMAGcAZwBUAFQASwBLAFIAUgBvAG8AcwBzAEgASAAmACYAMgAyAEEAQQA2
- ADYAIwAjABAAEADx//H/3f/d/9X/1f/F/8X/uf+5/7D/sP+6/7r/BgAGAFwAXABcAFwAKwArAAMAAwDw
- //D/CgAKADUANQA5ADkAJAAkAAgACADv/+//7P/s//3//f8XABcAIgAiAAEAAQDu/+7/BAAEAAUABQDi
- /+L/wv/C/6X/pf+J/4n/dP90/1z/XP89/z3/KP8o/y//L/9H/0f/Vv9W/2T/ZP9l/2X/Tv9O/1P/U/9y
- /3L/gf+B/5v/m/+7/7v/xf/F/9//3/8HAAcAGwAbADgAOABfAF8AbwBvAHkAeQCQAJAApgCmAKoAqgCb
- AJsAnQCdAL8AvwDIAMgArwCvAJ0AnQCJAIkAWABYACYAJgAUABQACwALAPj/+P/2//b/AgACAPH/8f/m
- /+b/DAAMAB4AHgAIAAgA/v/+/+b/5v/A/8D/xv/G/97/3v/h/+H/7P/s/+z/7P/M/8z/uf+5/73/vf+/
- /7//vP+8/7j/uP+n/6f/jP+M/3j/eP91/3X/c/9z/3L/cv+B/4H/l/+X/6D/oP+j/6P/tP+0/9b/1v/y
- //L/BQAFABwAHAAiACIAEwATABsAGwA/AD8AUgBSAFkAWQBlAGUAWQBZADoAOgAmACYAFAAUAAsACwAN
- AA0A+P/4/9L/0v+//7//wP/A/8D/wP+j/6P/gP+A/4P/g/+U/5T/i/+L/3P/c/9U/1T/OP84/y3/Lf8y
- /zL/QP9A/2X/Zf+Z/5n/pf+l/4z/jP+a/5r/x//H/9f/1//U/9T/0v/S/93/3f/4//j/CAAIAAUABQD4
- //j/5f/l/+f/5//7//v/CAAIAAwADAD/////2v/a/6z/rP+R/5H/pf+l/7z/vP+f/5//W/9b/yL/Iv8X
- /xf/GP8Y//3+/f7t/u3+8v7y/vH+8f7s/uz+7P7s/gL/Av8r/yv/U/9T/4X/hf+p/6n/ov+i/5j/mP97
- /3v/OP84/w3/Df8G/wb/GP8Y/zL/Mv8u/y7/If8h/x//H/8e/x7/LP8s/y7/Lv8K/wr/1P7U/qD+oP6N
- /o3+of6h/rr+uv7M/sz+vf69/pX+lf6O/o7+lf6V/pH+kf6Q/pD+fP58/lb+Vv41/jX+KP4o/jD+MP4f
- /h/+8P3w/dD90P25/bn9qv2q/aP9o/2N/Y39cv1y/Vr9Wv1L/Uv9Xv1e/YH9gf2X/Zf9lP2U/X/9f/19
- /X39df11/VX9Vf1W/Vb9cP1w/Yv9i/2+/b79/v3+/Vj+WP7D/sP+B/8H/03/Tf+6/7r/IgAiAIgAiADz
- APMAWgFaAcYBxgErAisClwKXAg0DDQNvA28D2wPbA1QEVASxBLEEAAUABU4FTgWgBaAF9QX1BSUGJQY0
- BjQGOgY6BiQGJAb7BfsF1wXXBcIFwgWnBacFVgVWBegE6ASKBIoEKQQpBMgDyANfA18D4gLiAowCjAJQ
- AlAC8AHwAXoBegH5APkAYABgALn/uf8X/xf/mv6a/jD+MP7a/dr9qP2o/Uj9SP2f/J/8A/wD/Gr7avvF
- +sX6GfoZ+ir5Kvka+Br4Kvcq9xz2HPaw9LD09/L38jXxNfFx73HvnO2c7cvsy+zT7dPtae9p7yDwIPC6
- 77rv4u7i7iHvIe/k8OTwFfMV8631rfUn+Sf5Df0N/RoBGgFgBWAFYAlgCf8L/wvHDMcMNg02DYsOiw4L
- EAsQYBFgEeES4RLdE90T3RPdE4cThxNpE2kTOBM4ExYSFhK1D7UPqwyrDMUJxQnAB8AHqgaqBvgF+AV+
- BX4FGAUYBdAE0ARfBV8FhwaHBhwHHAcdBx0HDwcPB9wG3AaMBowGawZrBrQGtAZEB0QHnQedB90H3Qc5
- CDkIDAgMCB8HHwf2BfYFmQSZBCYDJgMLAgsCEgESAQIAAgAX/xf/Nf41/ij9KP0V/BX8IPsg+4b6hvpb
- +lv6SPpI+jT6NPpU+lT6r/qv+k37TfsR/BH8uvy6/F79Xv0n/if+4f7h/lf/V/+F/4X/k/+T/5n/mf9/
- /3//Tv9O/zL/Mv80/zT/NP80/+f+5/5K/kr+vv2+/V39Xf0F/QX9t/y3/Gv8a/w3/Df8Ofw5/Fn8Wfy0
- /LT8VP1U/eP94/1W/lb+z/7P/k7/Tv/+//7/2QDZALUBtQGgAqACiAOIA1AEUAT4BPgEdgV2BeQF5AVR
- BlEGoAagBuUG5QYnBycHRAdEB08HTwdpB2kHlgeWB7MHswdpB2kHlgaWBnEFcQUwBDAECwMLAw4CDgIK
- AQoBBQAFACH/If9Y/lj+l/2X/aT8pPxP+0/7xPnE+V34Xfhg92D31vbW9qr2qvbo9uj2Z/dn98L3wvf0
- 9/T3JPgk+Cz4LPgP+A/4MPgw+MX4xfiz+bP51vrW+vb79vvV/NX8cv1y/fn9+f1p/mn+rf6t/sr+yv7H
- /sf+rf6t/qf+p/7U/tT+JP8k/3v/e//h/+H/ZwBnAAgBCAGiAaIBBAIEAhACEALtAe0B2AHYAd4B3gEL
- AgsCZwJnAtAC0AI9Az0DxQPFA14EXgTsBOwEVAVUBYcFhwWaBZoFsgWyBdQF1AX9Bf0FJAYkBjwGPAZP
- Bk8GYgZiBl4GXgY4BjgGEQYRBgQGBAYABgAG5wXnBasFqwVGBUYFvAS8BC4ELgS9A70DVwNXA+MC4wJu
- Am4C+gH6AYABgAEJAQkBeAB4AML/wv8E/wT/ZP5k/un96f1k/WT9yfzJ/Fn8WfwZ/Bn81/vX+1r7WvuF
- +oX6v/m/+Vn5Wfkd+R356fjp+LT4tPh1+HX4SfhJ+PT39Pcy9zL3P/Y/9oX1hfVT9VP1hPWE9ZP1k/Vw
- 9XD1XfVd9ZH1kfUq9ir2D/cP90D4QPi8+bz5FPsU+wj8CPyt/K38C/0L/Vr9Wv35/fn9N/83/+EA4QAQ
- AhACKAIoAm4BbgF3AHcAtv+2/zH/Mf+x/rH+Wv5a/pz+nP57/3v/NQA1AGkAaQCqAKoAPQE9AeYB5gFb
- AlsCHwIfAmUBZQHuAO4ArwCvAFEAUQDC/8L/Qf9B/xj/GP+0/rT+tv22/fX79fv++P74T/dP9336ffr3
- APcABgYGBpMGkwYaAxoDyv/K//3+/f7C/sL+af5p/v7+/v76//r/JQElAfgD+APGCMYIOQw5DMYKxgql
- BqUGfwR/BLgEuARjBWMFqAWoBbUEtQSdAZ0BjP2M/bT7tPs4/Tj9yv/K/2oBagFtAW0B7P/s/9L+0v4i
- /yL/gP+A/3r/ev8t/y3/Uf5R/gH+Af7n/uf+0//T/00ATQB3AHcAsP+w/w7+Dv45/Tn9iv6K/v0A/QB2
- AnYCywLLAtYC1gJLAksCTgFOAZAAkADA/8D/ov6i/o39jf2n/Kf8I/wj/Mf7x/v7+vv6Ovk6+RT2FPZO
- 807z8/Pz8+D34PfP/M/8CAEIATwDPAOcA5wDvgK+AmwAbAA//j/+Ov06/WL7Yvt1+XX53frd+ub+5v6b
- AZsB8ADwAJz9nP2r+Kv4ifKJ8vzs/Owe6h7q8+jz6DfnN+eg5KDk2OLY4vDj8OPH58fnZOxk7H7wfvDx
- 8/HzE/gT+Lr9uv0TAxMDVgdWBwULBQsgDSANlQ6VDscRxxFzFnMWphumGw4gDiDyIfIh8iHyIYwgjCAM
- HQwdZhhmGLgTuBOiD6IP4wzjDAILAgubCZsJoAigCE4HTgfVBdUFxQTFBDwEPARjBGMERgRGBIkDiQNY
- A1gDVQNVA+8C7wIAAwADZQNlA98D3wNLBUsFowejB6EJoQnTCdMJ8gfyB2MFYwVKA0oDxgHGASYBJgGJ
- AYkBRQJFArcCtwKgAqAC0AHQAVIAUgBF/kX+3fvd+yD6IPrc+dz5c/pz+h/7H/uB+4H7f/t/+7b7tvt0
- /HT8Vf1V/SP+I/7C/sL+R/9H/4X/hf/w/vD+EP4Q/qf9p/1n/Wf9H/0f/a78rvyd+5372/nb+an3qfdi
- 9WL1PfM981/xX/EQ8BDwOO8476jvqO/o8ujy6Pfo9/H78fuW/Zb97/zv/Lz7vPud+537c/xz/Df+N/7M
- AMwAbgNuAz4GPga+Cb4Jog2iDTQQNBA+Dz4PngueC7cItwhHCEcI0wnTCYkLiQt2C3YLdAl0CZQGlAYl
- BCUEggOCA7AEsAT3BfcFyAXIBZoEmgQLBAsEKQQpBJADkAPyAfIBdwB3AO7/7v8HAAcAxgDGADgCOALB
- AsECFAEUAT7+Pv67+7v7V/pX+kr6SvrH+sf6DvsO+xn7GfuJ+on6DPkM+W/3b/dv9m/21fXV9YD1gPWn
- 9af1ffZ99jT4NPhE+kT64Pvg+xD9EP2e/Z79Yv1i/VT9VP3k/eT94/7j/mkAaQDgAeAB0gLSAs4DzgP+
- BP4EHAYcBvcG9wZiB2IHjwePB3wHfAfwBvAGOgY6BlgFWAX0A/QDdgJ2AoIBggFeAV4BAQIBAugC6AKN
- A40D0wPTA7sDuwNjA2MDIQMhAyQDJANZA1kDwgPCA5QElATgBeAFSgdKB1YIVgiwCLAIQghCCGYHZgeI
- BogGzQXNBVUFVQUiBSIFBwUHBQUFBQUpBSkFSQVJBSoFKgWcBJwEqAOoA5gCmAKVAZUBlACUAIj/iP+K
- /or+0P3Q/Vb9Vv0G/Qb94Pzg/Kn8qfwh/CH8SPtI+yD6IPrO+M74kfeR94P2g/b09fT1J/Yn9uX25faz
- 97P32ffZ9+z27PZa9Vr1vPO886Pyo/Kx8rHy/vP+8yr2KvZg+GD4r/mv+SL6Ivok+iT6jfmN+XH4cfh8
- 93z3Pvc+9833zfcJ+Qn57/rv+if9J/31/vX+3//f//3//f8eAB4AzQDNAJUBlQEiAiICeQJ5AmECYQIH
- AgcCAwIDApECkQJiA2ID+QP5Ax0EHQQLBAsEMgQyBFoEWgT4A/gDVgNWA8ICwgJBAkECYgJiAh8DHwPJ
- A8kDHwQfBN8D3wMbAxsDXwJfAuAB4AHAAcABAgICAl8CXwKZApkClgKWAoMCgwIdAh0C8wDzAHr/ev8N
- /g3+9Pz0/Jr8mvx3/Hf8Lvwu/Nv72/tM+0z76frp+sH6wfpL+kv6s/mz+Q75DvkC+QL5r/qv+n/9f/06
- ADoADwIPAkUCRQIbARsBCf8J//z8/PyC/IL8FP0U/Vb9Vv2D/YP97v3u/Xv+e/76/vr+BP8E/5/+n/4K
- /gr+c/1z/QT9BP2O/I78cftx+xj5GPnf9d/15/Ln8vHw8fCB8IHw5vHm8Uv0S/Q09jT20fbR9gH3Afe/
- +L/4Ovw6/Pz+/P6s/6z/yf/J/9z/3P8t/y3/oP6g/kD+QP6b/Jv8d/p3+gT6BPoS/RL9PQM9A9MI0wgK
- DAoMdA10DeAL4AsgCCAIBgUGBasCqwKnAKcAMf8x/5j+mP4aABoAWwNbA5kGmQbZCNkI1wjXCGQGZAZr
- A2sDQwFDAYb/hv+m/Kb8ifeJ9zzxPPHL7Mvsvuy+7N/v3+9k8mTyB/IH8nnvee9O7U7tSuxK7Jfrl+sk
- 7STtRPJE8k74Tvi4/bj9lwOXA0oKSgpLD0sP/w7/DlwLXAuzCbMJLgouCioLKgvrDesNPxI/EksVSxUd
- FR0VxRLFEhwRHBHFEMUQlw+XD18MXwwvCC8IUwRTBFcBVwHB/8H/0P/Q/zYBNgGNA40DoQWhBZQGlAbj
- B+MHBgoGCrwKvAq7CbsJ3AjcCIwIjAioCKgICQkJCSEJIQldCV0JUglSCXEHcQeUBJQEYwJjAq4ArgAf
- /x//L/0v/Zr6mvo5+Dn44vXi9SnzKfMJ8Qnxze/N78Xuxe4o7SjtkOqQ6tPn0+dP5U/lVuJW4sPfw98x
- 3zHfEOEQ4T/lP+U/6z/r3/Hf8bf3t/f3+/f7xf7F/q8ArwB8AnwC5gTmBNwH3AfECsQKWA1YDQEQARDm
- EuYSBxUHFfUV9RWhFqEWSxdLF7gXuBcmGCYYHBgcGOEW4RZ3FHcUyRDJEO8L7wu4BrgG4QHhAeX95f0L
- +wv7fvl++YH5gfmt+q36QfxB/LL+sv6rAqsCBgcGBzIKMgrnC+cL2QvZC54JngmZBpkGtgS2BEcERwQy
- BTIFigeKB7wKvAoRDhEO8RDxENMS0xJ1E3UThRKFEggQCBCPDI8MXgheCA4EDgS0ALQAif6J/j/9P/3P
- /M/8Cv0K/W/9b/1V/VX9pvym/PX79ftR+1H7xfrF+gb7Bvtj/GP8Z/5n/igAKADaANoAggCCAFf/V/97
- /Xv9hvuG+/75/vk2+Tb5Ofk5+W75bvmP+Y/5ufm5+XH5cfl++H74iveK9wr3CvfS9tL2ufa59qT2pPZ0
- 9nT2b/Zv9tv22/ac95z3BvkG+Xn7efto/mj+PwE/AdgD2AP2BfYFlAeUB8gIyAiFCYUJ4gniCSMKIwpz
- CnMKugq6CgsLCwuHC4cL3wvfCwoMCgxODE4MpQylDEQNRA3+Df4N+g36DRENEQ2MC4wLogmiCdgH2AdB
- BkEGqwSrBBADEAMsASwBFv8W/wT9BP3R+tH6ufi5+Or26vZn9Wf1jfSN9Ev0S/Q49Dj0NfQ19Obz5vP5
- 8vnyovGi8VLwUvB573nvUu9S7/7v/u948Xjxn/Of82f2Z/Zj+WP5DvwO/ID+gP7KAMoArwKvAvsD+wN+
- BH4EWwRbBMEDwQOmAqYCSgFKAfr/+v/H/sf+xf3F/en86fxF/EX87/vv++T75Psw/DD8nfyd/O787vw1
- /TX9QP1A/dP80/z2+/b7xfrF+sH5wfmH+Yf5UPpQ+vP78/sa/hr+yQDJAL8DvwMLBgsGjgeOB64IrghQ
- CVAJcglyCS0JLQmTCJMI2gfaBw0HDQdmBmYGEwYTBv8F/wVjBmMGGQcZB3cHdwdOB04HnQadBpEFkQW/
- BL8EJwQnBFgDWAOkAqQCrgKuAukC6QIyAjICqQCpAOz+7P4p/Sn9vvu++3z6fPrp+On4bPds9wv2C/bU
- 89TzjPCM8MTtxO1P7U/tU+5T7vbt9u1Y61jrDOgM6OTk5OTo4Ojg+Nv429jW2Nb+0P7QLswuzKfNp83X
- 1tfWMeMx49/s3+xO8U7xBfMF84j0iPT29fb1P/k/+QX/Bf+bBJsE7QjtCEkLSQvqC+oLVA5UDjYSNhLF
- E8UT0RTRFOsY6xjzHvMeuyS7JLQotCjWKNYoqySrJAEdAR1VE1UTDQwNDCUKJQr/Cf8JcghyCPYG9gYH
- BgcGlgWWBREHEQfyCfIJrAysDLQOtA4lDyUPyA3IDaQLpAtJCUkJNQY1BmMCYwL9//3/fQB9AHICcgJ+
- BH4E8AXwBfcF9wXYBNgE9gL2AosAiwAE/gT+3vre+kf3R/cA9AD0wPDA8Nju2O588HzwQ/RD9Kv1q/Xf
- 8d/x7+vv62joaOh55nnm1eTV5FvkW+Sw4rDiet563s3azdrz2PPYfdl92dfe196s56znRO9E7wT0BPQ5
- 9zn3K/kr+QT5BPkD9wP3xPXE9Tz5PPnRAdEB4AngCaQMpAw+DD4MEQ0RDUQPRA9/EH8QkRGREZ4UnhQR
- GBEYQxpDGkccRxzUHdQdZh1mHUIZQhm3ELcQVAlUCdUI1Qg2CzYLRAtEC6IKogpiCmIKXAlcCZgJmAlJ
- DUkNiRKJEg4XDhf/Gf8ZUBpQGgsZCxlkGGQYMhcyF5AUkBQaExoT9BP0E40VjRV2FnYW2RXZFVgTWBOa
- DpoO+wf7B3IBcgF//H/8T/lP+fH28fZt823zvO687hrrGuuB6YHpiumK6WbqZup+6n7qquiq6JLlkuV8
- 43zjaeRp5DjoOOhH7UftyvHK8RL1EvW197X3hfmF+Q/6D/om+ib68vny+TP5M/lu+W75r/uv+/L+8v41
- AjUCiwSLBHcEdwQ2AjYCEQARAOv+6/6s/az9MPww/AL7Avvd+d35Pfk9+SL6IvoY/Bj8hf6F/o4BjgGe
- BJ4EDwcPBwcJBwlDCkMKlQqVCsEKwQolCyULiQuJC+gL6AsMDAwM+gv6C3EMcQzpDekNNxA3EJ4SnhL3
- E/cT3BPcE+oS6hIhEiESrRKtEpQUlBQxFjEWXBZcFjIVMhXLEssSeg96D0gMSAzMCcwJuAe4B7cFtwXP
- A88DBgIGAlUAVQCm/qb+ufy5/Ov66/pE+kT6Y/pj+oH5gfkn9yf3XPRc9MzxzPFm72bvCu0K7YzrjOvw
- 6/DrmO2Y7TjvOO+48LjwgfKB8ir0KvTL9Mv0jvSO9JT0lPTk9OT0sPSw9BL0EvSm86bzVfNV86jyqPKc
- 8ZzxvvC+8M7wzvAJ8gny0/PT85/1n/VC90L3ofih+NH50fm++r76o/uj+3X9df0XABcAkgKSAnQEdAQy
- BTIF+QT5BAUFBQXfBd8FyQfJB6gKqAoxDTEN7A7sDq4QrhCLEosSzBPMEwoUChRCE0IT3xHfEZQQlBBB
- D0EPdQ11DccLxwu+Cr4KdQp1CjgLOAs1DDUM2QvZC04JTgnWBNYESgBKAC39Lf1R+1H75vrm+q/7r/vT
- +9P7+Pn4+Uv2S/al8aXxtuy27DTpNOnT6dPp6e3p7fLw8vAH8AfwgeyB7MToxOhc5Fzkl96X3rTZtNmk
- 1qTW1dPV0xHSEdK11bXVWuFa4eLu4u4a9Rr1pvSm9N7z3vNY9Fj0VvVW9Q34Dfjy/fL9FwUXBaIIogg/
- Bz8HTwVPBWEHYQeeDJ4M+g/6D80QzRBeE14TUBdQF5MYkxgWFxYXzxTPFOoR6hGsDawNeQd5B4kBiQHJ
- AMkAnQSdBP0G/QbaB9oHkgqSCmINYg3TDtMOGhAaEGYRZhFdE10TmxWbFUcWRxbhFeEVGBUYFS0TLRNd
- EF0QBQ4FDpENkQ2XDpcOCg8KD3gNeA1wCXAJEgQSBMH+wf60+bT5dfV19brxuvFp7WntV+hX6FDiUOKy
- 3LLc09rT2p/dn90p4SnhYd9h3yTYJNiX0JfQg8qDylbHVsfyyfLJONI40o7ejt5h6WHpzO3M7c7xzvHb
- +dv53gDeAEUERQTSBtIGWQtZC4gPiA+HDocOMQsxCwUKBQqHCocKbAxsDEANQA1oDWgNBRMFExIbEhtm
- HmYeOh46HtEa0RpgEmASjQeNB1L+Uv7O+s762P3Y/dIB0gEQAxAD7wPvA1IGUgZfCV8JZQ1lDT4TPhPi
- GOIYBBwEHKMcoxxGG0YbtBi0GHkVeRUvEi8S3hDeEFcSVxIHFQcV6hbqFtwW3BbzFfMVsBSwFJ8RnxGr
- DasNWApYCjQHNAd0BHQEUwFTAZv8m/wB+AH4nvSe9JDxkPGU7pTuruuu62TpZOme557nUOVQ5XTjdON6
- 43rj1uXW5c3pzem26rbqh+WH5fve+9543Hjcwd3B3Q3gDeDE48Tjr+uv63j1ePVz/HP8uQC5AJgCmAJI
- AUgBfP58/k/7T/u0+LT4QPlA+Yz8jPzh/uH+xP/E/zoDOgPaCdoJxA7EDgAQABCuDq4OMQsxCzAHMAcP
- Aw8D6f3p/S36LfpL+Uv5S/pL+vr9+v3WA9YDYwljCfwN/A16EXoR7xLvEsgSyBIrEysTEBUQFXAXcBf+
- Gf4ZmxybHEseSx5WH1YfbiBuIGMhYyGzIbMhVSBVIP0c/Rw5GDkY9hL2Eg0PDQ9dDF0MFQkVCaQFpAWs
- AqwCQv9C//j6+Ppi9mL2GPMY8zHyMfJA80DzZvVm9R73Hvfg9+D3kviS+Kb4pvij96P3nfad9uf15/Up
- 9Sn1gfSB9K30rfQn9if2TPhM+Oj66PqW/Zb9D/8P/13/Xf92/nb+DfwN/JP5k/lI90j3MfQx9PLw8vBU
- 7lTuCO0I7YTthO3X7tfuePB48EzyTPJ583nzwvPC82H0YfQs9yz3z/vP+zj/OP8VABUAuf+5//v++/5m
- /mb+wf7B/igAKAAOAg4C8wPzA+wF7AXiB+IHXwlfCVcKVwrOCs4KOws7C8cMxwx2D3YP+RH5EVQTVBMu
- Ey4T1hHWERgQGBCEDoQOcg1yDeAM4AxRDFEMrQutC2ULZQteC14L/Ar8Ci4KLgpuCW4JEwkTCXIIcgjq
- BeoFZgFmARH9Ef0x+jH62vfa9yb1JvVU8lTyne+d73zsfOz46PjoGeYZ5nvke+Tn4+fj+eP54zPkM+QY
- 5BjkhuKG4mzebN5p2mnandud28HiweIh6yHrnvCe8GLzYvNL9kv2uPq4+nH/cf9ZA1kDRgVGBSMDIwO5
- /bn9Yvli+RD5EPnw+/D7IP8g/4cAhwBZAVkBawRrBAEKAQolDyUP1xDXEPgO+A5ZC1kLMAcwB5cDlwMX
- AhcCewJ7Aj8DPwMwBDAENgY2BtgJ2AnaDtoOXBRcFO8Y7xgRGxEbehp6GlUYVRh+FX4VVRJVEswPzA93
- DncOsQ2xDdEM0Qx9DH0MlQ2VDeYO5g5pDmkOKQwpDFAJUAl+Bn4GOAQ4BLwCvALMAcwBqwCrADv+O/7s
- +uz6dfh1+Hf2d/aU8pTyaOto6/fh9+EK2QrZztPO073TvdP21PbU79Dv0JDIkMi2wrbCSsJKwtzI3MiK
- 14rXpeal5lztXO3c7tzuUvJS8rL4svi6ALoATQlNCVAOUA5dDF0MTgdOB38FfwUrBysHnAmcCVsMWwzK
- DsoOZhFmEewW7BY1HjUeiiKKIiMiIyJ3HXcdoBSgFE0JTQm1/7X/Xftd+1X7Vfs9/D38av1q/Y7/jv/v
- Ae8BHQUdBb0KvQr6EfoRkRiRGNkc2RzeHd4dxxzHHMkbyRvmGuYaeBl4GVoYWhgTGBMYQBhAGIMYgxg9
- GD0Y2RbZFuMT4xMgDyAP5QnlCXMFcwVcAVwBjv2O/eL54vlP9U/1DfEN8Wnvae+D74Pvqu6q7rHrseu7
- 57vnUeRR5Ofg5+Ae3h7eGuAa4DzmPOZN6E3osOKw4lXbVdti12LXBNcE1yHbIdto5Gjkt+637uf15/X3
- +vf6+f/5//YE9gSCCYIJtQu1C3gIeAjPAM8A5frl+sn6yfoC/gL+2QDZAGMDYwNpBmkGNwk3CfkL+QtZ
- D1kPUBJQEuoS6hLAD8APPwk/CXoCegJ6/nr+Hf0d/YH8gfwG/Ab8y/zL/EkASQCuBq4GWA5YDjkVORXH
- GccZExsTGwcaBxofGR8ZZBlkGfYZ9hkRGhEa1xnXGXEacRrUHNQc7h/uH6shqyE0IDQgghqCGlYSVhKd
- Cp0KTwRPBHH/cf99+337xffF93X1dfW/9L/0avNq84bxhvHp8Onwp/Gn8WnzafOH9Yf1lPaU9tv12/UG
- 8wbzhe6F7m7qburw6fDpCfAJ8Iz5jPnm/eb9BfwF/JD5kPkb9xv3OvQ69NPz0/P99P30zfTN9PDz8PO9
- 873zrfSt9Cb3Jvfr+ev5//n/+f71/vWJ8YnxL/Ev8VLzUvMP9A/0IvQi9MX1xfW8+Lz40vvS+33+ff72
- APYAagNqAwgFCAWaBJoEwQLBAoYChgKrBKsEagZqBkIHQgdxCHEIawlrCUUKRQodCx0LRAtEC5gMmAzJ
- D8kP+RH5ET0TPRPjFeMVHRkdGd4a3hq0GrQaCxoLGgIaAhr4GPgYqBWoFf4Q/hCpC6kLwwbDBqgDqAOS
- AZIBjv+O/zb+Nv62/bb9efx5/DT5NPk69Tr1kPGQ8Wntae0m6ibq7+jv6LznvOdw53DnmOqY6uvt6+0e
- 7R7tQOlA6aDkoOTM38zfytzK3JHekd5n42fjOug66DDvMO8V+BX4Ef4R/lICUgJxBnEGHQUdBTr/Ov+p
- /Kn80v3S/Xf9d/3w+fD52PXY9Vb0VvSz9bP1ifmJ+e3/7f/vBe8FsQmxCWoNag2UEJQQGxAbENcL1wu0
- BbQFxwDHAHb/dv95AHkAHQIdAjEEMQSWBZYFfQZ9BuEJ4QndD90PnBScFAoXChcDGQMZGBoYGiIZIhn/
- Fv8WsBSwFDATMBOWEpYS8RDxEBAOEA6cC5wLpwmnCegH6AcrBisGWwRbBF0DXQM+Aj4C9P/0/zX+Nf69
- /L38l/qX+nP5c/lp+Gn4W/Vb9cDwwPDg6eDpheCF4PjX+Nfq1OrUHdod2kTgROBK3Erc4NLg0rLPss9a
- 01rTjNuM23rmeuZX7VftGe4Z7sfux+6y87LzwfzB/NoG2gYRDhEOMhAyEIEMgQxzBnMGEwQTBBgFGAW0
- BLQEagJqAlUCVQIeCB4I2RHZETUZNRkpHCkcNB00HZAbkBu4FLgU+wr7Cu8C7wKM/Yz9FvoW+iX5Jfld
- +l36Mv0y/YYChgJFCUUJdQ91D44VjhWSGpIapRulGyMZIxnJFckVmROZEy8TLxOKE4oTjxOPExsTGxPZ
- EtkSmhOaE2wUbBSjE6MTXxFfEUsOSw4OCw4LWghaCJwFnAXcAtwCuQC5AEv+S/7Z+9n7sfqx+oX5hfkS
- 9xL3gPSA9Ojy6PJ88Xzxee557urq6ur/6P/oXude51znXOeQ7JDsG/Ab8KDpoOkr3yvf1NjU2FnWWdY0
- 2DTYK98r3+7m7uZx7HHs8/Hz8eb55vkNAw0DYApgCugN6A03DDcMowWjBZL+kv6S+pL6fvh++P/2//bo
- 9uj2Pvk++Xb+dv5xBXEFpAukC5QPlA+iEaIR+hH6ETsPOw8rCSsJngKeAlD9UP0A+QD5h/eH9z76Pvpg
- /2D/AgYCBjANMA12EnYSgBaAFvEa8RrnHecdsx6zHkkfSR+wH7AfWR9ZHycfJx8BHwEfCB4IHmUcZRzf
- Gt8aYhliGSkWKRYMEAwQ7gjuCLoCugIj/SP9//j/+OD34PdZ91n3//P/8wTwBPC177Xvn/Kf8vL18vXk
- +OT4Jfsl+6X7pftu+m76yvjK+Ez3TPe/9b/1VvVW9fr3+vcT/BP8k/2T/er76vtm+Wb5l/aX9ov0i/Qi
- 9iL2GfoZ+oT7hPvd+d35QvhC+GL3Yve39rf2Q/ZD9iv1K/WC84Lzj/KP8lzyXPKo8qjyhPOE82v0a/SP
- 9Y/1Zvdm94P5g/n1+/X7dP50/vL/8v+/AL8AZQFlAVoBWgGoAKgAGwAbAPQA9ACrA6sDJwYnBjIHMgdw
- CHAIYQphCkUMRQz8DfwNBQ8FD7UPtQ81ETURwhLCEk8TTxM+Ez4TARMBE0kTSRMCFAIUYhNiE2MRYxHR
- D9EP1A3UDcIJwgmaBZoFvAO8A0cCRwIe/x7/GfwZ/A76Dvqe9Z71DO4M7gfoB+hA5kDmM+cz5xDqEOo4
- 7TjtM+wz7DTmNOYy3zLfX9lf2dTV1NXv1e/V6tjq2O3e7d6Q6JDoBPIE8qX4pfjP/c/9CwELAc8CzwLr
- BesFvAi8CPUH9QepBKkE2gHaAaABoAEqAyoD7QPtA8wDzAPhAuECkAGQAZcDlwPFCMUInwufC4wLjAuL
- CosKnQedBzoEOgSMA4wDzQTNBMEFwQV3BXcFUQRRBC0ELQTkBeQFQwhDCI4KjgoXDRcNzQ/ND/AR8BE+
- Ez4TRBREFEoVShUeFh4WSBZIFl4VXhXrE+sTORI5Em8Pbw/+C/4LYwljCe8H7weKB4oHoQehB/UG9QaG
- BYYFBgQGBEACQAIcABwArf2t/bj6uPpn92f3RvRG9BDxEPG067Tr0OLQ4tvY29iN0Y3RE88Tz6jRqNG6
- 1LrUatJq0lbMVswIyQjJ5MzkzDTYNNgL5Qvl5Ozk7HrxevHp9un2W/5b/uUJ5Qm0F7QXlB+UH2gdaB3m
- E+YTSwhLCNMA0wAZ/xn/Ov86/9n/2f/ZAtkCfQl9CQcTBxNzG3MbuB+4H8UgxSCWHZYd3RTdFKwKrAoq
- AioCz/rP+h72HvYr9Sv1OPY49vz5/PlUAlQCCw0LDZQWlBaBHYEdDCEMIcAgwCDzHfMdwBrAGiAYIBhA
- FkAW8hTyFNsT2xOhE6ETFBUUFTsXOxdnGGcYXhdeF4MTgxNIDkgO8QnxCa0GrQa8A7wDxADEABH9Ef2l
- +KX4zvTO9FbyVvLB8MHwJO8k737tfu087DzsJ+on6ojmiOYu5C7kJOUk5S/oL+hs7Gzste+1783tze2u
- 567nEOIQ4rjduN0E3ATc4ODg4FLqUuoc8xzzM/sz+/UD9QOpC6kLOBA4EOcQ5xC3DbcN0QbRBtv92/3K
- 9sr2hfOF8+jy6PIc9Rz1uPm4+WX+Zf4fAx8DbAhsCIkMiQyzDrMOtQ61DmwLbAuTBZMFev96/8/6z/qW
- +Jb4+fj5+PH78fukAaQBFwkXCWsQaxAeFh4WiBmIGUMbQxtJHEkcMx0zHVMeUx5CH0If2x/bH5QglCDN
- IM0gEiASIE8fTx9VHlUeuRu5GysXKxcZERkR0wnTCSACIAJy+3L7CvcK90T1RPVQ9VD1G/Ub9UrzSvNh
- 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
- /j/+Tv5O/qf8p/xD+EP4Q/ND8wXvBe/P6c/p1+TX5KbhpuFT3VPd3Nbc1unQ6dA1zDXMz8fPx17EXsSM
- w4zDg8WDxZHKkcqT1ZPV6OTo5LPws/Be9173g/2D/bsDuwMkCyQLhRaFFuAf4B8XHhceZBNkE5wInAjz
- APMAAPwA/LP7s/v9//3/WAVYBcsLywveFN4Uux27HawjrCO/Jb8lzCHMIYYYhhhNDk0O1ATUBDf7N/sI
- 8wjzHvAe8L3zvfPW+9b7UQdRB/0U/RQrICsgICYgJgkpCSm2KbYpCCcIJ2UiZSLtHe0drBmsGasVqxVy
- E3ITGRQZFDsWOxb9F/0Xexl7GbQZtBk6FToVRwxHDEkDSQM+/D78Lvcu98/0z/Qr8yvz4+/j79Ps0+xa
- 7Frs1+3X7Zrumu5R7FHsPOg86E7kTuRj4WPhKeMp4wfpB+ld6l3qV+VX5bjfuN++277b+9v72xfiF+KS
- 6ZLp8/Dz8DL5Mvll/2X/sgSyBLILsgtyD3IPWQxZDIwFjAUq/yr/V/tX+zT4NPgC9AL0EfIR8qfzp/MY
- 9xj3of2h/egF6AVbC1sLig2KDdUM1QylCKUIzQPNAw0ADQDd+9371vjW+C/6L/oc/xz/PwU/BR0MHQyl
- E6UTXBpcGh0eHR4WHhYerxuvG18ZXxmMGIwYORk5GW4bbht0HnQelSCVIHEicSLAJcAlkiiSKOUn5ScX
- IxcjphqmGg0RDRHeCN4IKwErASn6Kfoj9iP2KPQo9HnzefNW9Vb1TvdO99T21Pa69br1Y/Vj9f71/vU/
- +D/4G/sb+w79Dv0g/iD+/v3+/fX79fvU+NT4kvaS9vn1+fXH9sf2rfmt+Sf9J/3d/N38FvkW+QP2A/am
- 9Kb07fTt9Hf3d/cK+gr6z/nP+YD3gPfb9dv1YfVh9ebz5vMK8Qrxce5x7prsmuxG7EbsYu1i7YPtg+0n
- 7Sft9u727k7yTvIP9g/2rPqs+vD/8P/gBOAE8gfyB9MI0wg/CT8JNgk2CQwIDAgmByYHAwcDB1YHVgff
- CN8IzQvNC7kPuQ9WE1YTuxS7FOcU5xTVFdUVsBawFrAWsBaUFpQW3xXfFXQTdBMnECcQyQ3JDRwMHAyl
- CaUJjwaPBroDugNwAXABxv/G/1X+Vf4V/RX9kvuS+x34Hfic85zzsfCx8DHvMe9p7mnuf+5/7rXute5i
- 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
- E2ATGxQbFBMUExReFF4UihOKE3oSehIkEiQSuRC5EIgOiA5wDHAMlQmVCf0F/QUZAxkD9QH1AbQAtADV
- /dX9BPsE+333fffk8uTyNvE28WDxYPFf7l/uqOio6IHigeJB20Hb/ND80AXFBcXou+i7xLbEtuC44Ljq
- x+rHydnJ2dbh1uGc55znhPGE8ez57PmlAKUAzQfNB34Ofg4AFQAVWhlaGX4afhoQGRAZQhRCFDERMRHN
- E80T/xX/FaMVoxU2FDYUbg5uDlcFVwVk/GT8CvQK9EnvSe/O7c7tFuwW7BrtGu1Y8ljyf/h/+Nf/1/8t
- CC0Ifw9/D6wWrBa+HL4cfR99H3QgdCAaIRohASEBIS8gLyAwHzAfCR8JH54fnh/iH+IfXiBeIJ0gnSDW
- HtYedxx3HN8a3xrvF+8XcBNwE6APoA+MDIwMVwlXCS0GLQZSA1ID2gDaAHr+ev6o/Kj8Jvwm/Gj6aPpg
- 9WD1XfBd8DjtOO0T6RPpmOOY43ffd99z3HPcuNe4133RfdH/zf/N/s7+zqnSqdKc2JzYVN9U3z7kPuSc
- 6ZzptvC28LX1tfXe9973wfnB+Qf8B/xx/nH+bgBuABQCFAK4A7gDNwQ3BO4E7gTcB9wH1wnXCTIJMgkU
- CBQI7wXvBd4C3gI5ATkB5QDlALQBtAGPA48D0ATQBHgGeAbBCcEJfAx8DKcOpw6WEpYS1RfVF8EcwRyq
- IKog8CLwIpcjlyOYI5gjsiOyI40jjSN7InsisCCwIPce9x4WHhYeHR4dHqMdox2iG6IbJRklGfMW8xa0
- E7QTSw5LDuoH6gdLAksC3f3d/dj62Ppg+mD6SP1I/dIB0gHMBMwE5QXlBfQG9AabB5sHygbKBu8E7wSM
- AowC2QDZALoAugBEAEQAff19/a74rvi587nzcPBw8JDtkO116XXp7eXt5bzjvOPW4dbh9OD04G7hbuFc
- 41zjFecV5w7qDurn6ufq1+vX6xTtFO2T7ZPt4O3g7Zrumu7z8PPwu/S79Eb3Rvdi+GL45vnm+eL74vvc
- /dz9tv+2/6kBqQHKA8oDMQUxBTkGOQYaCBoIeAp4CkMNQw2nEKcQxxPHE3sWexaJGIkY8RnxGaIbohup
- HKkccBxwHHMccxwfHB8c+hr6GrYZthnjFuMW7hLuEsoPyg+mDKYMNQo1CrcItwgKBQoFigCKALH9sf3c
- +dz5lPWU9YHzgfMZ8hny6PDo8Hfwd/CT75PvJO8k78DvwO/v7+/vs++z71/uX+4C6wLrK+cr52TjZOO/
- 37/fv92/3R/dH90P3g/eC+IL4r7mvubG6cbpS+1L7T7yPvKN9o32c/lz+Zf7l/tM/Uz9Xf5d/sX+xf4f
- /x//mf+Z/+X/5f8xADEAsACwAJwBnAEnAycDgASABL4EvgT9A/0D+gL6ApQClAJAAkAC4QDhABEAEQDe
- Ad4BfAV8BcQJxAnhDeEN9hD2EDMUMxQQGBAYoRqhGjAcMBwKHgoePx8/H3cfdx/HHsce6BzoHHAbcBv5
- GvkaOho6GgQaBBrFGsUashqyGloZWhn7FvsWhhOGE7gPuA/aC9oLMAgwCOIE4gS7ALsA2PvY+3r3evei
- 86Lz5vDm8Ofu5+6j6qPqguOC47bbttvS09LTLMssy1TCVMI5uzm7ZLZktnm0ebR/uX+5EMQQxLXLtctw
- 0HDQp9en10PfQ9/45fjls+2z7fzz/PN++H74p/6n/skFyQXkCuQKWQxZDMILwgskDCQMlwuXC+EI4Qjw
- B/AHhgeGBwkECQRkAGQAs/6z/lP+U/4IAAgArAKsAkcFRwU1CTUJwQ3BDT8SPxJaF1oXnRudG8wdzB2q
- Hqoe6R7pHgkfCR8CHwIfYB5gHq0drR3jHeMdHh8eH/cf9x9wH3Af4R7hHpEekR6+HL4cdRl1Gf8V/xWy
- ErISsg+yD/sM+wyaCpoKrwivCBQHFAfrBesFAgUCBQYEBgRIA0gDVwJXAu0A7QAP/w//AvsC+431jfUw
- 8jDyBfAF8H7sfuwi6CLoEuMS43Hdcd3u2O7YkdaR1iHXIdee2p7ar9+v303lTeWo6ajp2uva60PuQ+6C
- 8YLxN/Q39B33Hffp+en5yPrI+hv6G/oD+QP55ffl9yj3KPfB9sH2l/aX9n/2f/ZL9kv2VfZV9kf2R/a9
- 9b31WvVa9R31HfXZ9Nn0WfRZ9E7yTvK+777vZ+9n73vwe/CQ8ZDx/vP+80P4Q/if/Z/9DAMMA4sGiwal
- CKUISAxIDOwQ7BByFHIU0BfQF7EbsRu6HroePCE8IbYktiSwKLAoZStlK7kruSvrKespYiZiJnAgcCDb
- GNsYfxJ/Eh4OHg5YC1gLGgwaDE0QTRD8E/wTBxUHFesT6xP4EPgQ2wzbDCkIKQhNA00Dpf+l//n8+fxw
- +XD5nvWe9cvyy/Lc79zvGewZ7Ifoh+h75nvm7ubu5pXolegI6QjprOis6B7pHukz6jPqZOtk69Ds0OzP
- 7s/uYvFi8ZPzk/NC9UL1mPeY90f6R/pS/FL8UP5Q/toA2gBeA14DqQWpBVMIUwj5CvkKoAygDAkOCQ6f
- D58P1w/XD/IO8g4zDjMOPQ09DRQNFA2YDpgO4A/gD18QXxCHEIcQOhA6EGkRaRFTFFMUAhYCFv8V/xVL
- FUsVQRRBFK8TrxOBEoES6A/oD6oNqg17C3sLSwhLCJQFlAWgA6ADlAGUAcP/w/8d/h3+XPxc/L36vfrt
- +O34XfZd9sbzxvMg8iDydO907+Xp5elL5EvkTeBN4Pzb/NvP18/XWtRa1DLRMtE30DfQtdC10CPRI9Hc
- 1NzUR9xH3GTjZONv6W/pH+8f76D0oPRY+Vj5dft1+7j8uPwe/x7/1f/V/2P+Y/6t/K38kvqS+uD54Pmh
- +6H7Gv4a/ikCKQKeB54HiguKC5kNmQ2wDbANPAs8C3wHfAfYAtgCwf7B/tr92v0g/yD/eAF4AY8FjwUM
- CgwKtA60DmEUYRTLGMsY2xrbGogciBwfHh8etB60HiUeJR7RHNEcPhw+HGYdZh0JHwkfOSA5INUg1SD9
- H/0foR2hHY8ajxq2FrYWjRKNEhMPEw/yC/IL9gj2CDkGOQYnAycD+//7/+D84PzM+cz5CvgK+BT3FPdB
- 9UH1kPOQ89/x3/Ek7yTvyezJ7FvqW+oe5x7n+OT45EXjReOP4o/iBOYE5kzqTOp363frsuyy7J7vnu8Y
- 8xjzSfdJ9xD7EPtw/nD+nwKfAqcFpwVEBkQGTQVNBZUClQL9/v3+9fv1+4z5jPlg+GD4Mfgx+Ej3SPfR
- 9dH15fTl9D/0P/Qs8yzzNfE18XPuc+6a65rrrOis6Pzk/OTh4OHgbN1s3QvbC9uf2p/am92b3bDjsOO/
- 67/ra/Vr9RgAGABRC1ELAhYCFgMeAx5FI0UjciZyJrAmsCYGJQYl1CLUIr0fvR9HHUcddBx0HNQb1Bve
- G94buBy4HHIcchz/Gv8akxiTGG4UbhQjDyMPDgkOCdEC0QL//f/9yPnI+WL1YvUQ8xDzE/MT80vyS/K/
- 77/vhO2E7YDsgOy467jrhuuG60ztTO308PTwuvW69eb65vpH/0f/kwKTApQFlAU+CD4I4QnhCboKugon
- CycL/wn/CcwGzAayA7ID6AHoAa0ArQAeAB4AyADIAMQCxAKJBYkFigeKB7UItQgCCgIK6QrpCsILwgsu
- DS4NqQ2pDf0M/QxIDEgMYQthC5kKmQpOCk4KKQopCnQKdAq8CrwKhgqGCmoKagojCiMK0wnTCdkJ2QnN
- CM0I6QbpBrMFswWsBKwE+QP5A0gESATmBOYEjAWMBa0FrQXmBOYEPAQ8BAQDBAOuAK4AM/8z/2z+bP4C
- /QL96/vr+/b69vrv+O/4pfal9oD0gPRp8Wnxh+2H7W/qb+ra6Nrop+in6BjqGOom7CbsAe0B7WXtZe0j
- 7iPuF+4X7r/tv+0K7gruNO407nHuce4e7x7v6e/p75nxmfHN883zbfVt9bn3uffW+tb6z/zP/Mv9y/2j
- /qP+Wf5Z/oz8jPyC+oL6SPlI+Zz4nPiC94L3KfYp9m72bvYn+Sf52vza/HgAeAA4BDgEOQc5B6YIpghV
- CVUJnAmcCUMJQwlTCVMJSApICi8LLwv6C/oLhQ2FDcoPyg80EjQSRRRFFBgVGBVXFFcUGhMaE84RzhGx
- D7EPAQ0BDSsKKwpMB0wHowWjBXYFdgUrBSsFdAR0BOUD5QNNA00DxQLFAlQCVAKwAbABUQFRAasBqwFd
- Al0C3ALcAvwC/ALuAu4CtwK3AngCeAK7ArsCKwMrAxkDGQPhAuECqAKoAt8B3wHHAMcAFwAXAHT/dP/3
- /ff9CfwJ/Hv6e/rQ+ND4Ofc59/T29Pad9533WfhZ+F/5X/lu+m76T/tP+0v8S/xT/VP9nv6e/gAAAADJ
- AMkANwE3ATYBNgFeAF4AEf8R//P88/z0+fT5mvea9w/2D/Zg9GD0nPKc8n/wf/Cg7aDtquqq6gHoAeg6
- 5TrlXOJc4l7gXuCi36LfS99L3z7fPt8B4AHgeOF44TXkNeR16HXo/uz+7J/xn/FW9lb2ovqi+tH/0f/c
- BdwFcApwCiAOIA5TElMSNBU0FX8VfxU/FD8UpxKnEm0RbRFQEFAQ8Q7xDuMN4w0JDQkNvAu8C1gKWApc
- CVwJpQilCN8H3wfaBtoGvAW8BeYE5gSGBIYEdgR2BLgEuARxBXEF4wXjBUYFRgVQBFAEmgOaA6oCqgKl
- AaUB6QDpAKMAowB8AXwB7ALsAqUDpQNkBGQE5QXlBfQG9AaZB5kH2AjYCOQJ5AkxCjEKmQqZCvQK9ArL
- CssK1ArUCmMLYwvbC9sLzwvPC2wLbAscCxwLzQrNCmgKaApmCmYKiQqJCuQJ5AmqCKoIgAeAB1sGWwb6
- BPoEOQM5A1MBUwHH/8f/wP7A/kD+QP76/fr9gv2C/T39Pf02/Tb9dvx2/Of65/o3+Tf5dfd19+X15fUK
- 9Qr1k/ST9Av0C/Sw87DzsvOy85TzlPO88rzy7fDt8BruGu5L6kvqwOXA5ajhqOGK34rfGd8Z36ffp9/R
- 4dHhVORU5F/lX+WQ5pDmtui26ArqCurt6u3qtuy27LzvvO/b9Nv06/vr+/4D/gOuDK4MYRRhFDYaNhrq
- HuoeaSFpIaEgoSDAHcAdGhoaGvQW9BZuFG4UfhF+ESsPKw+BDoEORQ5FDsoNyg2fDJ8M3wnfCaoFqgUE
- AAQAbvlu+b7zvvO/77/vqO2o7bvtu+0U7xTvffF98VH1UfWa+Zr5u/27/ZYBlgG/BL8ElweXB0YKRgpr
- DGsMXg5eDuQP5A+dEJ0QJBEkEToROhFdEF0QHA8cD6YNpg0GDAYMrwqvCooJigllCGUIXgdeB20GbQaM
- BYwFnwSfBKADoAPOAs4CAAIAAiYBJgGdAJ0AcwBzAI8AjwDIAMgAywDLAKYApgCDAIMAfQB9AJMAkwBZ
- AFkA5v/m/9f/1/8BAAEATgBOAAIBAgGcAZwBygHKAesB6wEjAiMChQKFAgYDBgOeA54DrwSvBAgGCAZI
- B0gHpwinCOMJ4wmwCrAKNgs2Cx0LHQuKCooKFAoUCkcJRwkXCBcI3AbcBuUE5QQ8AjwCd/93/0f8R/zu
- +O74ovWi9cLxwvGz7bPtuOm46X/lf+VU4lTis+Cz4Gvfa98Y3xjfUeBR4NTh1OGZ45njIuYi5vfo9+go
- 7CjsUe9R75rxmvGs86zz8/Xz9er36vff+d/5tvu2+/P88/xk/mT+cQBxAFUCVQLCA8ID4ATgBOMF4wXm
- BuYGhQeFB+YH5gefCJ8IRAlECVMJUwkiCSIJuwi7CKcHpwfdBd0F6APoA0kCSQIEAQQBMgAyADMAMwDo
- AOgAAQIBAmYDZgPBBMEE7wXvBRIHEge0B7QHfwd/B/8G/wZ4BngGwQXBBf4E/gRWBFYE5wPnA/cD9wOA
- BIAETQVNBVcGVwaEB4QHmQiZCJEJkQlpCmkK5ArkCuYK5grECsQKpgqmCjUKNQo2CTYJ3gfeB3YGdgY2
- BTYFMQQxBEYDRgNiAmICegF6AYoAigCn/6f/qv6q/kT9RP2k+6T7VPpU+nj5ePnf+N/4hPiE+KH4ofhb
- +Vv5b/pv+oL7gvu4/Lj8Kv4q/m3/bf9IAEgABQEFAcIBwgGAAoACIAMgA1kDWQNYA1gDXwNfAxADEANs
- AmwC1QHVARcBFwE9AD0Aj/+P/7T+tP6s/az9n/yf/Or66vqD+IP40/XT9XTydPKJ7onuquqq6pvmm+bB
- 4sHiPuA+4DjfON+X35ffX+Ff4cfjx+MJ5gnm6ufq57rpuumB7IHsTfBN8Nrz2vMP9w/3r/qv+jX+Nf4u
- AS4BVARUBHsHewdWCVYJjwmPCRAJEAm6CLoIqgiqCMYIxgi6CboJ7QvtCzwOPA7XD9cPChEKEUgRSBEJ
- EAkQGQ4ZDrgLuAunCKcIsAWwBXIDcgMAAgACzQHNAfQC9ALrBOsEFAcUB7EIsQhwCXAJlgmWCSgJKAlJ
- CEkIcQdxB50GnQa8BbwFWQVZBaIFogXYBdgFeAV4Bd8E3wRQBFAEmwObA+EC4QKOAo4CfwJ/AmoCagKW
- ApYCQgNCAycEJwQlBSUFXQZdBqIHogeqCKoIYwljCdEJ0QksCiwKlwqXCsgKyAqgCqAKLgouCkUJRQn7
- B/sHdwZ3BpkEmQSVApUCwgDCABf/F/+z/bP9lvyW/FP7U/vw+fD5wfjB+Lr3uvfR9tH2KvYq9rv1u/WD
- 9YP1nfWd9RP2E/YE9wT3d/h3+OP54/np+un67vvu+wH9Af2q/ar9Av4C/kP+Q/4s/iz+eP14/dv72/tM
- +Uz5UPZQ9vHy8fLP7s/uGeoZ6pblluVB4kHiZOBk4Off59924XbhtuS25BToFOge7B7s7fHt8R/4H/hP
- /U/9QAFAAdoD2gOhBaEFsQaxBsMGwwb5BvkGqwerB70HvQfuB+4Hewl7CZkLmQuGDYYNGg8aD6MPow8m
- DyYPTA5MDrwMvAzwCfAJrAasBsgDyAM4ATgB/f79/mn9af1g/GD8kvuS+xz7HPtp+2n7mvya/Oz97P3T
- /tP+2//b/ycBJwE8AjwCZQNlA6oEqgQgBSAFvwS/BHAEcARfBF8EIwQjBLcDtwNZA1kDEQMRA8wCzAKu
- Aq4C/AL8AqoDqgNJBEkEpgSmBPQE9AQ6BToFXAVcBVwFXAUWBRYFjwSPBBgEGASVA5UDDgMOAxYDFgOx
- A7EDWQRZBOwE7ARvBW8F3QXdBfgF+AV5BXkFrgSuBOED4QPiAuIC6AHoAUcBRwHaANoAmQCZAJsAmwC8
- ALwAzgDOAMIAwgCWAJYAGwAbAFD/UP+w/rD+Y/5j/kL+Qv6I/oj+Ef8R/2T/ZP+Z/5n/rf+t/2L/Yv/k
- /uT+O/47/jv9O/3s++z7Lvou+ur36vde9V71pvKm8rzvvO+17LXsq+mr6cbmxuac5Jzk5OPk40PkQ+Qm
- 5SblKOco5yvqK+r27Pbswu/C7xjzGPNL9kv2C/kL+TX7NfvV/NX8zv7O/soAygD5AfkBYQNhAzYFNgU+
- Bj4GxQbFBoIHggc2CDYI8gjyCKEJoQnvCe8JTQpNCtcK1wrwCvAKggqCCgAKAAp8CXwJiQiJCP8G/wZH
- BUcFpgOmA1ACUAK9Ab0B6wHrAWkCaQIVAxUD/gP+AxcFFwUKBgoGcwZzBocGhwZ0BnQG4wXjBfIE8gQq
- BCoEtgO2A4QDhAOFA4UD1APUA4IEggQRBREFMgUyBVAFUAWaBZoF6QXpBSMGIwYoBigGKAYoBlQGVAYv
- Bi8GogWiBTIFMgXFBMUEGwQbBFADUAOEAoQC3QHdAUUBRQF+AH4A0v/S/y//L/8i/iL+Fv0W/TD8MPzg
- +uD6vfm9+YD5gPmU+ZT5uvm6+Tv6O/rK+sr6N/s3+6D7oPsN/A38p/yn/Gn9af0p/in+A/8D/wwADAAs
- ASwBZgJmArMDswPnBOcE2gXaBX8GfwbdBt0G4AbgBokGiQb0BfQFFwUXBdgD2AMUAhQCp/+n/678rvxK
- +Ur5oPWg9SXyJfJD70PvL+0v7SfsJ+ww7DDsE+0T7Yvui+5k8GTwj/KP8pz0nPTm9eb1ufa59r/3v/f+
- +P74QvpC+pf7l/t3/Xf9EAAQAKgCqALrBOsE/Qb9BiAIIAgACAAIMAcwB68FrwXPA88DcwJzAnUBdQGo
- AKgAlgCWADEBMQHxAfEBjAKMAvEC8QI9Az0DMwMzA38CfwJ9AX0BdgB2AD3/Pf8Z/hn+jf2N/XX9df1K
- /Ur9HP0c/W/9b/0l/iX+2v7a/r3/vf/gAOAA2gHaAX0CfQIBAwEDhAOEA9ED0QPoA+gDRAREBPoE+gSs
- BawFTAZMBgMHAwfjB+MHrgiuCP4I/ggSCRIJLQktCeII4gg3CDcIpwenB1AHUAcvBy8HAAcAB5EGkQZa
- BloGPQY9BqIFogW+BL4EygPKA5sCmwI4ATgBw//D/7D+sP4u/i7+nP2c/fT89Pyv/K/8jfyN/Gr8avxn
- /Gf8VfxV/EP8Q/w7/Dv8G/wb/CH8Ifxs/Gz80/zT/F39Xf3y/fL9e/57/vv++/5Y/1j/mf+Z/7v/u/+o
- /6j/i/+L/zT/NP9l/mX+n/2f/Sz9LP3Z/Nn8mPyY/ET8RPzQ+9D7gvuC+y37LfuP+o/64Png+Vv5W/kr
- +Sv5VPlU+ZX5lfnS+dL5C/oL+kr6Svqx+rH6CvsK+zj7OPub+5v7DvwO/Af8B/zr++v7afxp/D39Pf3N
- /c39Jv4m/qb+pv5N/03/4f/h/20AbQAwATABIgIiAg8DDwMEBAQECQUJBcsFywX6BfoFigWKBZ4EngSS
- A5IDiQKJAkkBSQEBAAEAIf8h/5T+lP49/j3+Lf4t/kD+QP5f/l/+hP6E/o3+jf6L/ov+e/57/hz+HP65
- /bn90v3S/ST+JP5b/lv+u/67/kn/Sf/I/8j/XwBfAAoBCgFaAVoBaAFoAY4BjgG8AbwB/QH9AY4CjgJG
- A0YD6APoA2kEaQSnBKcEkwSTBEsESwTPA88DMgMyA7UCtQJ6AnoChwKHAsMCwwL2AvYCLQMtA4EDgQO2
- A7YDsAOwA30DfQPyAvICJQIlAmkBaQG5ALkAJwAnAPv/+/8OAA4AOQA5AJAAkADsAOwAOAE4AYYBhgGf
- AZ8BiQGJAZYBlgG4AbgBxAHEAd0B3QEjAiMChQKFAtYC1gLwAvACzQLNAmcCZwLFAcUBEgESAWEAYQCm
- /6b/1/7X/uH94f2z/LP8Yfth++357flK+Er4pfal9gb1BvU78zvzk/GT8UnwSfAL7wvvDu4O7ovti+0J
- 7Qntw+zD7BDtEO0v7S/tOe057e7t7u3b7tvu5u/m75nxmfHZ89nz5Pbk9q76rvoj/iP+XgFeAdoE2gSQ
- B5AHFgkWCQwKDApzCnMKVwpXCjIKMgodCh0KKAooCo8KjwpKC0oLFwwXDOYM5gytDa0Nwg3CDboMugxL
- C0sL2gnaCQEIAQj0BfQFJgQmBKQCpAKJAYkB0QDRAF0AXQATABMAtv+2/0H/Qf/3/vf+0v7S/rP+s/6+
- /r7+Hv8e/6H/of/t/+3/PwA/ANQA1AAeAR4BBAEEARkBGQFTAVMBcgFyAZ0BnQHdAd0BNwI3ArICsgIb
- AxsDXQNdA3kDeQNfA18DKQMpA+8C7wKpAqkCYAJgAikCKQLxAfEBrAGsAXoBegE8ATwBrgCuABgAGACe
- /57/z/7P/sL9wv3G/Mb8v/u/++X65fpk+mT6FvoW+j36PfrZ+tn6c/tz+wz8DPys/Kz8Iv0i/Zb9lv0b
- /hv+qf6p/kn/Sf/S/9L/QQBBAK0ArQDcANwAtgC2AEYARgCM/4z/zv7O/kv+S/7j/eP9QP1A/UP8Q/ws
- +yz7I/oj+hr5Gvnk9+T3LfYt9mz0bPS087TzDPQM9Gz1bPX/9//3g/qD+jb8Nvwi/iL+agBqAEYCRgJP
- A08DAwMDA8YBxgG3ALcA1P/U/w3/Df8G/wb/jf+N/xQAFADYANgACwILAiUDJQN+A34DBgMGA/8B/wHY
- ANgA6f/p/4/+j/6W/Jb8VftV+zb7Nvtk+2T73vve+5n8mfwr/Sv99P30/Tj/OP+0ALQAKAIoAkkDSQNN
- BE0EbwVvBSkGKQZ5BnkGvga+BpYGlgbRBdEF3QTdBD8EPwQYBBgE3APcA3MDcwOdA50DLAQsBHkEeQSm
- BKYE2gTaBBIFEgVEBUQFGgUaBacEpwRbBFsEIQQhBNED0QOYA5gDjQONA5EDkQNjA2MDCAMIA9UC1QLJ
- AskCggKCAuYB5gE1ATUBnQCdAPP/8/8H/wf/Af4B/if9J/2c/Jz8SPxI/Az8DPwB/AH8Hfwd/DP8M/xj
- /GP8zfzN/E39Tf3O/c79Rv5G/sn+yf50/3T/JAAkAMcAxwBrAWsB/QH9AXYCdgLUAtQCEAMQA0sDSwN6
- A3oDdwN3Az8DPwOjAqMCnAGcAYIAggB8/3z/fP58/pD9kP21/LX8HPwc/On76fvU+9T7q/ur+4j7iPtp
- +2n7RftF+y37Lfs6+zr7aPto+5j7mPvR+9H7O/w7/O/87/zN/c39eP54/tf+1/43/zf/of+h/+3/7f8R
- ABEAFQAVACEAIQBIAEgAdAB0ALgAuAAGAQYBLgEuAVABUAFrAWsBRAFEAeMA4wBEAEQAZP9k/6X+pf5J
- /kn+JP4k/gr+Cv7+/f79Dv4O/iX+Jf49/j3+cv5y/o3+jf5e/l7+H/4f/uX95f2w/bD9mv2a/Zz9nP3B
- /cH9HP4c/n7+fv7n/uf+Z/9n/9L/0v8bABsATQBNAGMAYwB8AHwAmQCZALEAsQDdAN0AHwEfAXIBcgHX
- AdcBRQJFAsACwAI8AzwDqgOqAxYEFgR4BHgExgTGBP0E/QQGBQYF+wT7BO8E7wSjBKMELQQtBM8DzwN9
- A30DPwM/AxYDFgPPAs8CdgJ2AicCJwLOAc4BbQFtAQoBCgGrAKsAUQBRAPb/9v/H/8f/1v/W//j/+P8q
- ACoAZQBlAIQAhACbAJsAqwCrAJwAnAB/AH8AUABQABcAFwD2//b/zf/N/5D/kP9P/0//AP8A/7X+tf5z
- /nP+Kv4q/u797v2x/bH9Zf1l/Sv9K/30/PT8ufy5/Ij8iPwy/DL8yPvI+4f7h/tI+0j7+/r7+tL60vrN
- +s365Prk+gP7A/sL+wv7FfsV+yb7Jvs0+zT7VftV+4b7hvus+6z7y/vL++/77/su/C78q/yr/Gf9Z/1E
- /kT+Iv8i/wIAAgDmAOYAqQGpAUUCRQK7ArsC6gLqAtYC1gKoAqgCYAJgAgwCDAK8AbwBcQFxATsBOwEa
- ARoB+QD5AN0A3QDIAMgArgCuAIQAhABLAEsADQANAMX/xf9m/2b/AP8A/6n+qf5u/m7+R/5H/iD+IP4O
- /g7+KP4o/mD+YP6s/qz+BP8E/1n/Wf+v/6//AgACAE8ATwCbAJsA1gDWAPsA+wAkASQBTwFPAXsBewGq
- AaoBxQHFAdMB0wHpAekB9QH1AfsB+wEMAgwCFwIXAhUCFQILAgsC9gH2AdcB1wGrAasBcwFzAUABQAEb
- ARsB+AD4AM0AzQCfAJ8AdwB3AEsASwAlACUADgAOAP7//v/9//3/HgAeAF8AXwCsAKwA4QDhAP0A/QAn
- AScBRQFFAT4BPgE6AToBKwErAfwA/ADhAOEA3QDdANoA2gDtAO0AAgECAf0A/QDnAOcAvgC+AI4AjgBV
- AFUA/////6r/qv90/3T/Nv82/+T+5P6k/qT+df51/j7+Pv4M/gz+8v3y/db91v2m/ab9cv1y/S39Lf3D
- /MP8SPxI/NT71Ptu+277GfsZ+9f61/qz+rP6mvqa+nL6cvpo+mj6j/qP+sf6x/oc+xz7jvuO+wP8A/yR
- /JH8NP00/dL90v16/nr+I/8j/6r/qv8jACMAnQCdAAgBCAF2AXYB8QHxAV0CXQK4ArgCEgMSA0oDSgNA
- A0ADEAMQA8wCzAJkAmQC3wHfAVABUAHPAM8AhgCGAG4AbgBjAGMAZgBmAHIAcgBzAHMAbQBtAGkAaQBp
- AGkAcABwAGoAagBXAFcAWQBZAH8AfwCuAK4AygDKANUA1QDlAOUA7wDvAOAA4ADJAMkAtgC2AJcAlwB1
- AHUAZABkAFQAVAA3ADcAJAAkABwAHAAHAAcA+v/6//7//v/8//z/AgACACUAJQBNAE0AfQB9AK4ArgDK
- AMoA4QDhAP0A/QAHAQcB+wD7AN8A3wC7ALsAmgCaAH8AfwBxAHEAaQBpAFYAVgBCAEIAOwA7ADEAMQAX
- ABcA7f/t/8b/xv+z/7P/rv+u/8P/w//y//L/IQAhAF8AXwCeAJ4AwQDBANsA2wDkAOQAywDLAKwArACI
- AIgAWABYADYANgARABEA4P/g/7j/uP+Y/5j/gv+C/3D/cP9B/0H/Bv8G/8D+wP5W/lb+4P3g/W/9b/3/
- /P/8k/yT/B38Hfyk+6T7R/tH+wj7CPv3+vf6AfsB+wb7Bvsn+yf7Xvte+4b7hvur+6v7uvu6+537nfuD
- +4P7Z/tn+zn7Ofsf+x/7FfsV+yP7I/t++377Q/xD/Hj9eP3r/uv+PgA+AFkBWQEvAi8CvgK+Ah4DHgMo
- AygD1ALUAlgCWALKAcoBYwFjAWkBaQG9Ab0BQAJAAuEC4QJmA2YDvAO8A+QD5APWA9YDngOeAzMDMwOt
- Aq0CNwI3ArgBuAFMAUwBJAEkASABIAFRAVEBzwHPAUICQgKKAooCugK6AsQCxALCAsICwgLCAqwCrAKB
- AoECPwI/Au4B7gGjAaMBWwFbATwBPAFTAVMBYQFhAV0BXQFPAU8BKAEoAQABAAHbANsApwCnAH4AfgBV
- AFUAIQAhAPz//P/g/+D/3f/d//X/9f/x//H/4f/h/+P/4//U/9T/vf+9/6T/pP90/3T/W/9b/2L/Yv9c
- /1z/VP9U/0v/S/84/zj/MP8w/y//L/8o/yj/Fv8W/+j+6P6x/rH+eP54/jP+M/73/ff9w/3D/ZH9kf1t
- /W39K/0r/bn8ufw9/D38rPus+xL7EvuR+pH6D/oP+oP5g/kh+SH5Jfkl+cn5yfnx+vH6J/wn/CH9If3F
- /cX9O/47/sb+xv5X/1f/xv/G/wEAAQAMAAwAPAA8AOEA4QDRAdEB0gLSArsDuwNFBEUEWgRaBCYEJgTM
- A8wDVwNXA9wC3AKHAocCWAJYAhkCGQLAAcABUwFTAb8AvwA3ADcA4f/h/3T/dP/V/tX+Of45/tf91/3d
- /d39Qv5C/s3+zf5T/1P/wv/C/xwAHABuAG4ArQCtANkA2QD6APoABwEHAREBEQEkASQBOQE5AVUBVQF4
- AXgBnwGfAeQB5AFBAkECgQKBApECkQKJAokCgwKDAnUCdQJYAlgCNgI2AgICAgK1AbUBdgF2AUIBQgEH
- AQcB8wDzAAkBCQEWARYBFwEXAR0BHQEhASEBKgEqATMBMwEzATMBKwErAREBEQHmAOYAvwC/AKUApQCF
- AIUAZQBlAF8AXwB4AHgAmACYALAAsAC8ALwAsQCxAJ0AnQCQAJAAiwCLAIoAigB+AH4AXwBfAEUARQA7
- ADsAPAA8AEkASQBPAE8ASwBLAEkASQA0ADQAAgACANP/0/+4/7j/sf+x/63/rf+I/4j/Ov86/9r+2v5y
- /nL+Df4N/rf9t/1u/W79Pf09/Tb9Nv1S/VL9gP2A/bb9tv3Y/dj90/3T/cH9wf2v/a/9kP2Q/W39bf1Y
- /Vj9Wf1Z/Zb9lv0e/h7+u/67/kf/R/+//7//FAAUAEwATABrAGsAYwBjAEgASAA2ADYAKwArACwALAAz
- ADMANQA1AD8APwBGAEYANgA2ABkAGQDu/+7/of+h/07/Tv8h/yH/Hf8d/zj/OP9j/2P/fv9+/4P/g/+a
- /5r/w//D/+X/5f8IAAgAKgAqAC0ALQAiACIAFwAXAAAAAADs/+z/5//n/+P/4//q/+r//////xwAHABA
- AEAAXQBdAH8AfwC0ALQA4QDhAAIBAgEmASYBMwEzASoBKgEzATMBTQFNAW8BbwGiAaIB3AHcARICEgJA
- AkACVwJXAlACUAI7AjsCJQIlAv8B/wHFAcUBiAGIAUMBQwH2APYAvwC/AJwAnAB8AHwAYwBjAEAAQAAT
- ABMA8//z/9f/1/+//7//q/+r/4v/i/9z/3P/fP98/47/jv+w/7D/5f/l/x0AHQBfAF8AoQChAMkAyQDh
- AOEA7QDtAOIA4gDRANEAvQC9AJ8AnwB9AH0AVgBWADAAMAATABMA/v/+/+b/5v/E/8T/mP+Y/2r/av86
- /zr/F/8X/wf/B//x/vH+0/7T/rb+tv6O/o7+bf5t/lz+XP5N/k3+SP5I/k3+Tf5K/kr+Wf5Z/oX+hf6z
- /rP+1f7V/uv+6/78/vz+Ff8V/zX/Nf9d/13/g/+D/5T/lP+g/6D/qf+p/6D/oP+Q/5D/h/+H/3//f/+C
- /4L/k/+T/6//r//X/9f//////xwAHAA5ADkATgBOAEsASwAzADMAHQAdAA0ADQD3//f/5P/k/+P/4//k
- /+T/3v/e/+L/4v/m/+b/2//b/8z/zP+7/7v/r/+v/6T/pP+Q/5D/g/+D/5D/kP+t/63/xf/F/9b/1v/l
- /+X/+P/4/woACgAeAB4ALwAvADIAMgAnACcAHgAeACYAJgA7ADsAUQBRAFwAXABlAGUAfAB8AJsAmwC3
- ALcAzADMAM0AzQC6ALoAqwCrAKAAoACPAI8AfQB9AGkAaQBJAEkAKQApABYAFgALAAsADQANAB4AHgA6
- ADoAXQBdAIIAggCiAKIAtgC2AMAAwADAAMAArgCuAI4AjgB7AHsAegB6AH4AfgCHAIcAnQCdAL4AvgDe
- AN4A8wDzAPcA9wDcANwApACkAGgAaAAsACwA9v/2/9D/0P+t/63/lv+W/6D/oP+1/7X/yf/J/+r/6v8F
- AAUAFAAUACcAJwAuAC4AHAAcAAAAAADr/+v/4f/h/8//z/+t/63/jP+M/2j/aP9K/0r/RP9E/0f/R/9K
- /0r/S/9L/0b/Rv9F/0X/Rf9F/y7/Lv8H/wf/5v7m/tP+0/7b/tv+8P7w/g//D/85/zn/Y/9j/57/nv/u
- /+7/KgAqAFEAUQB0AHQAhwCHAJUAlQCeAJ4AlACUAIcAhwBxAHEASgBKACEAIQD0//T/xP/E/6v/q/+g
- /6D/oP+g/63/rf+2/7b/wf/B/9X/1f/m/+b/9P/0/+3/7f/I/8j/of+h/33/ff9e/17/TP9M/0b/Rv9U
- /1T/ef95/53/nf/H/8f/8f/x//////8AAAAA+P/4/9L/0v+r/6v/hv+G/13/Xf9I/0j/S/9L/1z/XP98
- /3z/o/+j/9T/1P8FAAUAHAAcACAAIAAcABwADgAOAAMAAwD6//r/7//v//X/9f8HAAcAJAAkAFAAUAB4
- AHgAlwCXALUAtQDIAMgA1wDXAOQA5ADmAOYA6ADoAOMA4wDSANIAwwDDAKsAqwCKAIoAfgB+AH0AfQB2
- AHYAdAB0AHUAdQB7AHsAjwCPAKYApgC8ALwAxADEALUAtQCdAJ0AhwCHAGwAbABOAE4AKwArAAwADAAC
- AAIAAwADAAgACAATABMAFwAXABUAFQAWABYAGQAZABYAFgABAAEA6P/o/9b/1v+//7//pv+m/5n/mf+P
- /4//jf+N/5//n/+0/7T/xv/G/97/3v/1//X/BgAGABYAFgAUABQAAAAAAOX/5f/D/8P/of+h/4P/g/9q
- /2r/Vv9W/0v/S/9T/1P/aP9o/3f/d/98/3z/fP98/3b/dv9v/2//bP9s/2b/Zv9f/1//Wv9a/13/Xf9q
- /2r/ff99/5P/k/+n/6f/t/+3/8b/xv/V/9X/3//f/+f/5//u/+7/7v/u/+T/5P/Y/9j/zf/N/8n/yf/Q
- /9D/3P/c/+X/5f/u/+7/+v/6/wsACwAfAB8ALAAsADEAMQAzADMAMwAzADQANAA2ADYANAA0AC8ALwAo
- ACgAKAAoADIAMgA9AD0AQABAAD0APQA3ADcALgAuACMAIwAXABcADwAPAAsACwADAAMA/P/8//7//v8C
- AAIAAwADAAUABQALAAsADQANAAkACQAFAAUAAwADAP7//v/1//X/8f/x//b/9v8CAAIAEgASACMAIwA5
- ADkATQBNAFwAXABtAG0AdwB3AHkAeQB9AH0AfgB+AH4AfgCCAIIAhQCFAIYAhgCJAIkAjQCNAJUAlQCe
- AJ4AnQCdAJcAlwCLAIsAewB7AHEAcQBsAGwAZQBlAGIAYgBeAF4AVwBXAFEAUQBLAEsAPwA/ADAAMAAb
- ABsAAQABAOr/6v/W/9b/xv/G/7z/vP+2/7b/sv+y/63/rf+p/6n/pP+k/5v/m/+Q/5D/g/+D/3H/cf9l
- /2X/YP9g/2H/Yf9p/2n/c/9z/3//f/+W/5b/q/+r/7b/tv+6/7r/uv+6/7j/uP+2/7b/r/+v/6L/ov+a
- /5r/mf+Z/6D/oP+u/67/uf+5/8D/wP/E/8T/wf/B/8D/wP/G/8b/zP/M/83/zf/L/8v/zP/M/9P/0//c
- /9z/5//n//b/9v8IAAgAIAAgADMAMwA+AD4ARgBGAEkASQBKAEoATQBNAEwATABGAEYAPgA+ADgAOAA3
- ADcANgA2ADEAMQAuAC4ALQAtACwALAAxADEAMwAzAC0ALQAmACYAHwAfABUAFQANAA0ACgAKAAMAAwD8
- //z/+//7//7//v8DAAMADQANABQAFAATABMAFQAVABYAFgASABIADgAOAAwADAAKAAoACwALABAAEAAU
- ABQAHAAcACYAJgArACsAKwArACkAKQAkACQAIAAgABkAGQAQABAADQANAA8ADwASABIAGQAZACAAIAAi
- ACIAJAAkACgAKAApACkAKAAoACgAKAAnACcAKAAoACoAKgArACsAKgAqACwALAAvAC8AMQAxADMAMwAy
- ADIALwAvACwALAAqACoAKQApACUAJQAdAB0AFgAWABEAEQAKAAoAAQABAPn/+f/y//L/7v/u/+n/6f/j
- /+P/3f/d/9f/1//S/9L/zP/M/8X/xf+9/73/tf+1/7D/sP+v/6//sv+y/7b/tv+8/7z/wv/C/8b/xv/H
- /8f/x//H/8X/xf/B/8H/u/+7/7b/tv+0/7T/tP+0/7X/tf+1/7X/s/+z/7b/tv+5/7n/uv+6/7r/uv+8
- /7z/vf+9/8D/wP/F/8X/y//L/9D/0P/X/9f/3//f/+f/5//u/+7/9f/1//7//v8GAAYADgAOABUAFQAc
- ABwAJAAkACgAKAAqACoALwAvADMAMwA2ADYAOgA6ADwAPAA6ADoAOQA5ADkAOQA8ADwAQQBBAEkASQBS
- AFIAWABYAFwAXABdAF0AXgBeAF8AXwBgAGAAXwBfAFoAWgBUAFQATwBPAEwATABIAEgAQQBBADYANgAq
- ACoAHAAcABAAEAAFAAUA+v/6/+z/7P/f/9//1f/V/87/zv/I/8j/xP/E/8D/wP/A/8D/w//D/8X/xf/H
- /8f/yP/I/8n/yf/O/87/2P/Y/+L/4v/r/+v/9f/1//7//v8FAAUADgAOABQAFAAYABgAGwAbAB4AHgAf
- AB8AIQAhACMAIwAjACMAIgAiAB8AHwAbABsAEwATAAoACgADAAMAAAAAAPz//P/3//f/8//z//L/8v/y
- //L/9P/0//f/9//6//r//v/+/wEAAQAGAAYACQAJAA0ADQAQABAAEgASABQAFAAWABYAFwAXABYAFgAV
- ABUAFAAUABMAEwATABMAEgASAA8ADwAKAAoABgAGAAEAAQD8//z/9//3//P/8//w//D/6v/q/+P/4//b
- /9v/1P/U/83/zf/I/8j/xv/G/8b/xv/I/8j/yv/K/8v/y//N/83/zv/O/87/zv/Q/9D/0v/S/9T/1P/Y
- /9j/3//f/+f/5//w//D/9//3//v/+/8AAAAABwAHAA0ADQASABIAFgAWABsAGwAgACAAJQAlACgAKAAr
- ACsALQAtAC4ALgAuAC4ALwAvADAAMAAwADAALgAuACwALAAqACoAJwAnACYAJgAlACUAIwAjACEAIQAh
- ACEAHgAeABgAGAATABMAEQARAA4ADgAJAAkABgAGAAYABgAHAAcABgAGAAUABQAFAAUABgAGAAgACAAL
- AAsADQANAA4ADgAOAA4ACwALAAYABgACAAIAAAAAAPz//P/5//n/9f/1//L/8v/v/+//6//r/+f/5//j
- /+P/3f/d/9j/2P/U/9T/z//P/8r/yv/G/8b/w//D/8H/wf/B/8H/w//D/8n/yf/R/9H/2P/Y/+D/4P/p
- /+n/8P/w//j/+P8AAAAABwAHAA4ADgAWABYAHAAcACAAIAAkACQAJAAkACMAIwAhACEAHwAfAB0AHQAa
- ABoAFAAUAA8ADwALAAsACQAJAAcABwAHAAcACAAIAAgACAAHAAcABgAGAAYABgAJAAkADAAMABAAEAAS
- ABIAEwATABUAFQAXABcAGQAZABoAGgAcABwAHgAeACAAIAAeAB4AGgAaABYAFgARABEADAAMAAkACQAE
- AAQA//////v/+//2//b/8P/w/+3/7f/q/+r/5//n/+b/5v/l/+X/5P/k/+f/5//r/+v/7//v//P/8//3
- //f/+//7//7//v/////////////////+//7//f/9//7//v///////v/+//7//v/+//7//v/+//3//f/6
- //r/+P/4//j/+P/5//n/+//7//7//v8AAAAAAwADAAUABQAFAAUABQAFAAgACAANAA0AFAAUABkAGQAc
- ABwAHgAeACIAIgAkACQAJQAlACUAJQAlACUAIwAjAB8AHwAaABoAFgAWABQAFAARABEADgAOAAwADAAI
- AAgAAwADAAAAAAD//////v/+//v/+//1//X/8f/x/+7/7v/s/+z/7P/s/+//7//x//H/9f/1//n/+f/7
- //v/+v/6//n/+f/6//r/+//7//v/+//7//v/+v/6//j/+P/2//b/9v/2//X/9f/z//P/8f/x//H/8f/y
- //L/9f/1//j/+P/8//z/AAAAAAQABAAFAAUACAAIAAkACQAKAAoACwALAAwADAAMAAwADgAOABAAEAAS
- ABIAEwATABMAEwAVABUAFgAWABUAFQAUABQAEwATABEAEQAPAA8ADgAOAAwADAAKAAoACQAJAAkACQAK
- AAoACQAJAAgACAAIAAgACQAJAAoACgAMAAwADAAMAAoACgAJAAkACQAJAAkACQAIAAgABgAGAAQABAAB
- AAEAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAP/////+//7//f/9//r/+v/3//f/9v/2//b/9v/3
- //f/9//3//f/9//3//f/9//3//f/9//4//j/+P/4//f/9//4//j/+v/6//z//P/8//z//P/8//3//f/9
- //3//f/9//z//P/6//r/+P/4//f/9//3//f/9//3//n/+f/6//r/+f/5//r/+v/8//z//v/+/wAAAAAA
- AAAAAAAAAAAAAAABAAEABAAEAAYABgAIAAgACAAIAAgACAAHAAcABQAFAAQABAAEAAQABQAFAAYABgAF
- AAUABAAEAAIAAgABAAEAAAAAAP/////+//7//////wAAAAAAAAAAAgACAAMAAwADAAMABAAEAAYABgAG
- AAYABQAFAAUABQAFAAUABgAGAAgACAAJAAkACAAIAAgACAAJAAkACgAKAAoACgAJAAkACAAIAAgACAAH
- AAcABgAGAAIAAgD//////P/8//v/+//7//v//f/9////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/
- /////v/+//7//v/9//3//P/8//3//f8AAAAAAAAAAAAAAAD+//7//f/9//z//P/8//z//P/8//3//f/+
- //7//////wAAAAABAAEAAgACAAMAAwAEAAQABAAEAAQABAADAAMAAgACAAEAAQAAAAAAAAAAAP/////+
- //7//f/9//z//P/7//v//P/8//3//f/+//7//P/8//v/+//6//r/+//7//z//P////////////7//v/+
- //7//////wAAAAAAAAAAAAAAAP7//v/9//3//f/9//3//f/+//7//////wAAAAACAAIAAwADAAIAAgAA
- AAAA//////7//v/+//7//f/9//3//f8AAAAAAgACAAQABAAHAAcACAAIAAkACQAKAAoACwALAAwADAAM
- AAwACwALAAoACgAJAAkACQAJAAcABwAFAAUABAAEAAQABAAFAAUABAAEAAUABQAFAAUAAwADAAAAAAD/
- /////v/+//3//f/8//z/+v/6//n/+f/4//j/9//3//n/+f/8//z//v/+//////8AAAAAAAAAAAEAAQAC
- AAIAAgACAAIAAgACAAIAAwADAAMAAwACAAIAAAAAAAAAAAABAAEAAAAAAAAAAAAAAAAA//////////8A
- AAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAQABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAMAAwAD
- AAMAAwADAAMAAwACAAIAAQABAAEAAQACAAIAAgACAAIAAgABAAEAAAAAAP/////+//7///////7//v/8
- //z/+v/6//v/+//5//n/+P/4//n/+f/5//n/+f/5//v/+//9//3//v/+////////////AAAAAAEAAQAC
- AAIAAwADAAQABAAGAAYACAAIAAoACgALAAsADAAMAAwADAAMAAwADAAMAAwADAALAAsACwALAAoACgAJ
- AAkABwAHAAYABgAEAAQAAwADAAIAAgABAAEAAAAAAP/////9//3//P/8//z//P/7//v/+v/6//r/+v/5
- //n/+//7//z//P/9//3//////wAAAAABAAEAAgACAAMAAwADAAMABAAEAAUABQAGAAYABQAFAAQABAAE
- AAQABAAEAAMAAwADAAMAAwADAAIAAgACAAIAAgACAAEAAQAAAAAAAQABAAAAAAD/////////////////
- //////////7//v/+//7//v/+//7//v/9//3//v/+//7//v/+//7///////////8AAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAP/////////////////////+//7//f/9//v/+//6//r/+v/6//v/+//8
- //z//f/9//7//v8AAAAAAAAAAAEAAQADAAMABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAF
- AAUABQAFAAUABQAFAAUABgAGAAYABgAFAAUABAAEAAMAAwADAAMAAgACAAEAAQAAAAAA//////7//v/+
- //7//////wAAAAAAAAAAAgACAAMAAwADAAMAAgACAAEAAQAAAAAAAAAAAP/////+//7//v/+//7//v/+
- //7//v/+//7//v/9//3//f/9//z//P/9//3//P/8//z//P/8//z//P/8//3//f//////AAAAAAAAAAD/
- /////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQACAAIAAQABAAEAAQAB
- AAEAAgACAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQACAAIAAQABAAEAAQAB
- AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////7//v//
- ////AAAAAAAAAAACAAIAAwADAAMAAwADAAMAAwADAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAQABAAD
- AAMAAgACAAIAAgABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAD///////////7//v/+//7//f/9//7//v/+
- //7///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
- AAAA/v/+//7//v/9//3//f/9//3//f/8//z//P/8//z//P/8//z//P/8//z//P/9//3//f/9//7//v//
- ////AAAAAAAAAAABAAEAAgACAAMAAwADAAMAAwADAAMAAwADAAMAAgACAAIAAgACAAIAAgACAAEAAQAB
- AAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAQABAAEAAQAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
- AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAP////////////////////8L
-
-
..\resources\b612mono-regular.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -802,4 +127,13 @@
..\resources\oxygen-regular.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ ..\Resources\cog-wheel-gear-setting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Notification.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\Oxygen-Bold.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
\ No newline at end of file
diff --git a/EasyCPDLC/Properties/Settings.Designer.cs b/EasyCPDLC/Properties/Settings.Designer.cs
index 026e8a9..b220ce0 100644
--- a/EasyCPDLC/Properties/Settings.Designer.cs
+++ b/EasyCPDLC/Properties/Settings.Designer.cs
@@ -8,23 +8,43 @@
//
//------------------------------------------------------------------------------
-namespace EasyCPDLC.Properties
-{
-
-
+namespace EasyCPDLC.Properties {
+
+
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
+
+ public static Settings Default {
+ get {
return defaultInstance;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool StayOnTop {
+ get {
+ return ((bool)(this["StayOnTop"]));
+ }
+ set {
+ this["StayOnTop"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("True")]
+ public bool PlayAudibleAlert {
+ get {
+ return ((bool)(this["PlayAudibleAlert"]));
+ }
+ set {
+ this["PlayAudibleAlert"] = value;
+ }
+ }
}
}
diff --git a/EasyCPDLC/Properties/Settings.settings b/EasyCPDLC/Properties/Settings.settings
index 3964565..db3b95c 100644
--- a/EasyCPDLC/Properties/Settings.settings
+++ b/EasyCPDLC/Properties/Settings.settings
@@ -1,7 +1,12 @@
-
-
-
-
-
-
+
+
+
+
+ False
+
+
+ True
+
+
+
\ No newline at end of file
diff --git a/EasyCPDLC/RequestForm.Designer.cs b/EasyCPDLC/RequestForm.Designer.cs
index aa57784..13293e4 100644
--- a/EasyCPDLC/RequestForm.Designer.cs
+++ b/EasyCPDLC/RequestForm.Designer.cs
@@ -236,6 +236,7 @@ private void InitializeComponent()
this.reportButton.TabIndex = 13;
this.reportButton.Text = "REPORT";
this.reportButton.UseVisualStyleBackColor = true;
+ this.reportButton.Click += new System.EventHandler(this.reportButton_Click);
//
// requestContainer
//
diff --git a/EasyCPDLC/RequestForm.cs b/EasyCPDLC/RequestForm.cs
index bf7883c..ee88877 100644
--- a/EasyCPDLC/RequestForm.cs
+++ b/EasyCPDLC/RequestForm.cs
@@ -71,13 +71,13 @@ public bool needsLogon
{
logonButton.Text = "LOGON";
requestButton.Enabled = false;
- //reportButton.Enabled = false;
+ reportButton.Enabled = false;
}
else
{
logonButton.Text = "LOGOFF";
requestButton.Enabled = true;
- //reportButton.Enabled = true;
+ reportButton.Enabled = true;
}
}
}
@@ -86,6 +86,7 @@ public RequestForm(MainForm parent)
{
InitializeComponent();
this.parent = parent;
+ this.TopMost = parent.TopMost;
if (this.parent.currentATCUnit != null)
{
@@ -259,6 +260,34 @@ private void pdcButton_Click(object sender, EventArgs e)
pdcRadioButton.Checked = true;
}
+ private void reportButton_Click(object sender, EventArgs e)
+ {
+ reportRadioButton.Checked = true;
+ messageFormatPanel.Controls.Clear();
+ messageFormatPanel.Controls.Add(createTemplate("RECIPIENT:"));
+ messageFormatPanel.Controls.Add(createTextBox(parent.currentATCUnit, 4, true));
+ messageFormatPanel.SetFlowBreak(messageFormatPanel.Controls[messageFormatPanel.Controls.Count - 1], true);
+ messageFormatPanel.Controls.Add(createTemplate("POSITION REPORT"));
+ messageFormatPanel.SetFlowBreak(messageFormatPanel.Controls[messageFormatPanel.Controls.Count - 1], true);
+ messageFormatPanel.Controls.Add(createTemplate("OVERHEAD"));
+ messageFormatPanel.Controls.Add(createTextBox("", 7));
+ messageFormatPanel.Controls.Add(createTemplate("AT"));
+ messageFormatPanel.Controls.Add(createTextBox(DateTime.UtcNow.ToString("HHmm"), 4));
+ messageFormatPanel.Controls.Add(createTemplate("Z"));
+ messageFormatPanel.Controls.Add(createTemplate("FL"));
+ messageFormatPanel.Controls.Add(createTextBox(userVATSIMData.flight_plan.altitude.Substring(0, 3), 3));
+ messageFormatPanel.SetFlowBreak(messageFormatPanel.Controls[messageFormatPanel.Controls.Count - 1], true);
+ messageFormatPanel.Controls.Add(createTemplate("NEXT"));
+ messageFormatPanel.Controls.Add(createTextBox("", 7));
+ messageFormatPanel.Controls.Add(createTemplate("AT"));
+ messageFormatPanel.Controls.Add(createTextBox("", 4));
+ messageFormatPanel.Controls.Add(createTemplate("Z"));
+ messageFormatPanel.SetFlowBreak(messageFormatPanel.Controls[messageFormatPanel.Controls.Count - 1], true);
+ messageFormatPanel.Controls.Add(createTemplate("THEN"));
+ messageFormatPanel.Controls.Add(createTextBox("", 7));
+
+ }
+
private void logonButton_Click(object sender, EventArgs e)
{
messageFormatPanel.Controls.Clear();
@@ -435,6 +464,7 @@ private async void sendButton_Click(object sender, EventArgs e)
if (needsLogon)
{
_formatMessage = String.Format("/data2/{0}//Y/REQUEST LOGON", parent.messageOutCounter);
+ parent.pendingLogon = _recipient;
}
else
{
@@ -474,6 +504,24 @@ private async void sendButton_Click(object sender, EventArgs e)
break;
+ case "reportRadioButton":
+
+ _formatMessage = String.Format("/data2/{0}//N/", parent.messageOutCounter);
+ _recipient = messageFormatPanel.Controls[1].Text;
+ string _messageContent = String.Format("POSITION REPORT PPOS {0} AT {1}Z FL{2} TO {3} AT {4}Z NEXT {5}",
+ messageFormatPanel.Controls[4].Text,
+ messageFormatPanel.Controls[6].Text,
+ messageFormatPanel.Controls[9].Text,
+ messageFormatPanel.Controls[11].Text,
+ messageFormatPanel.Controls[13].Text,
+ messageFormatPanel.Controls[16].Text);
+ _formatMessage += _messageContent;
+
+ await parent.SendCPDLCMessage(_recipient, "CPDLC", _formatMessage);
+ parent.messageOutCounter += 1;
+ break;
+
+
default:
break;
@@ -696,5 +744,7 @@ protected override void WndProc(ref Message m)
}
base.WndProc(ref m);
}
+
+
}
}
diff --git a/EasyCPDLC/Resources/Oxygen-Bold.ttf b/EasyCPDLC/Resources/Oxygen-Bold.ttf
new file mode 100644
index 0000000..8a3d389
Binary files /dev/null and b/EasyCPDLC/Resources/Oxygen-Bold.ttf differ
diff --git a/EasyCPDLC/Resources/cog-wheel-gear-setting.png b/EasyCPDLC/Resources/cog-wheel-gear-setting.png
new file mode 100644
index 0000000..c14ac58
Binary files /dev/null and b/EasyCPDLC/Resources/cog-wheel-gear-setting.png differ
diff --git a/EasyCPDLC/Resources/honk.wav b/EasyCPDLC/Resources/honk.wav
deleted file mode 100644
index e7fab1f..0000000
Binary files a/EasyCPDLC/Resources/honk.wav and /dev/null differ
diff --git a/EasyCPDLC/Resources/notification.wav b/EasyCPDLC/Resources/notification.wav
new file mode 100644
index 0000000..d822a73
Binary files /dev/null and b/EasyCPDLC/Resources/notification.wav differ
diff --git a/EasyCPDLC/SettingsForm.Designer.cs b/EasyCPDLC/SettingsForm.Designer.cs
new file mode 100644
index 0000000..de07203
--- /dev/null
+++ b/EasyCPDLC/SettingsForm.Designer.cs
@@ -0,0 +1,138 @@
+
+namespace EasyCPDLC
+{
+ partial class SettingsForm
+ {
+ ///
+ /// 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.exitButton = new System.Windows.Forms.Button();
+ this.titleLabel = new System.Windows.Forms.Label();
+ this.settingsFormatPanel = new System.Windows.Forms.FlowLayoutPanel();
+ this.cancelButton = new System.Windows.Forms.Button();
+ this.okButton = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // exitButton
+ //
+ this.exitButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.exitButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
+ this.exitButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
+ this.exitButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.exitButton.Font = new System.Drawing.Font("Oxygen", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.exitButton.ForeColor = System.Drawing.SystemColors.ControlLight;
+ this.exitButton.Location = new System.Drawing.Point(514, -1);
+ this.exitButton.Name = "exitButton";
+ this.exitButton.Size = new System.Drawing.Size(24, 24);
+ this.exitButton.TabIndex = 10;
+ this.exitButton.Text = "X";
+ this.exitButton.UseVisualStyleBackColor = true;
+ this.exitButton.Click += new System.EventHandler(this.exitButton_Click);
+ //
+ // titleLabel
+ //
+ this.titleLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.titleLabel.AutoSize = true;
+ this.titleLabel.Font = new System.Drawing.Font("Oxygen", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.titleLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
+ this.titleLabel.Location = new System.Drawing.Point(335, -1);
+ this.titleLabel.Name = "titleLabel";
+ this.titleLabel.Size = new System.Drawing.Size(186, 41);
+ this.titleLabel.TabIndex = 9;
+ this.titleLabel.Text = "EasyCPDLC";
+ this.titleLabel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.WindowDrag);
+ //
+ // settingsFormatPanel
+ //
+ this.settingsFormatPanel.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.settingsFormatPanel.AutoScroll = true;
+ this.settingsFormatPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
+ this.settingsFormatPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.settingsFormatPanel.Location = new System.Drawing.Point(11, 43);
+ this.settingsFormatPanel.Name = "settingsFormatPanel";
+ this.settingsFormatPanel.Padding = new System.Windows.Forms.Padding(10, 0, 0, 30);
+ this.settingsFormatPanel.Size = new System.Drawing.Size(510, 136);
+ this.settingsFormatPanel.TabIndex = 13;
+ //
+ // cancelButton
+ //
+ this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.cancelButton.Font = new System.Drawing.Font("Oxygen", 12F, System.Drawing.FontStyle.Bold);
+ this.cancelButton.ForeColor = System.Drawing.SystemColors.ControlLight;
+ this.cancelButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
+ this.cancelButton.Location = new System.Drawing.Point(307, 185);
+ this.cancelButton.Name = "cancelButton";
+ this.cancelButton.Size = new System.Drawing.Size(104, 37);
+ this.cancelButton.TabIndex = 15;
+ this.cancelButton.Text = "CANCEL";
+ this.cancelButton.UseVisualStyleBackColor = true;
+ this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
+ //
+ // okButton
+ //
+ this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.okButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.okButton.Font = new System.Drawing.Font("Oxygen", 12F, System.Drawing.FontStyle.Bold);
+ this.okButton.ForeColor = System.Drawing.SystemColors.ControlLight;
+ this.okButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
+ this.okButton.Location = new System.Drawing.Point(417, 185);
+ this.okButton.Name = "okButton";
+ this.okButton.Size = new System.Drawing.Size(104, 37);
+ this.okButton.TabIndex = 14;
+ this.okButton.Text = "OK";
+ this.okButton.UseVisualStyleBackColor = true;
+ this.okButton.Click += new System.EventHandler(this.okButton_Click);
+ //
+ // SettingsForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
+ this.ClientSize = new System.Drawing.Size(537, 234);
+ this.Controls.Add(this.cancelButton);
+ this.Controls.Add(this.okButton);
+ this.Controls.Add(this.settingsFormatPanel);
+ this.Controls.Add(this.exitButton);
+ this.Controls.Add(this.titleLabel);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+ this.Name = "SettingsForm";
+ this.Text = "Settings";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private System.Windows.Forms.Button exitButton;
+ private System.Windows.Forms.Label titleLabel;
+ private System.Windows.Forms.FlowLayoutPanel settingsFormatPanel;
+ private System.Windows.Forms.Button cancelButton;
+ private System.Windows.Forms.Button okButton;
+ }
+}
\ No newline at end of file
diff --git a/EasyCPDLC/SettingsForm.cs b/EasyCPDLC/SettingsForm.cs
new file mode 100644
index 0000000..d551ae7
--- /dev/null
+++ b/EasyCPDLC/SettingsForm.cs
@@ -0,0 +1,113 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace EasyCPDLC
+{
+
+ public partial class SettingsForm : Form
+ {
+ private MainForm parent;
+ public bool[] settings;
+
+ public const int WM_NCLBUTTONDOWN = 0xA1;
+ public const int HT_CAPTION = 0x2;
+ private const int cGrip = 16;
+ private const int cCaption = 32;
+ [System.Runtime.InteropServices.DllImport("user32.dll")]
+ public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
+ [System.Runtime.InteropServices.DllImport("user32.dll")]
+ public static extern bool ReleaseCapture();
+
+ public SettingsForm(MainForm _parent, bool[] _settings)
+ {
+ parent = _parent;
+ settings = _settings;
+ InitializeComponent();
+ InitialiseSettings();
+ }
+
+ private void InitialiseSettings()
+ {
+ settingsFormatPanel.Controls.Clear();
+ UICheckBox stayOnTopBox = createCheckBox("Keep Window On Top", "0");
+ stayOnTopBox.Checked = settings[0];
+ UICheckBox audiblePingBox = createCheckBox("Play Sound on Message Receive", "1");
+ audiblePingBox.Checked = settings[1];
+
+ settingsFormatPanel.Controls.Add(stayOnTopBox);
+ settingsFormatPanel.SetFlowBreak(stayOnTopBox, true);
+ settingsFormatPanel.Controls.Add(audiblePingBox);
+ }
+
+ private void ModifySettings(object sender, EventArgs e)
+ {
+ UICheckBox box = (UICheckBox)sender;
+ settings[Convert.ToInt32(box.group)] = box.Checked;
+ Console.WriteLine(settings[Convert.ToInt32(box.group)]);
+ }
+ private UICheckBox createCheckBox(string _text, string _group)
+ {
+ UICheckBox _temp = new UICheckBox(_group);
+
+ _temp.BackColor = parent.controlBackColor;
+ _temp.ForeColor = parent.controlFrontColor;
+ _temp.Font = parent.textFont;
+ _temp.Text = _text;
+ _temp.Padding = new Padding(3, 10, 3, -30);
+ _temp.AutoSize = true;
+ _temp.Click += ModifySettings;
+ return _temp;
+ }
+
+ private void cancelButton_Click(object sender, EventArgs e)
+ {
+ this.DialogResult = DialogResult.Cancel;
+ }
+
+ private void okButton_Click(object sender, EventArgs e)
+ {
+ this.DialogResult = DialogResult.OK;
+ }
+
+ private void exitButton_Click(object sender, EventArgs e)
+ {
+ this.DialogResult = DialogResult.Cancel;
+ }
+
+ private void WindowDrag(object sender, MouseEventArgs e)
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ ReleaseCapture();
+ SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
+ }
+ }
+
+ protected override void WndProc(ref Message m)
+ {
+ if (m.Msg == 0x84)
+ { // Trap WM_NCHITTEST
+ Point pos = new Point(m.LParam.ToInt32());
+ pos = this.PointToClient(pos);
+ if (pos.Y < cCaption)
+ {
+ m.Result = (IntPtr)2; // HTCAPTION
+ return;
+ }
+ if (pos.X >= this.ClientSize.Width - cGrip && pos.Y >= this.ClientSize.Height - cGrip)
+ {
+ m.Result = (IntPtr)17; // HTBOTTOMRIGHT
+ return;
+ }
+ }
+ base.WndProc(ref m);
+ }
+ }
+}
diff --git a/EasyCPDLC/SettingsForm.resx b/EasyCPDLC/SettingsForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/EasyCPDLC/SettingsForm.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/EasyCPDLC/TelexForm.cs b/EasyCPDLC/TelexForm.cs
index 1dabeca..a7cb5f1 100644
--- a/EasyCPDLC/TelexForm.cs
+++ b/EasyCPDLC/TelexForm.cs
@@ -58,6 +58,8 @@ public TelexForm(MainForm _parent, string _recipient = null)
textFont = parent.textFont;
textFontBold = parent.textFontBold;
recipient = _recipient is null ? null : _recipient;
+
+ this.TopMost = parent.TopMost;
}
private Label CreateTemplate(string _text)