From 8743d00519d6c40d2792a75ee8ab1e7ea58b9351 Mon Sep 17 00:00:00 2001 From: ylianst Date: Fri, 28 Jan 2022 13:16:04 -0800 Subject: [PATCH 01/10] Added remote desktop split screen mode --- KVMControl.Designer.cs | 1 + KVMControl.cs | 170 ++++++++- KVMResizeControl.Designer.cs | 4 + KVMResizeControl.cs | 2 + KVMViewer.Designer.cs | 13 + KVMViewer.cs | 63 +++- KVMViewer.resx | 158 +++++--- KVMViewerExtra.Designer.cs | 65 ++++ KVMViewerExtra.cs | 116 ++++++ KVMViewerExtra.resx | 599 +++++++++++++++++++++++++++++++ MeshCentralRouter.csproj | 9 + Properties/Resources.Designer.cs | 18 + Properties/Resources.resx | 6 + Settings.cs | 6 +- 14 files changed, 1166 insertions(+), 64 deletions(-) create mode 100644 KVMViewerExtra.Designer.cs create mode 100644 KVMViewerExtra.cs create mode 100644 KVMViewerExtra.resx diff --git a/KVMControl.Designer.cs b/KVMControl.Designer.cs index 07e2537..d8aac7c 100644 --- a/KVMControl.Designer.cs +++ b/KVMControl.Designer.cs @@ -37,6 +37,7 @@ this.Margin = new System.Windows.Forms.Padding(4); this.Name = "KVMControl"; this.Size = new System.Drawing.Size(585, 364); + this.Load += new System.EventHandler(this.KVMControl_Load); this.Paint += new System.Windows.Forms.PaintEventHandler(this.KVMControl_Paint); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.KVMControl_KeyDown); this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.KVMControl_KeyPress); diff --git a/KVMControl.cs b/KVMControl.cs index af53a5a..447bc7c 100644 --- a/KVMControl.cs +++ b/KVMControl.cs @@ -28,7 +28,7 @@ namespace MeshCentralRouter public partial class KVMControl : UserControl { private bool remotepause = true; - private Bitmap desktop = null; + public Bitmap desktop = null; private Graphics desktopGraphics = null; public uint screenWidth = 0; public uint screenHeight = 0; @@ -49,13 +49,17 @@ namespace MeshCentralRouter public double DpiX = 96; public double DpiY = 96; public KVMViewer parent = null; + public KVMViewerExtra parentEx = null; private readonly KVMControlHook ControlHook; private readonly KVMControlHook.KVMCallback KeyboardCallback; private bool isHookWanted; private bool isHookPriority; private bool keyboardIsAttached; private long killNextKeyPress = 0; - + private bool controlLoaded = false; + public Rectangle[] displayInfo = null; + public Rectangle displayCrop = Rectangle.Empty; + public Point displayOrigin = Point.Empty; private enum KvmCommands { @@ -79,6 +83,7 @@ namespace MeshCentralRouter Jumbo = 27, Disconnect = 59, Alert = 65, + DisplayInfo = 82, KeyUnicode = 85, MouseCursor = 88 } @@ -101,6 +106,9 @@ namespace MeshCentralRouter [Description("Fires when it receives the display list.")] public event EventHandler DisplaysReceived; + public delegate void ScreenAreaUpdatedHandler(Bitmap desktop, Rectangle r); + public event ScreenAreaUpdatedHandler ScreenAreaUpdated; + public enum ConnectState { Disconnected, @@ -118,8 +126,14 @@ namespace MeshCentralRouter public double ScaleFactor { get { return scalefactor; } set { scalefactor = value; } } public void SetCompressionParams(int level, int scaling, int framerate) { compressionlevel = level; scalinglevel = scaling; frameRate = framerate; SendCompressionLevel(); } - public int DesktopWidth { get { return (int)screenWidth; } } - public int DesktopHeight { get { return (int)screenHeight; } } + public int DesktopWidth + { + get { if (displayCrop == Rectangle.Empty) { return (int)screenWidth; } else { return displayCrop.Width; } } + } + public int DesktopHeight + { + get { if (displayCrop == Rectangle.Empty) { return (int)screenHeight; } else { return displayCrop.Height; } } + } // Debug public int bytesent = 0; @@ -217,8 +231,6 @@ namespace MeshCentralRouter ushort tile_x = (ushort)((buffer[off + 4] << 8) + buffer[off + 5]); ushort tile_y = (ushort)((buffer[off + 6] << 8) + buffer[off + 7]); try { newtile = Image.FromStream(new System.IO.MemoryStream(buffer, off + 8, blen - 8)); } catch (Exception) { return blen; } - Rectangle r = new Rectangle((int)tile_x, (int)tile_y, newtile.Width, newtile.Height); - Rectangle r3 = new Rectangle((int)((double)tile_x / (double)scalefactor) - 2, (int)((double)tile_y / (double)scalefactor) - 2, (int)((double)newtile.Width / (double)scalefactor) + 4, (int)((double)newtile.Height / (double)scalefactor) + 4); tilecount++; // Winform mode @@ -233,7 +245,40 @@ namespace MeshCentralRouter desktopGraphics.DrawString(string.Format("{0} / {1}kb", tilecount, blen / 2014), DebugFont, RedPen.Brush, new Point((int)tile_x, (int)tile_y)); } } - if (scalefactor == 1) Invalidate(r, false); else Invalidate(r3, false); + + // Update extra displays if needed + Rectangle r = new Rectangle((int)tile_x, (int)tile_y, newtile.Width, newtile.Height); + Rectangle rx = new Rectangle(r.X + displayOrigin.X, r.Y + displayOrigin.Y, r.Width, r.Height); + if (ScreenAreaUpdated != null) ScreenAreaUpdated(desktop, rx); + + if (displayCrop == Rectangle.Empty) + { + if (scalefactor == 1) + { + Invalidate(r, false); + } + else + { + Rectangle r3 = new Rectangle((int)((double)tile_x / (double)scalefactor) - 2, (int)((double)tile_y / (double)scalefactor) - 2, (int)((double)newtile.Width / (double)scalefactor) + 4, (int)((double)newtile.Height / (double)scalefactor) + 4); + Invalidate(r3, false); + } + } + else if (displayCrop.IntersectsWith(rx) == true) + { + Rectangle r2 = new Rectangle(rx.X, rx.Y, rx.Width, rx.Height); + r2.Intersect(displayCrop); + + if (scalefactor == 1) + { + Rectangle r3 = new Rectangle(r2.X - displayCrop.X, r2.Y - displayCrop.Y, r2.Width, r2.Height); + Invalidate(r, false); + } + else + { + Rectangle r3 = new Rectangle((int)((double)(r2.X - displayCrop.X) / (double)scalefactor) - 2, (int)((double)(r2.Y - displayCrop.Y) / (double)scalefactor) - 2, (int)((double)r2.Width / (double)scalefactor) + 4, (int)((double)r2.Height / (double)scalefactor) + 4); + Invalidate(r3, false); + } + } } return blen + jumboHeaderSize; @@ -289,6 +334,31 @@ namespace MeshCentralRouter ChangeMouseCursor(buffer[off + 4]); break; } + case KvmCommands.DisplayInfo: + { + if ((blen < 4) || (((blen - 4) % 10) != 0)) break; + int screenCount = ((blen - 4) / 10); + int ptr = off + 4; + Rectangle[] xDisplayInfo = new Rectangle[screenCount]; + + for (var i = 0; i < screenCount; i++) + { + int id = ((buffer[ptr + 0] << 8) + buffer[ptr + 1]); + int x = ((buffer[ptr + 2] << 8) + buffer[ptr + 3]); + int y = ((buffer[ptr + 4] << 8) + buffer[ptr + 5]); + int w = ((buffer[ptr + 6] << 8) + buffer[ptr + 7]); + int h = ((buffer[ptr + 8] << 8) + buffer[ptr + 9]); + if (x > 32766) { x -= 65536; } + if (y > 32766) { y -= 65536; } + Rectangle r = new Rectangle(x, y, w, h); + xDisplayInfo[id - 1] = r; + ptr += 10; + } + + // Set display information + displayInfo = xDisplayInfo; + break; + } default: { // MessageBox.Show("Should never happen!"); @@ -333,6 +403,11 @@ namespace MeshCentralRouter Invalidate(region); } + public void Repaint(Rectangle rect) + { + Invalidate(rect); + } + protected override void OnPaintBackground(PaintEventArgs e) { // Do not paint background. @@ -355,14 +430,28 @@ namespace MeshCentralRouter { lock (desktop) { - if (scalefactor == 1) + if (displayCrop == Rectangle.Empty) // No cropping { - g.DrawImage(desktop, e.ClipRectangle, e.ClipRectangle, GraphicsUnit.Pixel); + if (scalefactor == 1) + { + g.DrawImage(desktop, e.ClipRectangle, e.ClipRectangle, GraphicsUnit.Pixel); + } + else + { + g.DrawImage((Image)desktop, e.ClipRectangle, (int)((double)e.ClipRectangle.Left * (double)scalefactor), (int)((double)e.ClipRectangle.Top * (double)scalefactor), (int)((double)e.ClipRectangle.Width * (double)scalefactor), (int)((double)e.ClipRectangle.Height * (double)scalefactor), GraphicsUnit.Pixel); + } } else { - //g.DrawImage((Image)desktop, new Rectangle(0, 0, Width, Height), 0, 0, screenWidth, screenHeight, GraphicsUnit.Pixel); - g.DrawImage((Image)desktop, e.ClipRectangle, (int)((double)e.ClipRectangle.Left * (double)scalefactor), (int)((double)e.ClipRectangle.Top * (double)scalefactor), (int)((double)e.ClipRectangle.Width * (double)scalefactor), (int)((double)e.ClipRectangle.Height * (double)scalefactor), GraphicsUnit.Pixel); + if (scalefactor == 1) // Cropping in effect, this is when we show different displays in different windows + { + g.DrawImage(desktop, e.ClipRectangle, new Rectangle(e.ClipRectangle.X - displayOrigin.X + displayCrop.X, e.ClipRectangle.Y - displayOrigin.Y + displayCrop.Y, e.ClipRectangle.Width, e.ClipRectangle.Height), GraphicsUnit.Pixel); + } + else + { + Rectangle srcRect = new Rectangle((int)((double)(e.ClipRectangle.Left) * (double)scalefactor) - displayOrigin.X + displayCrop.X, (int)((double)(e.ClipRectangle.Top) * (double)scalefactor) - displayOrigin.Y + displayCrop.Y, (int)((double)e.ClipRectangle.Width * (double)scalefactor), (int)((double)e.ClipRectangle.Height * (double)scalefactor)); + g.DrawImage((Image)desktop, e.ClipRectangle, srcRect, GraphicsUnit.Pixel); + } } } } @@ -479,8 +568,16 @@ namespace MeshCentralRouter } } - LastX = (short)((double)e.X * (double)scalefactor); - LastY = (short)((double)e.Y * (double)scalefactor); + if (displayCrop == Rectangle.Empty) + { + LastX = (short)((double)e.X * (double)scalefactor); + LastY = (short)((double)e.Y * (double)scalefactor); + } + else + { + LastX = (short)((int)((double)e.X * (double)scalefactor) - displayOrigin.X + displayCrop.X); + LastY = (short)((int)((double)e.Y * (double)scalefactor) - displayOrigin.Y + displayCrop.Y); + } BinaryWriter bw = GetBinaryWriter(); bw.Write(IPAddress.HostToNetworkOrder((short)KvmCommands.Mouse)); @@ -563,9 +660,16 @@ namespace MeshCentralRouter //if (state == ConnectState.Disconnected) return; try { - parent.bytesOut += buffer.Length; - parent.bytesOutCompressed += parent.wc.SendBinary(buffer, 0, buffer.Length); - bytesent += buffer.Length; + if (parent != null) + { + parent.bytesOut += buffer.Length; + parent.bytesOutCompressed += parent.wc.SendBinary(buffer, 0, buffer.Length); + bytesent += buffer.Length; + } + else if (parentEx != null) + { + parentEx.mainKvmControl.Send(buffer); + } } catch (Exception) { } } @@ -575,9 +679,16 @@ namespace MeshCentralRouter //if (state == ConnectState.Disconnected) return; try { - parent.bytesOut += str.Length; - parent.bytesOutCompressed += parent.wc.SendString(str); - bytesent += str.Length; + if (parent != null) + { + parent.bytesOut += str.Length; + parent.bytesOutCompressed += parent.wc.SendString(str); + bytesent += str.Length; + } + else if (parentEx != null) + { + parentEx.mainKvmControl.Send(str); + } } catch (Exception) { } } @@ -595,6 +706,10 @@ namespace MeshCentralRouter } catch (Exception) { } } + else if (parentEx != null) + { + parentEx.mainKvmControl.Send(bw); + } RecycleBinaryWriter(bw); } @@ -738,5 +853,22 @@ namespace MeshCentralRouter return false; } + + public void cropDisplay(Point o, Rectangle r) + { + if (IsDisposed || Disposing) return; + displayCrop = r; + displayOrigin = o; + if (controlLoaded) + { + Invoke(new SetSizeHandler(SetSize)); + Invalidate(); + } + } + + private void KVMControl_Load(object sender, EventArgs e) + { + controlLoaded = true; + } } } diff --git a/KVMResizeControl.Designer.cs b/KVMResizeControl.Designer.cs index b60fc9b..6bcc1a3 100644 --- a/KVMResizeControl.Designer.cs +++ b/KVMResizeControl.Designer.cs @@ -89,14 +89,18 @@ // // kvmControl // + this.kvmControl.AutoSendClipboard = false; this.kvmControl.BackColor = System.Drawing.Color.LightCoral; this.kvmControl.CompressionLevel = 60; + this.kvmControl.FrameRate = 100; this.kvmControl.Location = new System.Drawing.Point(33, 31); this.kvmControl.Margin = new System.Windows.Forms.Padding(4); this.kvmControl.Name = "kvmControl"; + this.kvmControl.RemoteKeyboardMap = false; this.kvmControl.ScaleFactor = 1D; this.kvmControl.ScalingLevel = 1024; this.kvmControl.Size = new System.Drawing.Size(450, 314); + this.kvmControl.SwamMouseButtons = false; this.kvmControl.TabIndex = 14; this.kvmControl.DesktopSizeChanged += new System.EventHandler(this.kvmControl_DesktopSizeChanged); this.kvmControl.Resize += new System.EventHandler(this.kvmControl_Resize); diff --git a/KVMResizeControl.cs b/KVMResizeControl.cs index ba7da4b..c1369bb 100644 --- a/KVMResizeControl.cs +++ b/KVMResizeControl.cs @@ -47,6 +47,7 @@ namespace MeshCentralRouter CenterKvmControl(false); } + /* void KVM_StateChanged(object sender, EventArgs e) { if (InvokeRequired) { Invoke(new EventHandler(KVM_StateChanged), sender, e); return; } @@ -55,6 +56,7 @@ namespace MeshCentralRouter //kvmControl.Visible = (kvmControl.State == KVMControl.ConnectState.Connected); if (StateChanged != null) StateChanged(this, e); } + */ void KVM_DisplaysReceived(object sender, EventArgs e) { diff --git a/KVMViewer.Designer.cs b/KVMViewer.Designer.cs index 8e24a40..c57a6e4 100644 --- a/KVMViewer.Designer.cs +++ b/KVMViewer.Designer.cs @@ -51,6 +51,7 @@ namespace MeshCentralRouter this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); this.updateTimer = new System.Windows.Forms.Timer(this.components); this.topPanel = new System.Windows.Forms.Panel(); + this.splitButton = new System.Windows.Forms.Button(); this.clipOutboundButton = new System.Windows.Forms.Button(); this.clipInboundButton = new System.Windows.Forms.Button(); this.statsButton = new System.Windows.Forms.Button(); @@ -75,6 +76,7 @@ namespace MeshCentralRouter // mainStatusStrip // this.mainStatusStrip.BackColor = System.Drawing.SystemColors.Menu; + this.mainStatusStrip.ImageScalingSize = new System.Drawing.Size(20, 20); this.mainStatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mainToolStripStatusLabel, this.toolStripStatusLabel1}); @@ -101,6 +103,7 @@ namespace MeshCentralRouter // topPanel // this.topPanel.BackColor = System.Drawing.SystemColors.Control; + this.topPanel.Controls.Add(this.splitButton); this.topPanel.Controls.Add(this.clipOutboundButton); this.topPanel.Controls.Add(this.clipInboundButton); this.topPanel.Controls.Add(this.statsButton); @@ -112,6 +115,14 @@ namespace MeshCentralRouter resources.ApplyResources(this.topPanel, "topPanel"); this.topPanel.Name = "topPanel"; // + // splitButton + // + resources.ApplyResources(this.splitButton, "splitButton"); + this.splitButton.Name = "splitButton"; + this.splitButton.TabStop = false; + this.splitButton.UseVisualStyleBackColor = true; + this.splitButton.Click += new System.EventHandler(this.splitButton_Click); + // // clipOutboundButton // resources.ApplyResources(this.clipOutboundButton, "clipOutboundButton"); @@ -183,6 +194,7 @@ namespace MeshCentralRouter // // consentContextMenuStrip // + this.consentContextMenuStrip.ImageScalingSize = new System.Drawing.Size(20, 20); this.consentContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.askConsentBarToolStripMenuItem, this.askConsentToolStripMenuItem, @@ -277,6 +289,7 @@ namespace MeshCentralRouter private ToolStripMenuItem askConsentBarToolStripMenuItem; private ToolStripMenuItem askConsentToolStripMenuItem; private ToolStripMenuItem privacyBarToolStripMenuItem; + private Button splitButton; } } diff --git a/KVMViewer.cs b/KVMViewer.cs index e681e61..6bc7eb9 100644 --- a/KVMViewer.cs +++ b/KVMViewer.cs @@ -41,6 +41,8 @@ namespace MeshCentralRouter private string lastClipboardSent = null; private DateTime lastClipboardTime = DateTime.MinValue; public string lang = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName; + private bool splitMode = false; + private KVMViewerExtra[] extraDisplays = null; // Stats public long bytesIn = 0; @@ -69,6 +71,7 @@ namespace MeshCentralRouter kvmControl = resizeKvmControl.KVM; kvmControl.parent = this; kvmControl.DesktopSizeChanged += KvmControl_DesktopSizeChanged; + kvmControl.ScreenAreaUpdated += KvmControl_ScreenAreaUpdated; resizeKvmControl.ZoomToFit = true; UpdateStatus(); this.MouseWheel += MainForm_MouseWheel; @@ -84,6 +87,12 @@ namespace MeshCentralRouter kvmControl.AutoSendClipboard = Settings.GetRegValue("kvmAutoClipboard", "0").Equals("1"); } + private void KvmControl_ScreenAreaUpdated(Bitmap desktop, Rectangle r) + { + if (extraDisplays == null) return; + foreach (KVMViewerExtra x in extraDisplays) { x.UpdateScreenArea(desktop, r); } + } + private void Parent_ClipboardChanged() { if (state != 3) return; @@ -301,6 +310,8 @@ namespace MeshCentralRouter if (wc != null) { // Disconnect + if (splitMode) { splitButton_Click(this, null); } + splitButton.Visible = false; state = 0; wc.Dispose(); wc = null; @@ -392,6 +403,9 @@ namespace MeshCentralRouter // Save window location Settings.SetRegValue("kvmlocation", Location.X + "," + Location.Y + "," + Size.Width + "," + Size.Height); + + // Close any extra windows + extraScreenClosed(); } private void toolStripMenuItem2_DropDownOpening(object sender, EventArgs e) @@ -484,11 +498,15 @@ namespace MeshCentralRouter displaySelectComboBox.Visible = false; displaySelectComboBox.Items.Clear(); } + + // If there are many displays and all displays is selected, enable split/join button. + splitButton.Visible = ((kvmControl.currentDisp == 65535) && (kvmControl.displays.Count > 1)); } private void displaySelectComboBox_SelectionChangeCommitted(object sender, EventArgs e) { - if (kvmControl != null) kvmControl.SendDisplay(((displayTag)displaySelectComboBox.SelectedItem).num); + if (splitMode) { splitButton_Click(this, null); } + if (kvmControl != null) { kvmControl.SendDisplay(((displayTag)displaySelectComboBox.SelectedItem).num); } } private void resizeKvmControl_TouchEnabledChanged(object sender, EventArgs e) @@ -630,5 +648,48 @@ namespace MeshCentralRouter { if (wc != null) { e.Cancel = true; } } + + public void extraScreenClosed() + { + if (splitMode) { splitButton_Click(this, null); } + } + + private void splitButton_Click(object sender, EventArgs e) + { + if (splitMode) + { + kvmControl.cropDisplay(Point.Empty, Rectangle.Empty); + splitButton.Text = Translate.T(Properties.Resources.Split, lang); + splitMode = false; + if (extraDisplays != null) + { + // Close all extra displays + for (int i = 0; i < extraDisplays.Length; i++) + { + KVMViewerExtra extraDisplay = extraDisplays[i]; + extraDisplay.Close(); + } + extraDisplays = null; + } + } + else if ((kvmControl.displayInfo != null) && (kvmControl.displayInfo.Length > 1)) + { + int minx = 0; + int miny = 0; + foreach (Rectangle r in kvmControl.displayInfo) { if (r.X < minx) { minx = r.X; } if (r.Y < miny) { miny = r.Y; } } + kvmControl.cropDisplay(new Point(minx, miny), kvmControl.displayInfo[0]); + splitButton.Text = Translate.T(Properties.Resources.Join, lang); + splitMode = true; + + // Open extra displays + extraDisplays = new KVMViewerExtra[kvmControl.displayInfo.Length - 1]; + for (int i = 1; i < kvmControl.displayInfo.Length; i++) + { + KVMViewerExtra extraDisplay = new KVMViewerExtra(parent, this, node, kvmControl, i); + extraDisplays[i - 1] = extraDisplay; + extraDisplay.Show(parent); + } + } + } } } diff --git a/KVMViewer.resx b/KVMViewer.resx index 482f5f7..270e7a6 100644 --- a/KVMViewer.resx +++ b/KVMViewer.resx @@ -122,7 +122,7 @@ - 1029, 17 + 1372, 20 --- @@ -131,7 +131,7 @@ MiddleLeft - 13, 17 + 16, 20 v @@ -141,10 +141,14 @@ False - 0, 727 + 0, 897 + + + + 1, 0, 19, 0 - 1044, 22 + 1392, 25 9 @@ -167,7 +171,42 @@ 154, 17 - + + Top, Right + + + NoControl + + + 1048, 4 + + + 4, 4, 4, 4 + + + 119, 32 + + + 8 + + + Split + + + False + + + splitButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + topPanel + + + 0 + Top, Right @@ -178,10 +217,13 @@ NoControl - 881, 3 + 1175, 4 + + + 4, 4, 4, 4 - 30, 26 + 40, 32 3 @@ -196,7 +238,7 @@ topPanel - 0 + 1 Top, Right @@ -208,10 +250,13 @@ NoControl - 917, 3 + 1223, 4 + + + 4, 4, 4, 4 - 30, 26 + 40, 32 4 @@ -232,7 +277,7 @@ topPanel - 1 + 2 Top, Right @@ -241,10 +286,13 @@ NoControl - 989, 3 + 1319, 4 + + + 4, 4, 4, 4 - 52, 26 + 69, 32 7 @@ -262,16 +310,19 @@ topPanel - 2 + 3 - 13 + 16 - 288, 5 + 384, 6 + + + 4, 4, 4, 4 - 128, 21 + 169, 24 5 @@ -289,16 +340,19 @@ topPanel - 3 + 4 NoControl - 193, 3 + 257, 4 + + + 4, 4, 4, 4 - 89, 26 + 119, 32 2 @@ -316,7 +370,7 @@ topPanel - 4 + 5 Top, Right @@ -325,10 +379,13 @@ NoControl - 953, 3 + 1271, 4 + + + 4, 4, 4, 4 - 30, 26 + 40, 32 6 @@ -343,7 +400,7 @@ topPanel - 5 + 6 False @@ -352,10 +409,13 @@ NoControl - 98, 3 + 131, 4 + + + 4, 4, 4, 4 - 89, 26 + 119, 32 1 @@ -373,31 +433,31 @@ topPanel - 6 + 7 518, 17 - 171, 22 + 198, 24 Ask Consent + Bar - 171, 22 + 198, 24 Ask Consent - 171, 22 + 198, 24 Privacy Bar - 172, 70 + 199, 76 consentContextMenuStrip @@ -409,10 +469,13 @@ NoControl - 3, 3 + 4, 4 + + + 4, 4, 4, 4 - 89, 26 + 119, 32 0 @@ -430,7 +493,7 @@ topPanel - 7 + 8 Top @@ -438,8 +501,11 @@ 0, 0 + + 4, 4, 4, 4 + - 1044, 32 + 1392, 39 11 @@ -469,10 +535,13 @@ NoControl - 12, 59 + 16, 73 + + + 4, 0, 4, 0 - 70, 25 + 86, 31 12 @@ -502,10 +571,13 @@ Fill - 0, 32 + 0, 39 + + + 4, 4, 4, 4 - 1044, 695 + 1392, 858 10 @@ -514,7 +586,7 @@ resizeKvmControl - MeshCentralRouter.KVMResizeControl, MeshCentralRouter, Version=1.7.7835.29677, Culture=neutral, PublicKeyToken=null + MeshCentralRouter.KVMResizeControl, MeshCentralRouter, Version=1.8.8063.22517, Culture=neutral, PublicKeyToken=null $this @@ -526,10 +598,10 @@ True - 6, 13 + 8, 16 - 1044, 749 + 1392, 922 @@ -957,7 +1029,7 @@ - 2, 2, 2, 2 + 3, 2, 3, 2 CenterScreen diff --git a/KVMViewerExtra.Designer.cs b/KVMViewerExtra.Designer.cs new file mode 100644 index 0000000..ca0b3c7 --- /dev/null +++ b/KVMViewerExtra.Designer.cs @@ -0,0 +1,65 @@ +using System.Windows.Forms; + +namespace MeshCentralRouter +{ + partial class KVMViewerExtra + { + /// + /// 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(KVMViewerExtra)); + this.resizeKvmControl = new MeshCentralRouter.KVMResizeControl(); + this.SuspendLayout(); + // + // resizeKvmControl + // + this.resizeKvmControl.BackColor = System.Drawing.Color.Gray; + resources.ApplyResources(this.resizeKvmControl, "resizeKvmControl"); + this.resizeKvmControl.Name = "resizeKvmControl"; + this.resizeKvmControl.ZoomToFit = false; + this.resizeKvmControl.Enter += new System.EventHandler(this.resizeKvmControl_Enter); + this.resizeKvmControl.Leave += new System.EventHandler(this.resizeKvmControl_Leave); + // + // KVMViewerExtra + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.Gray; + this.Controls.Add(this.resizeKvmControl); + this.Name = "KVMViewerExtra"; + this.Activated += new System.EventHandler(this.KVMViewer_Activated); + this.Deactivate += new System.EventHandler(this.KVMViewer_Deactivate); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.KVMViewerExtra_FormClosed); + this.Load += new System.EventHandler(this.MainForm_Load); + this.ResumeLayout(false); + + } + + #endregion + private KVMResizeControl resizeKvmControl; + } +} + diff --git a/KVMViewerExtra.cs b/KVMViewerExtra.cs new file mode 100644 index 0000000..faea83a --- /dev/null +++ b/KVMViewerExtra.cs @@ -0,0 +1,116 @@ +/* +Copyright 2009-2022 Intel Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +using System; +using System.Drawing; +using System.Windows.Forms; +using System.Threading; + +namespace MeshCentralRouter +{ + public partial class KVMViewerExtra : Form + { + private MainForm parent = null; + private KVMViewer mainViewer = null; + private KVMControl kvmControl = null; + public KVMControl mainKvmControl = null; + private int displayId; + public string lang = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName; + + public KVMViewerExtra(MainForm parent, KVMViewer mainViewer, NodeClass node, KVMControl mainKvmControl, int displayId) + { + this.parent = parent; + this.mainViewer = mainViewer; + this.mainKvmControl = mainKvmControl; + this.displayId = displayId; + InitializeComponent(); + Translate.TranslateControl(this); + this.Text += " - " + node.name + " (" + displayId + ")"; + kvmControl = resizeKvmControl.KVM; + kvmControl.desktop = mainKvmControl.desktop; + kvmControl.parentEx = this; + //kvmControl.Visible = true; + kvmControl.DesktopSizeChanged += KvmControl_DesktopSizeChanged; + kvmControl.cropDisplay(mainKvmControl.displayOrigin, mainKvmControl.displayInfo[displayId]); + resizeKvmControl.ZoomToFit = true; + this.MouseWheel += MainForm_MouseWheel; + } + + public void UpdateScreenArea(Bitmap desktop, Rectangle r) + { + if (kvmControl.displayCrop.IntersectsWith(r) == false) return; + Rectangle r2 = new Rectangle(r.X, r.Y, r.Width, r.Height); + r2.Intersect(kvmControl.displayCrop); + //kvmControl.Repaint(new Rectangle(r2.X - kvmControl.displayCrop.X, r2.Y - kvmControl.displayCrop.Y, r2.Width, r2.Height)); + kvmControl.Repaint(null); + } + + private void KvmControl_DesktopSizeChanged(object sender, EventArgs e) + { + //kvmControl.Visible = true; + } + + void MainForm_MouseWheel(object sender, MouseEventArgs e) + { + if (e.Delta == 0) return; + Control c = this.GetChildAtPoint(e.Location); + if (c != null && c == resizeKvmControl) resizeKvmControl.MouseWheelEx(sender, e); + } + + private void MainForm_Load(object sender, EventArgs e) + { + this.Size = new Size(820, 480); + resizeKvmControl.CenterKvmControl(false); + kvmControl.Repaint(null); + } + + public void OnScreenChanged() + { + resizeKvmControl.CenterKvmControl(true); + } + + private void resizeKvmControl_Enter(object sender, EventArgs e) + { + kvmControl.AttachKeyboard(); + } + + private void resizeKvmControl_Leave(object sender, EventArgs e) + { + kvmControl.DetacheKeyboard(); + } + + private void KVMViewer_Deactivate(object sender, EventArgs e) + { + kvmControl.DetacheKeyboard(); + } + + private void KVMViewer_Activated(object sender, EventArgs e) + { + kvmControl.AttachKeyboard(); + } + + bool isPointVisibleOnAScreen(Point p) + { + foreach (Screen s in Screen.AllScreens) { if ((p.X < s.Bounds.Right) && (p.X > s.Bounds.Left) && (p.Y > s.Bounds.Top) && (p.Y < s.Bounds.Bottom)) return true; } + return false; + } + + private void KVMViewerExtra_FormClosed(object sender, FormClosedEventArgs e) + { + mainViewer.extraScreenClosed(); + } + } +} diff --git a/KVMViewerExtra.resx b/KVMViewerExtra.resx new file mode 100644 index 0000000..d47f4c9 --- /dev/null +++ b/KVMViewerExtra.resx @@ -0,0 +1,599 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + Fill + + + + 0, 0 + + + 4, 4, 4, 4 + + + 826, 522 + + + + 10 + + + resizeKvmControl + + + MeshCentralRouter.KVMResizeControl, MeshCentralRouter, Version=1.8.8062.29471, Culture=neutral, PublicKeyToken=null + + + $this + + + 0 + + + True + + + 8, 16 + + + 826, 522 + + + + AAABAAkAEBAQAAEABAAoAQAAlgAAABAQAAABAAgAaAUAAL4BAAAgIBAAAQAEAOgCAAAmBwAAICAAAAEA + CACoCAAADgoAADAwEAABAAQAaAYAALYSAAAwMAAAAQAIAKgOAAAeGQAAEBAAAAEAIABoBAAAxicAACAg + AAABACAAqBAAAC4sAAAwMAAAAQAgAKglAADWPAAAKAAAABAAAAAgAAAAAQAEAAAAAACAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A + AAD/AP8A//8AAP///wAACIiHh4eAAAAPiIh4eAAAAAAIh3eAAACIiIiIiIh4eI+IiIiIiIiIiEREREZE + Z4iIRGRMfIyMiIhlxMTIeMeIiFZEbHjIjoiIbExMiIiHiIhWxsyIiIiIiExMx4iIiIiITGzIj4+IiIhM + TM6I6OiIiHiIiIeIiIgI+IiIiIiIiOAHAADgDwAA+B8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAoAAAAEAAAACAAAAABAAgAAAAAAAABAAAAAAAAAAAAAAAB + AAAAAQAAAAAAAIAAAACGCwkAlAAAAJQNAgCfEQAAnBsQAJgdEQCiDgAAqQ0AAKgSAACqFQAApxkNAKUc + DwCyEgAAsRUAALQXAAC/FgIAuBgAAL0YAACaJhwArCcVAKMnHQC7Mh8AmDAoAJ42LACqMCMApTctAKU+ + MwDAGwAAwRwAAMUdAADKGgAAyh4FANIbAADdGQAA4RoAAOcaAADRIQAA1SMAAPEnCQDkMxMAvkwqALpI + OADMSjYA81A1AKVIQACtSkEAr1ZMAM5dTADUXUgA1GZKANhgSwDdYUwA3WpXAON5ZgDgfWsA6HxoAPp9 + aADmgWgA7IBrAPiKawDqi3oA8JtyAPahdwD6qH8AiYuLAIyOjgCXmpoAmp2dAJ6fnwCeoaEAoKGhAKOj + pACipKQApKamAKaoqQCoqqoAqaytAKyurwCvsbEAsbS1ALO3uAC1uLkAtru8ALm+vgDvk4IA7ZuNAPOX + hQDzn4oA9ZyLAPuuiQD3qpsA+q6eAPu0kQD0saYA+7KjAPi1oAD+sqQA+7+iAP7DswD6xrQA/8a2AP7G + ugD/yboA+s2+ALzBwQC+xMQAvsvNAL/MzQDFyMkAwczNAMnMzADDztAAxM7QAMbQ0QDJ0dIAytLUAMzT + 1QDN1NUA1NbXANjY2ADc3NwA/9LGAP/UxgD/1cgA/9rLAP/i2QD/5twA/+nfAN7h4QDo6OgA/+rgAP/r + 5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////AAAAAFVVUk1GRkZGRkYAAAAAAACDeXduU0tGTUYAAAAAAAAAAAB5T0RDQ24AAAAAAIJr + a1VVU1JPT09NTEtLRm53d3J0cnNuc3JucW1tbW1Ld08BAQIBAQMVFRUVFSttS3dNBxQHBAUKFzEyNDUq + bUt3TRgYBwoKDyw4Nzk8NG1Ld0wuHAcPDxE2V1ZYWjtuTXdLMBsIDxIhPl9cXWJZc013Sy8WDxIiKWJn + ZGRoX21Pd0saCR0nJC17fXt+fmVtT3dGDRAdJyU6hX9/hIRoc093SwwRISMoPWNeW0FAP3NSd0ZGRktL + S01PT09SUlNzUgB3d3d3d3d3d3d3c3dzcnjgBwAA4A8AAPgfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAKAAAACAAAABAAAAAAQAEAAAAAAAAAgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A + AAD/AP8A//8AAP///wAAAAAAAAAAj4AAAAAAAAAAAAAAAAAIj4iIiAAAAAAAAAAAAAAIj4+Pj4iIAAAA + AAAAAAAAiIj4+I+IiIcAAAAAAAAACIiIj4iIiIh4cAAAAAAAAAiIiPiPiIiHeAAAAAAAAAAIiIiIiIiH + d4cAAAAAAAAAAAiIiId3d3eIiIAAAAAAAAAAh3d3d3eIiIiAAAAAAAAAAACHd3iIiIiIgAAAAAAAAIeH + iIiIh8fEeHAAAAAId4iIiId3xExETH+AAAAAeIiId3RExExsbGx4gAAAD3d3RERERExnx8fHz3AAAACE + RERETExEx8fIx8+IAAAAhERkTERGxnyMjI54iAAAAIR8VkRGxEyMjnjIyIgAAACHRkxExEzGh3fIjIiI + AAAAh0d8RkxsTIeIh4joiAAAAIfHx0xExMiHd46HiIgAAACIR3xExsbHiI6IiHiHAAAAiEjERMTMyI6I + iIiIiAAAAAhHxMbGzGiIiIiIiIiAAAAIbEZMzGzPiIiIiIiIgAAACFZMTGzMj4+Pj4+IiIAAAAhsTGxM + bIj4+Pj/+PiAAAAIVETEzMz/+P+Pj4iIgAAACHTGzGzOiIiIiIiIj3AAAAiETEzGx4iIiIiI+PgAAAAI + hHd3iIiIj4//AAAAAAAACIiIj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8f///4A///4AD//8A + AP/+AAB//gAA//4AAP//gAAf/8AAH//wAB//AAAf4AAAH8AAAB+AAAAfwAAAD8AAAA/AAAAPwAAAD8AA + AA/AAAAPwAAAD8AAAA/gAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAP4AAD/+AH////////KAAAACAA + AABAAAAAAQAIAAAAAAAABAAAAAAAAAAAAAAAAQAAAAEAAAAAAAB+AQAAZmdmAGlpagB2dnYAfX1+AIIA + AACMAgAAhQsCAIwMAQCSAAAAmAcAAJMLAQCbDgAAkwwIAIsUCgCUEgUAnRAAAJIYDACLHBQAkB4WAJoe + EgCmAAAAqgYAAKELAAC5CAAApBIAAKsUAACqGAYArBwJALIVAAC5EwAAsxgBALsZAACNJBwAkyQcAKYg + DwC2IA0AoCATAKwjEQCgJxoAsy0bALcxHgCSJiAAliskAJYvKACfMCUAmjIqAI85NACZNjAAmz01AJc+ + OAC0MiEAvDUhAL0/LQDFEwAAwhsAAMsdAADQHAAA2BwAAO8UAADkGwAA6x0AANMgAADbIgAA2iQMAMAs + FQDlIQAA5S4LAPIqAwDhLhgA9j8dAMs8JQDOPygAmUQ8AKhANgCgQTkAr0U6AMNCLwDDRTIAyUYyAMxI + MwDBTD8AzVI/ANZROQDaVj8A8UQiAP5UMgCZU00Al1RRAKRKRACuVUwAsVJHALBUSgCiWlUArFhRALFc + VQCzZF0AmmtqALFvZgC5a2QAr3FtALdwawC+dWsAoHVyALZ4cQDHU0IAzF1MANFWQQDVWUQA2FpFANVe + SAD1X0IAxGlaANVlUgDcZlIA3WhUANhuXQDiY0kA4mZQAOJqVADpcFoAxnRoAN10YgDjd2QA5nllAOp8 + ZgDyfGYA6IBtAPqFbgDjhHQA6YZ0AOyIdgDuingA8Y16APqNeQCDhIQAi4yOAIuOkgCOlZoAlZWVAJSV + mACWm5wAnZ2dAKGFhQCzhIEAp5KSAKCfnwCqnZ4AspOTAL2VkwC5nJsAuaGcAJeepACVoaYAnKCmAJit + qgCfrrEAoqKiAKukpwCmpqgApqmrAKurqwCyp6kAsKqsAKyssAClsLMArbKzAKS6tgCttbkAs7O0ALW5 + vAC6ursA0ZWSAO2WhgDrmIoA8piHAPWbigD7nowAy6KcAOKqnADtrJ0A8qOVAPikkwDwqZ0A/KubAPG1 + ngD/sJ0A9bieAMCtrADbtKoAwre0AMq1sQDFuLYAwbu9ANG1sADbuLMA4K6jAOu8pwDgtKgA57+tAPWw + ogD7tKUA+b+mAPS3qwD+vK0A/r+xANXCvgD1wKoA+8euAOjGuAD+xLIA/sm1AP7EuQD9y7sAvb/DAMG/ + wQC3wcQAvMLDALnGyAC+y8wAw8PDAMTFyADDyswAy8vLANXKxgDSzcsA2M/LAMLP0ADMz9AAx9XWAMzT + 1ADK1tgA09PTANLW2ADU2twA29zcAOzPwgD/zsEA/9LDAP/VyQD/2coA5NvXAOvc1gDs3tgA/93SAP/h + 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 + AADwAAAAAB8AAPAAAAAAHwAA8AAAAAAfAADwAAAAAB8AAPAAAAAAHwAA8AAAAAAfAADwAAAAAB8AAPgA + AAAAHwAA+AAAAAAPAAD4AAAAAB8AAPgAAAAAPwAA+AAAAD//AAD4AAA///8AAPgAP////wAA/D////// + AAD///////8AACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAAX19fAGVl + ZQBrbGsAdHR1AHp6egCDAQAAhAoBAIsMAACUBgAAmQYAAJMNAACaDQAAhxEIAIoUCwCOGAwAlBIEAJwQ + AQCTFgkAnhsNAIwaEgCnDAAAtAYAAKMSAACqFAAAphgGAKMbCwCqHgwAshUAALYYAAC7GQAAsR4LAIsj + GgCVJRsAtSILALkgCwCnJBUAqyQSAK4oFwCxJRIAsCoXALsrFwCzLBoAuS4aALIwHwC6MBwAii8oAJUq + IwCJMCkAmTAnAJkzKwCcOS8Aijs0AJw8NACvNicApTYrALUzIAC8NSIAtzopALo7KQClPDIAwxsAAMsd + AADTHQAA5RoAAMYjCADYIQAAzzAVAOckAADwKAIA9TEKAO85FgD0OBIAwTciAMI5JADBPisAyT4oANY8 + IgClQzsAvUQ0ALdKNwDFQS0AykQvANBDLADCRjQAykUwAMRINgDKSjYAwko6AM5NOADXTjYA0VA8APRK + KACNSUEAk0pFAJtTTgCXWFQApktEAKpRSgCzUEUAuVBCALFWTAC4VEoArVdQAKtYUgCmXVgAtF1TALBf + WgCbY14At2BUAJVlYQCcfHkAomZhALhrYwC7c2wAoHRzAL54cAC2f3sAylVDANVaRgDiWkIA12JOANlo + VQDpZUwA+GFDAORrVQDncl0AxHVqAM56bgDRcGIA3XRiAN57awDBfHUA5XpnAPt+ZQCugXsA3oFvAMWF + fADYinwA5oBuAPOBawDqiHYA9Yp1APaRfQCCgoMAioqMAJ2EgwCIkI4AgJ2MAIyNkQCOkZUAjJOYAJKS + lACWlpkAmpqbAKSKigC0iIUAs42LALGSjgCmmJgAh6SYAJ2eogCaoaYAnaWpAJ+trACjo6MApKaqAKim + qACjqawAq6urALWpqQCurrAArLK1AK+4uwC0tLQAurO0ALW2uAC8t7gAtby/ALu7uwDOkIUAyZaPAMSf + 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 + 1v+kpab/r1ZM/6U3Lf+iDgD/sBYA/70YAP/KHgX/6ot6//Sxpv/3qpv/+q6e//6ypP/zn4r/ws3O/6iq + qv/O1NX/oqSk/61KQf+jJx3/sBQA/8EcAP/SGwD/5DMT//uyo//+xrr//sOz///Gtv//ybr/+LWg/8LO + z/+qrKz/zdTW/6Gjo/+qMCP/qQ0A/8AbAP/RIQD/4RoA//NQNf//0sb//9TI///Uxv//18j//9rL//rG + tP/Dzs//rK6v/87U1v+goaH/pRwP/7MWAP/FHQD/1SMA/+caAP/6fWj//+vm///i2f//5tz//+nf///q + 4P/6zb7/xM7Q/6+ysv/O1Nb/oKGh/6cZDf+4GAD/yhoA/90ZAP/xJwn/+Ipr//u/ov/7tJH/+66J//qo + f//2oXf/8Jty/8XO0P+xtLX/ztTW/6Chof+goaH/oKGh/6Gio/+jpaX/paen/6epqf+prKz/rK+v/6+x + sf+xtLX/tLi4/7a7vP/Fz9H/s7e4/87U1njO1Nb/ztTW/87U1v/N1Nb/zdPV/83T1f/M09X/y9LU/8rS + 1P/K0tP/ydHT/8jR0v/H0NH/xs/R/7a6u5XgBwAA4AcAAPAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAACAEAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjo6MDurq6I7S0 + tFatra18t7e3hbm5uYeoqKiGjo6Of4KCgmB7e3stg4ODCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJCQHbCw + sHzHx8fIzs7O8NXV1fvZ2dn+1tbW/s7Ozv7MzMz8wsLC9Kurq9WUlJRrjo6OMAAAAAAAAAAAAAAAAAAA + AAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWV + lWu+vr7r0tLS/9fX1//b29v/3t7e/9zc3P/U1NT/zc3N/93d3f/b29v/wcHB/8XFxf+4uLj+eXl5UBMT + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiCyqqqrOzc3N/83Nzf/Ly8v/z8/P/9PT + 0//X19f/2tra/9vb2//a2tr/19fX/9LS0v/MzMz/0dHR/9/f3//Z2dn/wMDA/7e3t/++vr7/ycnJ/7i4 + uP+wsLD9WVlZiAAAABYAAAAjAAAAKwAAACsAAAAlAAAAGQAAAA0AAAAGAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAi4uLJbS0tOfIyMj/w8PD/8bG + xv/Ly8v/zs7O/9LS0v/X19f/29vb/9zc3P/c3Nz/2NjY/9HR0f/Kysr/09PT/+Hh4f/Q0ND/ubm5/8DA + wP/Pz8//urq6/62trf+urq7/ubm5/2FhYawAAABDAAAARgAAAEAAAAA2AAAAKQAAABwAAAARAAAACQAA + AAQAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJiYkDq6urvcDA + wP++vr7/wsLC/8TExP/IyMj/zMzM/9HR0f/X19f/29vb/93d3f/c3Nz/2NjY/9HR0f/Jycn/0tLS/9vb + 2//FxcX/wcHB/8nJyf+6urr/sLCw/66urv+oqKj/oqKi/6qqqv8fHx93AAAATgAAAEkAAAA+AAAAMwAA + ACYAAAAbAAAAEQAAAAoAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAChoaEXtra29Lm5uf+8vLz/v7+//8LCwv/FxcX/ycnJ/87Ozv/U1NT/2dnZ/9zc3P/b29v/1tbW/87O + zv/Hx8f/zMzM/8zMzP/AwMD/w8PD/7e3t/+ysrL/rq6u/6SkpP+ampr/l5eX/6qqqv9GRkaXAAAARwAA + AEgAAABAAAAANQAAACgAAAAfAAAAFgAAAA4AAAAHAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAC6uroWtLS08be3t/+5ubn/vLy8/7+/v//BwcH/xcXF/8nJyf/Pz8//1NTU/9bW + 1v/V1dX/0dHR/8rKyv/ExMT/xcXF/8DAwP++vr7/t7e3/7Gxsf+pqan/n5+f/5WVlf+SkpL/mJiY/6ur + q/9RUVGcAAAAPAAAAEEAAAA6AAAAMQAAACcAAAAeAAAAFgAAAA4AAAAHAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQCtbW1y7W1tf+3t7f/ubm5/729vf+/v7//wcHB/8TE + xP/Hx8f/y8vL/83Nzf/MzMz/ycnJ/8XFxf/BwcH/v7+//7q6uv+ysrL/qamp/6Ghof+Xl5f/kpKS/5OT + k/+YmJj/nZ2d/6urq/8pKSltAAAALgAAADQAAAAzAAAALAAAACMAAAAaAAAAEwAAAAwAAAAHAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqampQrOzs/e7u7v/t7e3/7q6 + uv+8vLz/vr6+/8DAwP/CwsL/xMTE/8bGxv/FxcX/wsLC/7y8vP+1tbX/ra2t/6ampv+bm5v/jIyM/3t7 + e/95eXn/ioqK/5SUlP+bm5v/pqam/4GBgcoWFhZFODk5YTk5Olpubm5aEhISKQAAABwAAAAWAAAADgAA + AAgAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGdn + Z0WZmZnNu7u7/7a2tv+zs7P/tLS0/7S0tP+zs7P/srKy/7CwsP+tra3/pqam/5ubm/+SkpL/iIiI/3x8 + fP9qamn/X19f/2VlZf97e3z/jY6O/56en/+sra3/tre3/pubnM6urq/iycrK/7a2t+6IiIi+Z2dnKwAA + ABEAAAALAAAABwAAAAMAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAICAgGTk5ObJ2dneiurq7/qamp/6Ojo/+enp7/m5ub/5ycnP+Pj4//goGB/3p6 + ev9zc3P/bm5u/2tsbP91dnf/hIWG/5iYmv+goaL/sLCx/7e3uP+3t7f/u7u7/8HBwf/AwMD/v7+//L6+ + vv+Xl5ftgICAMQAAAAMAAAADAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAYAAAAGAAAAABAQECNGRkZ0eXl5v4+PjuKgoKD4o6Oj/ouL + iv97e3v/gICB/4SEhf+IiYv/kJCT/5manP+oqKv/rq6w/66ur/+vr7D/r6+w/7a3t/+1t7f/u8LD/8LM + zf/Jzs//wcDA/by8vPyfn5/6b29vUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAGAAAACQAAAAwAAAAOAAAADQAAAAUAAAAAFhYXC0BA + QjBvb3GBjo+R7oqKjf+OjpL/kJCU/4+QlP+Skpb/lpaZ/56eof+lpaf/p6mr/6yxtP+1vsD/wMnL/87T + 1P/W09P/2cnG/9+4tP/Wvrn/wMXF/cHBwfyioqL8jIyMbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAQEARQUFQgtLS8XSkpMNWpq + bGaCgoaYj4+TxJSUmOWQkJT4jY2R/42Nkf+MjJH/i42R/4uOk/+Nkpf/nKSo/6+4u//Dycv/z87P/9TH + xv/Usq7/2p+U/9FwYv/HQS7/wBwE/7QGAP+zX1X/w87P/sTExPyhoaH+n5+fiwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhoHJCQlHT8/QTBbW15MfX2AgY6O + kbCYmJ3anJyh+Zubn/+Xl5v/jo6S/4yMkf+KjpL/jJOY/5ihpf+hqKv/rauv/7mwsv/HvLz/yK2q/8mW + j//Oem7/wko6/7kgC/+0FAD/rBAA/6URAP+lFgP/phoI/6YTAf+yVkv/xczN/8fHx/2kpKT/nJycqwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+PkxNwcHM3dHV4ZouIjqKOjZHTkZGW7piY + nPufn6P/oKCk/5+fov+fn6P/nZ+j/5mfpP+fp6v/oquu/6usr/+8tbb/xra1/8SfnP++eHD/uFRK/682 + J/+nHg7/phgH/6UTAv+lFQP/phoJ/6gfDv+qIRD/rCMR/68kEf+wJRL/sSYT/7EeC/+5UEL/x8vM/8nJ + yf6pqan/nJycxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkZGVao+Pk+aTk5f/kpCW/4Cd + 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 + T//kiXr/5ol5/+iKef/qjHv/7I17/+2OfP/vj33/8JB+//KRf//zkoD/9JOB//WVgv/3kX7/7H1n/9TI + xv/W2dn/ra2t/5mZmdwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOfn5zO5vsH+noSE/4wc + Ff+mS0T/pEhB/6JGP/+kRj7/pkA2/5UWCP+VDQD/mw8A/6ISAP+nFAD/qhUA/64VAP+0FwD/uRkA/74a + AP/DGgD/yScM/+B0Yv/plYb/65SF/+yVhf/ulob/8JeH//GZiP/zmYj/9JqJ//abiv/2nIv/952M//ie + jf/5noz/84Jr/9W8uP/Y3N3/t7e3/5mZmeoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO7u + 7xe9wMLwqJyd/4ojHP+pUEn/qFFK/6dOR/+sUUj/pDYs/5MOAP+ZDwD/nxEA/6YTAP+pFAD/rBUA/7IW + AP+4GAD/vhoA/8McAP/GGwD/zzAV/+aFdP/tn5H/7p2P//Cej//xn5D/86GR//Whkf/2o5L/96ST//il + lP/5ppX/+qaW//unl//8p5f/+4t0/9q0rP/Y3uD/vr6+/5mZmfSenp4HAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPLy8ge/wMLbs7Gz/4ovKP+qUUv/q1hS/61YT/+wV07/nCQX/5UMAP+cEAD/ohIA/6gU + AP+rFQD/sBYA/7YYAP+7GQD/whsA/8YcAP/KGwD/1jwi/+uVhv/wp5v/8aaY//Onmf/1qJr/9qma//iq + m//5q5z/+ayc//utnv/8rp7//a+f//6woP//sKD//5aA/+SzqP/Y4OH/w8PD/5mZmfucnJwiAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADGxsi/vMDC/48+Of+qUEr/sF9a/7NhWf+xVUv/lhQG/5kN + AP+gEQD/pRMA/6kVAP+uFQD/tBcA/7kYAP+/GgD/xBwA/8gdAP/NHQD/3Ewz/++jlv/yr6P/86+i//Wv + ov/3sKP/+LGk//mypP/7s6X//LSm//62pv//tqf//7ao//+4qf//uar//6KN/+Wvo//a4eL/yMjI/5mZ + mf6bm5tJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzs+bw8jL/5hNSP+oTkj/tmpi/7lr + Y/+rRDr/lgwA/50QAP+jEgD/pxQA/6sVAP+xFgD/txgA/78aAP/GHQD/zB4A/9MfAP/aIwL/6WVM//e0 + p//5ua3/+7mr//y6rP/9u63//b2u//6+rv/+v6///8Gw///CsP//w7H//8Sy///Esv//xrT//7Sc/+iv + nP/b4OL/zc3N/5qamv+bm5tzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADW1th3w8nM/5tT + Tv+oTET/u3Ns/7tsZP+eKBv/mAsA/6ERAP+oFAD/rhUA/7cYAP+/GwD/xx0A/88fAP/XIQD/3iIA/+Qj + AP/sLgn/9oFq//3Btf//wrX//8K1///Etv//xbb//8e3///IuP//ybj//8m5///Luv//zLv//827///O + vP//0L3//8Oq/+yulf/c3t//0dHR/5ubm/+ampqcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADc3N5TxMvN/5dYVP+mR0D/wXx1/7ZbUv+aEgT/oxEA/6oUAP+xFgD/uRkA/8EbAP/HHQD/zR4A/9Qg + AP/aIgD/4CMA/+cjAP/vORb/+ZmF//7Jvv//yL3//8m9///Kvf//zL7//82////Ov///z8D//9DA///R + wf//0sH//9PC///Uw///1cT//8y2//Guk//b2tn/2NnZ/56env+ampq6AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADh4eI4xs3P/5dlYv+lQjn/xoF5/6s9Mf+eDAD/qBQA/6wVAP+0FwD/uxkA/8Ib + AP/JHQD/0B8A/9YhAP/cIwD/5CQA/+sjAP/ySyn//K6f///Pxv//zsP//8/E///QxP//0sX//9PF///U + xv//1cb//9bH///Xx///2Mj//9jJ///Zyv//28z//9XD//Wxlv/b09D/3+Dh/6Ghof+ZmZnTAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NYbyc/R85x8ef+iPTP/wnZt/6AeD/+hDwD/qRQA/68V + AP+3GAD/vhoA/8QcAP/LHgD/0yAA/9ghAP/fIwD/6CQA/+0lAP/2YUP//8K2///VzP//1Mr//9XK///W + yv//18v//9jL///ZzP//2sz//9vN///czv//3c///93Q///f0f//4NP//93O//q5nv/dz8n/4+bn/6mp + qf+ZmZnkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADt7e4Jys3Q3qmZmP+cOS//s1BF/5sO + AP+kEgD/qxUA/7EWAP+5GQD/vxsA/8cdAP/OHgD/1SAA/9siAP/jJAD/6yUA//ArBP/6fmX//9LI///a + 0f//2dD//9rQ///b0f//3NH//93S///e0v//39L//+DT///h1f//4tb//+PX///k2P//5dn//+LW//3C + qf/lz8b/6Ozu/7Ozs/+YmJjynp6eBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzM7QuLq0 + tf+SKB7/nhsN/50PAP+mEwD/rBUA/7QXAP+8GQD/wRsA/8kdAP/RHwD/1yEA/90jAP/mJQD/7SQA//Q4 + Ev/+oI3//97X///e1///39b//9/X///g1///4df//+LY///j2P//5Nn//+Xa///m2///593//+fe///o + 3v//6d///+je///Mtv/mzMH/7fHz/8HBwf+Xl5f6nJycJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAwMHDlcPExf+NIxn/lwkA/6ARAP+nFAD/rhUA/7YXAP+9GgD/wxwA/8sdAP/TIAD/2SIA/98j + AP/oJQD/7iUA//dKJ///uq3//+Pd///i2///49v//+Pb///j2///5dz//+bc///n3P//597//+je///p + 4P//6uH//+vi///r4///7OT//+zk///Uwv/lyLz/7/P1/8zMzP+YmJj+nJycSQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAy8vNdsLJyv+KMSj/mQgA/6ERAP+oFAD/rxYA/7gYAP++GgD/xBwA/80e + AP/VIAD/2yIA/+EkAP/pJQD/8CUA//piQ///z8X//+fh///l3///5t///+bf///n4P//6OD//+nh///q + 4f//6+L//+vj///s5P//7OT//+3l///s5P//7OT//+rg///Uv//owK7/8fX3/9bW1v+YmJj/m5ubawAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArq6xVcjR0/+NSUH/mQYA/6MSAP+pFAD/sBYA/7kY + AP+/GwD/xhwA/84eAP/WIQD/3CIA/+MkAP/rJQD/8ioC//x+Zf//39j//+rl///p5P//6uT//+rk///q + 4///6uH//+nf///m3P//5Nj//+HU///czP//18T//9G8//3JtP/5w6v/9ryk//Gtjv/WppL/7/P1/+Xl + 5f+YmJj/np6ejAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0tLUNsXNz/6UZWD/lwUA/6QS + AP+pFAD/sRYA/7oZAP/AGwD/xh0A/9AfAP/WIQD/3SIA/+QkAP/sJAD/9TEK//+TfP//39f//9/W///X + y///0MH//8m4//3DsP/3vqn/9Lqk//S5of/0tp3/9LOY/+mulv/frpr/2LOj/9i+tP/cy8T/4tbR/+bh + 3//m5ub/8fHx/+jo6P+mpqb6s7OzTQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAubm7F8HG + yO+dhIL/lAcA/6USAP+qFAD/sxYA/7wZAP/DGgD/yhsA/9UaAP/bGgD/4BoA/+YaAP/rGwD/7CsE/+1s + Uv/qmYf/4pyM/+GgkP/hpZX/2qqd/9Gxp//Rvrn/1MrH/9nSz//c19b/2dfX/9jZ2v/X29z/297f/9zf + 4Pvb3d3u2tvc39XW1tnb29vG3Nzcst7e3o3MzMxLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAw8PGBby/wdeomZn/lQcA/6YJAP+oCwD/rw0A/7URAP+1GAD/tSIL/7c1IP+3Sjf/vGBQ/8Z1 + aP/Fin//wKCa/8W3tP/LxsX/zs/Q/9HW1//T2Nr/0tfZ/9PX2f/T1db50dPT7NDR0d3Nzs7Xz8/Pwc/P + z63U1NSP0NDQdNLS0k/Ozs8rysrKFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALCytb2zra7/hTgw/5FKQ/+cZV//roF7/7GSjv+xoaD/tLGy/7vB + w/+/ys3/xdDT/8rU1v/N1db/ztPU983P0OvNzs7dy8vL1MvLy8HKysqmzs7Oj8vLzHnOzs5Oy8vLM8rK + yhrKysoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK2tr7PCw8P/t7/C/73Fx//Dy83/xMrM/cXJ + y/XHycrqxsfI3MbGx83Hx8jAx8fHp8rKyovIyMhzy8vLUsrKyjnKysoaysrKCwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgo3a5ubvAvLy9wr+/ + wK28vL6NwMDBb8LCw1fHx8g8ysrKIMrKyhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADKysoOysrKAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4AD//8AAP/8 + AAD4fwAA//AAACAPAAD/4AAAAAcAAP/AAAAAAQAA/4AAAAABAAD/gAAAAAEAAP+AAAAAAQAA/4AAAAAB + AAD/wAAAAAEAAP/gAAAAAAAA//AAAAAHAAD/hAAAAH8AAP4BAAAAfwAA/4AAAAB/AAD8AAAAAH8AAMAA + AAAAfwAAgAAAAAB/AACAAAAAAH8AAIAAAAAAPwAAgAAAAAA/AACAAAAAAD8AAIAAAAAAPwAAwAAAAAA/ + AADAAAAAAD8AAMAAAAAAPwAAwAAAAAA/AADAAAAAAD8AAMAAAAAAHwAAwAAAAAAfAADgAAAAAB8AAOAA + AAAAHwAA4AAAAAAfAADgAAAAAB8AAOAAAAAAHwAA4AAAAAAfAADgAAAAAA8AAPAAAAAADwAA8AAAAAAP + AADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAB8AAPAAAAAD/wAA+AAAAf//AAD4AAH///8AAPgB + /////wAA/P//////AAA= + + + + 3, 2, 3, 2 + + + CenterScreen + + + Remote Desktop + + + KVMViewerExtra + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/MeshCentralRouter.csproj b/MeshCentralRouter.csproj index f327c63..341f63f 100644 --- a/MeshCentralRouter.csproj +++ b/MeshCentralRouter.csproj @@ -106,6 +106,12 @@ FileDialogMsgForm.cs + + Form + + + KVMViewerExtra.cs + Form @@ -274,6 +280,9 @@ FileDialogMsgForm.cs + + KVMViewerExtra.cs + SshUsernameForm.cs diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index 42538eb..ab5d15a 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -481,6 +481,15 @@ namespace MeshCentralRouter.Properties { } } + /// + /// Looks up a localized string similar to Join. + /// + internal static string Join { + get { + return ResourceManager.GetString("Join", resourceCulture); + } + } + /// /// Looks up a localized string similar to Changing language will close this tool. Are you sure?. /// @@ -835,6 +844,15 @@ namespace MeshCentralRouter.Properties { } } + /// + /// Looks up a localized string similar to Split. + /// + internal static string Split { + get { + return ResourceManager.GetString("Split", resourceCulture); + } + } + /// /// Looks up a localized string similar to Starting.... /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index dd15f0e..e1b095e 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -448,4 +448,10 @@ ZIP Selected Files + + Join + + + Split + \ No newline at end of file diff --git a/Settings.cs b/Settings.cs index fae005a..27583fc 100644 --- a/Settings.cs +++ b/Settings.cs @@ -37,7 +37,11 @@ namespace MeshCentralRouter /// public static string GetRegValue(string name, string value) { - try { return Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router", name, value).ToString(); } catch (Exception) { return value; } + try { + String v = (String)Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router", name, value); + if (v == null) return value; + return v.ToString(); + } catch (Exception) { return value; } } /// /// This function querys the registry. If the key is found it returns the value as a boolean From 2c66ddc2c2379a3c3c3ca6527a3cc051ccfb57cd Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Fri, 28 Jan 2022 14:11:37 -0800 Subject: [PATCH 02/10] Remote desktop split fixes. --- KVMControl.cs | 1 + KVMViewer.cs | 4 +++- KVMViewerExtra.cs | 13 +++++++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/KVMControl.cs b/KVMControl.cs index 447bc7c..e20d9d9 100644 --- a/KVMControl.cs +++ b/KVMControl.cs @@ -249,6 +249,7 @@ namespace MeshCentralRouter // Update extra displays if needed Rectangle r = new Rectangle((int)tile_x, (int)tile_y, newtile.Width, newtile.Height); Rectangle rx = new Rectangle(r.X + displayOrigin.X, r.Y + displayOrigin.Y, r.Width, r.Height); + //Console.WriteLine(rx.ToString()); if (ScreenAreaUpdated != null) ScreenAreaUpdated(desktop, rx); if (displayCrop == Rectangle.Empty) diff --git a/KVMViewer.cs b/KVMViewer.cs index 6bc7eb9..249f39a 100644 --- a/KVMViewer.cs +++ b/KVMViewer.cs @@ -90,7 +90,9 @@ namespace MeshCentralRouter private void KvmControl_ScreenAreaUpdated(Bitmap desktop, Rectangle r) { if (extraDisplays == null) return; - foreach (KVMViewerExtra x in extraDisplays) { x.UpdateScreenArea(desktop, r); } + foreach (KVMViewerExtra x in extraDisplays) { + if (x != null) { x.UpdateScreenArea(desktop, r); } + } } private void Parent_ClipboardChanged() diff --git a/KVMViewerExtra.cs b/KVMViewerExtra.cs index faea83a..1ea595e 100644 --- a/KVMViewerExtra.cs +++ b/KVMViewerExtra.cs @@ -54,8 +54,17 @@ namespace MeshCentralRouter if (kvmControl.displayCrop.IntersectsWith(r) == false) return; Rectangle r2 = new Rectangle(r.X, r.Y, r.Width, r.Height); r2.Intersect(kvmControl.displayCrop); - //kvmControl.Repaint(new Rectangle(r2.X - kvmControl.displayCrop.X, r2.Y - kvmControl.displayCrop.Y, r2.Width, r2.Height)); - kvmControl.Repaint(null); + kvmControl.desktop = desktop; + if (kvmControl.ScaleFactor == 1) + { + Rectangle r3 = new Rectangle(r2.X - kvmControl.displayCrop.X, r2.Y - kvmControl.displayCrop.Y, r2.Width, r2.Height); + kvmControl.Repaint(r3); + } + else + { + Rectangle r3 = new Rectangle((int)(((double)(r2.X - kvmControl.displayCrop.X)) / kvmControl.ScaleFactor) - 2, (int)(((double)(r2.Y - kvmControl.displayCrop.Y)) / kvmControl.ScaleFactor) - 2, (int)(((double)r2.Width) / kvmControl.ScaleFactor) + 4, (int)(((double)r2.Height) / kvmControl.ScaleFactor) + 4); + kvmControl.Repaint(r3); + } } private void KvmControl_DesktopSizeChanged(object sender, EventArgs e) From 5e0a9ae108d48d43de2038846c8f5582140e4a8e Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Mon, 31 Jan 2022 12:45:54 -0800 Subject: [PATCH 03/10] Fixed exception when agent does not have capabilities field. --- MeshCentralServer.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MeshCentralServer.cs b/MeshCentralServer.cs index 51fd03d..a2363e7 100644 --- a/MeshCentralServer.cs +++ b/MeshCentralServer.cs @@ -399,7 +399,7 @@ namespace MeshCentralRouter if (node.ContainsKey("agent")) { n.agentid = (int)((Dictionary)node["agent"])["id"]; - n.agentcaps = (int)((Dictionary)node["agent"])["caps"]; + if (((Dictionary)node["agent"]).ContainsKey("caps")) { n.agentcaps = (int)((Dictionary)node["agent"])["caps"]; } else { n.agentcaps = 0; } } if (node.ContainsKey("conn")) { n.conn = (int)node["conn"]; } n.icon = 1; @@ -541,7 +541,7 @@ namespace MeshCentralRouter if (node.ContainsKey("agent")) { n.agentid = (int)((Dictionary)node["agent"])["id"]; - n.agentcaps = (int)((Dictionary)node["agent"])["caps"]; + if (((Dictionary)node["agent"]).ContainsKey("caps")) { n.agentcaps = (int)((Dictionary)node["agent"])["caps"]; } else { n.agentcaps = 0; } } else { @@ -588,7 +588,7 @@ namespace MeshCentralRouter if (node.ContainsKey("agent")) { n.agentid = (int)((Dictionary)node["agent"])["id"]; - n.agentcaps = (int)((Dictionary)node["agent"])["caps"]; + if (((Dictionary)node["agent"]).ContainsKey("caps")) { n.agentcaps = (int)((Dictionary)node["agent"])["caps"]; } else { n.agentcaps = 0; } } else { From d1091c5e0c14eb50b170742cd4a5baf74a940a1d Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Thu, 24 Feb 2022 14:21:14 -0800 Subject: [PATCH 04/10] Desktop Setting Improvements. --- KVMControl.cs | 1 + KVMSettingsForm.Designer.cs | 19 +++++++++---- KVMSettingsForm.cs | 30 ++++++++++++-------- KVMSettingsForm.resx | 56 ++++++++++++++++++++++++++++--------- KVMViewer.cs | 45 +++++++++++++++++++++++++++++ MainForm.cs | 6 ++++ 6 files changed, 128 insertions(+), 29 deletions(-) diff --git a/KVMControl.cs b/KVMControl.cs index e20d9d9..6efff18 100644 --- a/KVMControl.cs +++ b/KVMControl.cs @@ -40,6 +40,7 @@ namespace MeshCentralRouter private bool swamMouseButtons = false; private bool remoteKeyboardMap = false; private bool autoSendClipboard = false; + public bool AutoReconnect = false; private double scalefactor = 1; public List displays = new List(); public ushort currentDisp = 0; diff --git a/KVMSettingsForm.Designer.cs b/KVMSettingsForm.Designer.cs index 1189f0d..7c06c66 100644 --- a/KVMSettingsForm.Designer.cs +++ b/KVMSettingsForm.Designer.cs @@ -32,6 +32,7 @@ this.cancelButton = new System.Windows.Forms.Button(); this.okButton = new System.Windows.Forms.Button(); this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.autoSendClipboardCheckBox = new System.Windows.Forms.CheckBox(); this.remoteKeyboardMapCheckBox = new System.Windows.Forms.CheckBox(); this.swapMouseButtonsCheckBox = new System.Windows.Forms.CheckBox(); this.frameRateComboBox = new System.Windows.Forms.ComboBox(); @@ -42,7 +43,7 @@ this.label3 = new System.Windows.Forms.Label(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.label4 = new System.Windows.Forms.Label(); - this.autoSendClipboardCheckBox = new System.Windows.Forms.CheckBox(); + this.autoReconnectCheckBox = new System.Windows.Forms.CheckBox(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); @@ -65,6 +66,7 @@ // groupBox1 // resources.ApplyResources(this.groupBox1, "groupBox1"); + this.groupBox1.Controls.Add(this.autoReconnectCheckBox); this.groupBox1.Controls.Add(this.autoSendClipboardCheckBox); this.groupBox1.Controls.Add(this.remoteKeyboardMapCheckBox); this.groupBox1.Controls.Add(this.swapMouseButtonsCheckBox); @@ -77,6 +79,12 @@ this.groupBox1.Name = "groupBox1"; this.groupBox1.TabStop = false; // + // autoSendClipboardCheckBox + // + resources.ApplyResources(this.autoSendClipboardCheckBox, "autoSendClipboardCheckBox"); + this.autoSendClipboardCheckBox.Name = "autoSendClipboardCheckBox"; + this.autoSendClipboardCheckBox.UseVisualStyleBackColor = true; + // // remoteKeyboardMapCheckBox // resources.ApplyResources(this.remoteKeyboardMapCheckBox, "remoteKeyboardMapCheckBox"); @@ -137,11 +145,11 @@ resources.ApplyResources(this.label4, "label4"); this.label4.Name = "label4"; // - // autoSendClipboardCheckBox + // autoReconnectCheckBox // - resources.ApplyResources(this.autoSendClipboardCheckBox, "autoSendClipboardCheckBox"); - this.autoSendClipboardCheckBox.Name = "autoSendClipboardCheckBox"; - this.autoSendClipboardCheckBox.UseVisualStyleBackColor = true; + resources.ApplyResources(this.autoReconnectCheckBox, "autoReconnectCheckBox"); + this.autoReconnectCheckBox.Name = "autoReconnectCheckBox"; + this.autoReconnectCheckBox.UseVisualStyleBackColor = true; // // KVMSettingsForm // @@ -182,5 +190,6 @@ private System.Windows.Forms.CheckBox swapMouseButtonsCheckBox; private System.Windows.Forms.CheckBox remoteKeyboardMapCheckBox; private System.Windows.Forms.CheckBox autoSendClipboardCheckBox; + private System.Windows.Forms.CheckBox autoReconnectCheckBox; } } \ No newline at end of file diff --git a/KVMSettingsForm.cs b/KVMSettingsForm.cs index 033dccd..15871a4 100644 --- a/KVMSettingsForm.cs +++ b/KVMSettingsForm.cs @@ -25,6 +25,7 @@ namespace MeshCentralRouter { InitializeComponent(); Translate.TranslateControl(this); + qualityComboBox.Items.Add(new DropListItem(100, "100%")); qualityComboBox.Items.Add(new DropListItem(90, "90%")); qualityComboBox.Items.Add(new DropListItem(80, "80%")); qualityComboBox.Items.Add(new DropListItem(70, "70%")); @@ -76,17 +77,18 @@ namespace MeshCentralRouter get { return ((DropListItem)qualityComboBox.SelectedItem).value; } set { - if (value >= 90) { qualityComboBox.SelectedIndex = 0; return; } - if (value >= 80) { qualityComboBox.SelectedIndex = 1; return; } - if (value >= 70) { qualityComboBox.SelectedIndex = 2; return; } - if (value >= 60) { qualityComboBox.SelectedIndex = 3; return; } - if (value >= 50) { qualityComboBox.SelectedIndex = 4; return; } - if (value >= 40) { qualityComboBox.SelectedIndex = 5; return; } - if (value >= 30) { qualityComboBox.SelectedIndex = 6; return; } - if (value >= 20) { qualityComboBox.SelectedIndex = 7; return; } - if (value >= 10) { qualityComboBox.SelectedIndex = 8; return; } - if (value >= 5) { qualityComboBox.SelectedIndex = 9; return; } - qualityComboBox.SelectedIndex = 10; + if (value >= 100) { qualityComboBox.SelectedIndex = 0; return; } + if (value >= 90) { qualityComboBox.SelectedIndex = 1; return; } + if (value >= 80) { qualityComboBox.SelectedIndex = 2; return; } + if (value >= 70) { qualityComboBox.SelectedIndex = 3; return; } + if (value >= 60) { qualityComboBox.SelectedIndex = 4; return; } + if (value >= 50) { qualityComboBox.SelectedIndex = 5; return; } + if (value >= 40) { qualityComboBox.SelectedIndex = 6; return; } + if (value >= 30) { qualityComboBox.SelectedIndex = 7; return; } + if (value >= 20) { qualityComboBox.SelectedIndex = 8; return; } + if (value >= 10) { qualityComboBox.SelectedIndex = 9; return; } + if (value >= 5) { qualityComboBox.SelectedIndex = 10; return; } + qualityComboBox.SelectedIndex = 11; } } @@ -135,6 +137,12 @@ namespace MeshCentralRouter set { autoSendClipboardCheckBox.Checked = value; } } + public bool AutoReconnect + { + get { return autoReconnectCheckBox.Checked; } + set { autoReconnectCheckBox.Checked = value; } + } + private void okButton_Click(object sender, EventArgs e) { DialogResult = System.Windows.Forms.DialogResult.OK; diff --git a/KVMSettingsForm.resx b/KVMSettingsForm.resx index 11be2d7..f19b9d2 100644 --- a/KVMSettingsForm.resx +++ b/KVMSettingsForm.resx @@ -123,7 +123,7 @@ - 312, 254 + 312, 276 75, 23 @@ -151,7 +151,7 @@ Bottom, Right - 231, 254 + 231, 276 75, 23 @@ -177,6 +177,36 @@ Top, Bottom, Left, Right + + True + + + NoControl + + + 128, 174 + + + 144, 17 + + + 10 + + + Automatically Reconnect + + + autoReconnectCheckBox + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 0 + True @@ -205,7 +235,7 @@ groupBox1 - 0 + 1 True @@ -235,7 +265,7 @@ groupBox1 - 1 + 2 True @@ -262,7 +292,7 @@ groupBox1 - 2 + 3 Top, Left, Right @@ -286,7 +316,7 @@ groupBox1 - 3 + 4 True @@ -313,7 +343,7 @@ groupBox1 - 4 + 5 Top, Left, Right @@ -337,7 +367,7 @@ groupBox1 - 5 + 6 True @@ -364,7 +394,7 @@ groupBox1 - 6 + 7 Top, Left, Right @@ -391,7 +421,7 @@ groupBox1 - 7 + 8 True @@ -418,13 +448,13 @@ groupBox1 - 8 + 9 12, 68 - 375, 180 + 375, 202 2 @@ -502,7 +532,7 @@ 6, 13 - 399, 289 + 399, 311 diff --git a/KVMViewer.cs b/KVMViewer.cs index 249f39a..2f5976f 100644 --- a/KVMViewer.cs +++ b/KVMViewer.cs @@ -43,6 +43,8 @@ namespace MeshCentralRouter public string lang = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName; private bool splitMode = false; private KVMViewerExtra[] extraDisplays = null; + private System.Windows.Forms.Timer delayedConnectionTimer = null; + private bool localAutoReconnect = true; // Stats public long bytesIn = 0; @@ -84,7 +86,19 @@ namespace MeshCentralRouter mainToolTip.SetToolTip(clipInboundButton, Translate.T(Properties.Resources.PullClipboardFromRemoteDevice, lang)); mainToolTip.SetToolTip(zoomButton, Translate.T(Properties.Resources.ToggleZoomToFitMode, lang)); mainToolTip.SetToolTip(statsButton, Translate.T(Properties.Resources.DisplayConnectionStatistics, lang)); + + // Load remote desktop settings + int CompressionLevel = 60; + try { CompressionLevel = int.Parse(Settings.GetRegValue("kvmCompression", "60")); } catch (Exception) { } + int ScalingLevel = 1024; + try { ScalingLevel = int.Parse(Settings.GetRegValue("kvmScaling", "1024")); } catch (Exception) { } + int FrameRate = 100; + try { FrameRate = int.Parse(Settings.GetRegValue("kvmFrameRate", "100")); } catch (Exception) { } + kvmControl.SetCompressionParams(CompressionLevel, ScalingLevel, FrameRate); + kvmControl.SwamMouseButtons = Settings.GetRegValue("kvmSwamMouseButtons", "0").Equals("1"); + kvmControl.RemoteKeyboardMap = Settings.GetRegValue("kvmSwamMouseButtons", "0").Equals("1"); kvmControl.AutoSendClipboard = Settings.GetRegValue("kvmAutoClipboard", "0").Equals("1"); + kvmControl.AutoReconnect = Settings.GetRegValue("kvmAutoReconnect", "0").Equals("1"); } private void KvmControl_ScreenAreaUpdated(Bitmap desktop, Rectangle r) @@ -117,6 +131,25 @@ namespace MeshCentralRouter } } + public void TryAutoConnect() + { + if ((localAutoReconnect == false) || (kvmControl.AutoReconnect == false)) return; + if ((state == 0) && (wc == null) && (delayedConnectionTimer == null)) { + // Hold half a second before trying to connect + delayedConnectionTimer = new System.Windows.Forms.Timer(this.components); + delayedConnectionTimer.Tick += new EventHandler(updateTimerTick); + delayedConnectionTimer.Interval = 500; + delayedConnectionTimer.Enabled = true; + } + } + + private void updateTimerTick(object sender, EventArgs e) + { + delayedConnectionTimer.Dispose(); + delayedConnectionTimer = null; + if ((state == 0) && (wc == null)) { MenuItemConnect_Click(this, null); } + } + private void KvmControl_DesktopSizeChanged(object sender, EventArgs e) { kvmControl.Visible = true; @@ -318,6 +351,7 @@ namespace MeshCentralRouter wc.Dispose(); wc = null; UpdateStatus(); + localAutoReconnect = false; } else { @@ -325,6 +359,7 @@ namespace MeshCentralRouter if (sender != null) { consentFlags = 0; } MenuItemConnect_Click(null, null); kvmControl.AttachKeyboard(); + localAutoReconnect = true; } displayMessage(null); } @@ -434,11 +469,21 @@ namespace MeshCentralRouter form.SwamMouseButtons = kvmControl.SwamMouseButtons; form.RemoteKeyboardMap = kvmControl.RemoteKeyboardMap; form.AutoSendClipboard = kvmControl.AutoSendClipboard; + form.AutoReconnect = kvmControl.AutoReconnect; if (form.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { kvmControl.SetCompressionParams(form.Compression, form.Scaling, form.FrameRate); kvmControl.SwamMouseButtons = form.SwamMouseButtons; kvmControl.RemoteKeyboardMap = form.RemoteKeyboardMap; + kvmControl.AutoReconnect = form.AutoReconnect; + + Settings.SetRegValue("kvmCompression", kvmControl.CompressionLevel.ToString()); + Settings.SetRegValue("kvmScaling", kvmControl.ScalingLevel.ToString()); + Settings.SetRegValue("kvmFrameRate", kvmControl.FrameRate.ToString()); + Settings.SetRegValue("kvmSwamMouseButtons", kvmControl.SwamMouseButtons ? "1" : "0"); + Settings.SetRegValue("kvmRemoteKeyboardMap", kvmControl.RemoteKeyboardMap ? "1" : "0"); + Settings.SetRegValue("kvmAutoReconnect", kvmControl.AutoReconnect ? "1" : "0"); + if (kvmControl.AutoSendClipboard != form.AutoSendClipboard) { kvmControl.AutoSendClipboard = form.AutoSendClipboard; diff --git a/MainForm.cs b/MainForm.cs index 60524d3..f2f66eb 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -647,6 +647,12 @@ namespace MeshCentralRouter // Setup any automatic mappings if ((fullRefresh == true) && (mappingsToSetup != null)) { setupMappings(); } + + // Reconnect any auto-reconnect nodes + foreach (NodeClass node in meshcentral.nodes.Values) + { + if (((node.conn & 1) != 0) && (node.desktopViewer != null)) { node.desktopViewer.TryAutoConnect(); } + } } private void updateDeviceList() From 95d1a442bedeba383c9221394df3ad406fafb4f0 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Wed, 2 Mar 2022 16:41:08 -0800 Subject: [PATCH 05/10] Improved multi-display selection. --- KVMViewer.Designer.cs | 30 +++-- KVMViewer.cs | 68 ++++++---- KVMViewer.resx | 142 +++++++++++++++----- MeshCentralRouter.csproj | 1 + Properties/Resources.Designer.cs | 10 ++ Properties/Resources.resx | 217 ++++++++++++++++--------------- Resources/icon-monitor1.png | Bin 0 -> 396 bytes Resources/icon-monitor1b.png | Bin 0 -> 339 bytes Resources/icon-monitor2.png | Bin 0 -> 461 bytes Resources/icon-monitor2b.png | Bin 0 -> 409 bytes Resources/monitor32.png | Bin 0 -> 848 bytes 11 files changed, 291 insertions(+), 177 deletions(-) create mode 100644 Resources/icon-monitor1.png create mode 100644 Resources/icon-monitor1b.png create mode 100644 Resources/icon-monitor2.png create mode 100644 Resources/icon-monitor2b.png create mode 100644 Resources/monitor32.png diff --git a/KVMViewer.Designer.cs b/KVMViewer.Designer.cs index c57a6e4..cee1679 100644 --- a/KVMViewer.Designer.cs +++ b/KVMViewer.Designer.cs @@ -51,11 +51,11 @@ namespace MeshCentralRouter this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); this.updateTimer = new System.Windows.Forms.Timer(this.components); this.topPanel = new System.Windows.Forms.Panel(); + this.extraButtonsPanel = new System.Windows.Forms.Panel(); this.splitButton = new System.Windows.Forms.Button(); this.clipOutboundButton = new System.Windows.Forms.Button(); this.clipInboundButton = new System.Windows.Forms.Button(); this.statsButton = new System.Windows.Forms.Button(); - this.displaySelectComboBox = new System.Windows.Forms.ComboBox(); this.settingsButton = new System.Windows.Forms.Button(); this.zoomButton = new System.Windows.Forms.Button(); this.cadButton = new System.Windows.Forms.Button(); @@ -68,6 +68,7 @@ namespace MeshCentralRouter this.consoleTimer = new System.Windows.Forms.Timer(this.components); this.mainToolTip = new System.Windows.Forms.ToolTip(this.components); this.resizeKvmControl = new MeshCentralRouter.KVMResizeControl(); + this.displaySelectorImageList = new System.Windows.Forms.ImageList(this.components); this.mainStatusStrip.SuspendLayout(); this.topPanel.SuspendLayout(); this.consentContextMenuStrip.SuspendLayout(); @@ -103,11 +104,11 @@ namespace MeshCentralRouter // topPanel // this.topPanel.BackColor = System.Drawing.SystemColors.Control; + this.topPanel.Controls.Add(this.extraButtonsPanel); this.topPanel.Controls.Add(this.splitButton); this.topPanel.Controls.Add(this.clipOutboundButton); this.topPanel.Controls.Add(this.clipInboundButton); this.topPanel.Controls.Add(this.statsButton); - this.topPanel.Controls.Add(this.displaySelectComboBox); this.topPanel.Controls.Add(this.settingsButton); this.topPanel.Controls.Add(this.zoomButton); this.topPanel.Controls.Add(this.cadButton); @@ -115,6 +116,11 @@ namespace MeshCentralRouter resources.ApplyResources(this.topPanel, "topPanel"); this.topPanel.Name = "topPanel"; // + // extraButtonsPanel + // + resources.ApplyResources(this.extraButtonsPanel, "extraButtonsPanel"); + this.extraButtonsPanel.Name = "extraButtonsPanel"; + // // splitButton // resources.ApplyResources(this.splitButton, "splitButton"); @@ -150,14 +156,6 @@ namespace MeshCentralRouter this.statsButton.UseVisualStyleBackColor = true; this.statsButton.Click += new System.EventHandler(this.statsButton_Click); // - // displaySelectComboBox - // - this.displaySelectComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - resources.ApplyResources(this.displaySelectComboBox, "displaySelectComboBox"); - this.displaySelectComboBox.Name = "displaySelectComboBox"; - this.displaySelectComboBox.TabStop = false; - this.displaySelectComboBox.SelectionChangeCommitted += new System.EventHandler(this.displaySelectComboBox_SelectionChangeCommitted); - // // settingsButton // resources.ApplyResources(this.settingsButton, "settingsButton"); @@ -243,6 +241,15 @@ namespace MeshCentralRouter this.resizeKvmControl.Enter += new System.EventHandler(this.resizeKvmControl_Enter); this.resizeKvmControl.Leave += new System.EventHandler(this.resizeKvmControl_Leave); // + // displaySelectorImageList + // + this.displaySelectorImageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("displaySelectorImageList.ImageStream"))); + this.displaySelectorImageList.TransparentColor = System.Drawing.Color.Transparent; + this.displaySelectorImageList.Images.SetKeyName(0, "icon-monitor1.png"); + this.displaySelectorImageList.Images.SetKeyName(1, "icon-monitor1b.png"); + this.displaySelectorImageList.Images.SetKeyName(2, "icon-monitor2.png"); + this.displaySelectorImageList.Images.SetKeyName(3, "icon-monitor2b.png"); + // // KVMViewer // resources.ApplyResources(this, "$this"); @@ -278,7 +285,6 @@ namespace MeshCentralRouter private Button cadButton; private Button zoomButton; private Button settingsButton; - private ComboBox displaySelectComboBox; private Label consoleMessage; private Timer consoleTimer; private Button statsButton; @@ -290,6 +296,8 @@ namespace MeshCentralRouter private ToolStripMenuItem askConsentToolStripMenuItem; private ToolStripMenuItem privacyBarToolStripMenuItem; private Button splitButton; + private Panel extraButtonsPanel; + private ImageList displaySelectorImageList; } } diff --git a/KVMViewer.cs b/KVMViewer.cs index 2f5976f..920f39e 100644 --- a/KVMViewer.cs +++ b/KVMViewer.cs @@ -45,6 +45,7 @@ namespace MeshCentralRouter private KVMViewerExtra[] extraDisplays = null; private System.Windows.Forms.Timer delayedConnectionTimer = null; private bool localAutoReconnect = true; + private Dictionary displaySelectionButtons = new Dictionary(); // Stats public long bytesIn = 0; @@ -52,16 +53,6 @@ namespace MeshCentralRouter public long bytesOut = 0; public long bytesOutCompressed = 0; - public class displayTag - { - public ushort num; - public string name; - - public displayTag(ushort num, string name) { this.num = num; this.name = name; } - - public override string ToString() { return name; } - } - public KVMViewer(MainForm parent, MeshCentralServer server, NodeClass node) { this.parent = parent; @@ -376,7 +367,7 @@ namespace MeshCentralRouter { case 0: // Disconnected mainToolStripStatusLabel.Text = Translate.T(Properties.Resources.Disconnected, lang); - displaySelectComboBox.Visible = false; + extraButtonsPanel.Visible = false; kvmControl.Visible = false; kvmControl.screenWidth = 0; kvmControl.screenHeight = 0; @@ -384,13 +375,13 @@ namespace MeshCentralRouter break; case 1: // Connecting mainToolStripStatusLabel.Text = Translate.T(Properties.Resources.Connecting, lang); - displaySelectComboBox.Visible = false; + extraButtonsPanel.Visible = false; kvmControl.Visible = false; connectButton.Text = Translate.T(Properties.Resources.Disconnect, lang); break; case 2: // Setup mainToolStripStatusLabel.Text = "Setup..."; - displaySelectComboBox.Visible = false; + extraButtonsPanel.Visible = false; kvmControl.Visible = false; connectButton.Text = Translate.T(Properties.Resources.Disconnect, lang); break; @@ -515,35 +506,57 @@ namespace MeshCentralRouter resizeKvmControl.ZoomToFit = !resizeKvmControl.ZoomToFit; } + /// + /// + /// + /// + /// private void resizeKvmControl_DisplaysReceived(object sender, EventArgs e) { if (kvmControl == null || kvmControl.displays.Count == 0) return; if (kvmControl.displays.Count > 0) { - displaySelectComboBox.Visible = true; - displaySelectComboBox.Items.Clear(); + extraButtonsPanel.Visible = true; + extraButtonsPanel.Controls.Clear(); + displaySelectionButtons.Clear(); foreach (ushort displayNum in kvmControl.displays) { - displayTag t; if (displayNum == 0xFFFF) { - t = new displayTag(displayNum, Translate.T(Properties.Resources.AllDisplays, lang)); - displaySelectComboBox.Items.Add(t); + Button b = new Button(); + b.ImageList = displaySelectorImageList; + b.ImageIndex = (kvmControl.currentDisp == displayNum) ? 2 : 3; // All displayes + b.Width = 32; + b.Height = 32; + mainToolTip.SetToolTip(b, Translate.T(Properties.Resources.AllDisplays, lang)); + b.Click += new System.EventHandler(this.displaySelectComboBox_SelectionChangeCommitted); + b.Tag = displayNum; + b.Dock = DockStyle.Left; + extraButtonsPanel.Controls.Add(b); + displaySelectionButtons.Add(displayNum, b); } else { - t = new displayTag(displayNum, string.Format(Translate.T(Properties.Resources.DisplayX, lang), displayNum)); - displaySelectComboBox.Items.Add(t); + Button b = new Button(); + b.ImageList = displaySelectorImageList; + b.ImageIndex = (kvmControl.currentDisp == displayNum) ? 0 : 1; // One display grayed out + b.Width = 32; + b.Height = 32; + mainToolTip.SetToolTip(b, string.Format(Translate.T(Properties.Resources.DisplayX, lang), displayNum)); + b.Click += new System.EventHandler(this.displaySelectComboBox_SelectionChangeCommitted); + b.Tag = displayNum; + b.Dock = DockStyle.Left; + extraButtonsPanel.Controls.Add(b); + displaySelectionButtons.Add(displayNum, b); } - - if (kvmControl.currentDisp == displayNum) { displaySelectComboBox.SelectedItem = t; } } } else { - displaySelectComboBox.Visible = false; - displaySelectComboBox.Items.Clear(); + extraButtonsPanel.Visible = false; + extraButtonsPanel.Controls.Clear(); + displaySelectionButtons.Clear(); } // If there are many displays and all displays is selected, enable split/join button. @@ -553,7 +566,10 @@ namespace MeshCentralRouter private void displaySelectComboBox_SelectionChangeCommitted(object sender, EventArgs e) { if (splitMode) { splitButton_Click(this, null); } - if (kvmControl != null) { kvmControl.SendDisplay(((displayTag)displaySelectComboBox.SelectedItem).num); } + if (kvmControl != null) { + ushort displayNum = (ushort)((Button)sender).Tag; + kvmControl.SendDisplay(displayNum); + } } private void resizeKvmControl_TouchEnabledChanged(object sender, EventArgs e) @@ -738,5 +754,7 @@ namespace MeshCentralRouter } } } + + } } diff --git a/KVMViewer.resx b/KVMViewer.resx index 270e7a6..d23caf2 100644 --- a/KVMViewer.resx +++ b/KVMViewer.resx @@ -171,6 +171,30 @@ 154, 17 + + Top, Left, Right + + + 383, 4 + + + 658, 32 + + + 10 + + + extraButtonsPanel + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + topPanel + + + 0 + Top, Right @@ -205,7 +229,7 @@ topPanel - 0 + 1 Top, Right @@ -238,7 +262,7 @@ topPanel - 1 + 2 Top, Right @@ -277,7 +301,7 @@ topPanel - 2 + 3 Top, Right @@ -310,36 +334,6 @@ topPanel - 3 - - - 16 - - - 384, 6 - - - 4, 4, 4, 4 - - - 169, 24 - - - 5 - - - False - - - displaySelectComboBox - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - topPanel - - 4 @@ -586,7 +580,7 @@ resizeKvmControl - MeshCentralRouter.KVMResizeControl, MeshCentralRouter, Version=1.8.8063.22517, Culture=neutral, PublicKeyToken=null + MeshCentralRouter.KVMResizeControl, MeshCentralRouter, Version=1.8.8096.29519, Culture=neutral, PublicKeyToken=null $this @@ -594,6 +588,80 @@ 2 + + 752, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADs + DgAAAk1TRnQBSQFMAgEBBAEAARABAAEQAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA + AwABIAMAAQEBAAEQBgABEP8A/wD/AP8A/wD/AP8A/wAiAAH3AV4BpQEUAaUBFAGlARQBpQEUAaUBFAGl + ARQB9wFeEAAB9wFeAaUBFAGlARQBpQEUAaUBFAGlARQBpQEUAfcBXhAAAfcBXgGlARQBpQEUAaUBFAGl + ARQBpQEUAaUBFAH3AV4QAAH3AV4BpQEUAaUBFAGlARQBpQEUAaUBFAGlARQB9wFeEAAB3gF7ARgBYwFr + AS0BYwEQAYQBEAFrAS0BGAFjAd4BexAAAd4BewEYAWMBawEtAYQBEAGEARABawEtARgBYwHeAXsQAAHe + AXsBGAFjAWsBLQFjARABhAEQAWsBLQEYAWMB3gF7EAAB3gF7ARgBYwFrAS0BhAEQAYQBEAFrAS0BGAFj + Ad4BexQAAXsBbwFkARABZAEQAVoBaxgAAXsBbwFjAQwBYwEMAVoBaxgAAXsBbwFkARABZAEQAVoBaxgA + AXsBbwFjAQwBYwEMAVoBawwAAZwBcwH3AV4B9wFeAfcBXgH3AV4B9wFeAWsBLQFiARABYgEQAWoBLQH3 + AV4B9wFeAfcBXgH3AV4B9wFeAZwBcwGcAXMB9wFeAfcBXgH3AV4B9wFeAfcBXgFrAS0BYwEMAWMBDAFr + AS0B9wFeAfcBXgH3AV4B9wFeAfcBXgGcAXMBnAFzAfcBXgH3AV4B9wFeAfcBXgH3AV4BawEtAWIBEAFi + ARABagEtAfcBXgH3AV4B9wFeAfcBXgH3AV4BnAFzAZwBcwH3AV4B9wFeAfcBXgH3AV4B9wFeAWsBLQFj + AQwBYwEMAWsBLQH3AV4B9wFeAfcBXgH3AV4B9wFeAZwBcwErARkB2gEeAdoBHgHaAR4B2gEeAdoBHgHa + AR4B2wEeAdsBHgHbAR4BugEeAboBHgHaAR4BugEeAdoBHgFMARkBCAEhAVIBSgFSAUoBUgFKAVIBSgFS + AUoBUgFKAVIBSgFSAUoBUgFKAVIBSgFSAUoBUgFKAVIBSgFSAUoBKQElASsBGQHaAR4B2gEeAdoBHgHa + AR4B2gEeAdoBHgHbAR4B2wEeAdsBHgG6AR4BugEeAdoBHgG6AR4B2gEeAUwBGQEIASEBUgFKAVIBSgFS + AUoBUgFKAVIBSgFSAUoBUgFKAVIBSgFSAUoBUgFKAVIBSgFSAUoBUgFKAVIBSgEpASUBbAEZAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFs + ARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwFt + ARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBSgEpAWwBGQE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAW0BGQEpASUBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgFKASkBbAEZAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFsARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwFtARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBSgEpAWwBGQH/ASYBfwEqAX8BKgF/ASoBfwEqAX8BKgH/ + ASYB/wEmAX8BKgF/ASoBfwEqAX8BKgF/ASoB/wEmAW0BGQEpASUBlAJSAUoBUgFKAVIBSgFSAUoBUgFK + AZQBUgGUAlIBSgFSAUoBUgFKAVIBSgFSAUoBlAFSAUoBKQFsARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwFtARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBSgEpAWwBGQF/ASoBfwE8AX8BPAF/ + ATwBfwE8AX8BPAF/ASoBfwEqAX8BPAF/ATwBfwE8AX8BPAF/ATwBfwEqAW0BGQEpASUBUgJKASkBSgEp + AUoBKQFKASkBSgEpAVIBSgFSAkoBKQFKASkBSgEpAUoBKQFKASkBUgJKASkBbAEZAT8BIwE/ASMBPwEj + AT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1AVYBtQFW + AbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFsARkBfwEq + AX8BPAF/ATwBfwE8AX8BPAF/ATwBfwEqAX8BKgF/ATwBfwE8AX8BPAF/ATwBfwE8AX8BKgFtARkBKQEl + AVICSgEpAUoBKQFKASkBSgEpAUoBKQFSAUoBUgJKASkBSgEpAUoBKQFKASkBSgEpAVICSgEpAWwBGQE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAW0BGQEp + ASUBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgFK + ASkBbAEZAX8BKgF/ATwBfwE8AX8BPAF/ATwBfwE8AX8BKgF/ASoBfwE8AX8BPAF/ATwBfwE8AX8BPAF/ + ASoBbQEZASkBJQFSAkoBKQFKASkBSgEpAUoBKQFKASkBUgFKAVICSgEpAUoBKQFKASkBSgEpAUoBKQFS + AkoBKQFsARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEj + AT8BIwFtARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFW + AbUBVgG1AVYBSgEpAWwBGQF/ASoBfwE8AX8BPAF/ATwBfwE8AX8BPAF/ASoBfwEqAX8BPAF/ATwBfwE8 + AX8BPAF/ATwBfwEqAW0BGQEpASUBUgJKASkBSgEpAUoBKQFKASkBSgEpAVIBSgFSAkoBKQFKASkBSgEp + AUoBKQFKASkBUgJKASkBbAEZAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFsARkB/wEmAX8BKgF/ASoBfwEqAX8BKgF/ASoB/wEmAf8BJgF/ + ASoBfwEqAX8BKgF/ASoBfwEqAf8BJgFtARkBKQElAZQCUgFKAVIBSgFSAUoBUgFKAVIBSgGUAVIBlAJS + AUoBUgFKAVIBSgFSAUoBUgFKAZQBUgFKASkBbAEZAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFsARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwFtARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBSgEpAUwBGQE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAW0BGQEpASUBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgFKASkBTAEZAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQHw + AT0B6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHv + AT0B7wE9AecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHn + ARwB7wE9AfABPQHoARgB6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHo + ARgB6AEYAe8BPQHvAT0B5wEcAecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHn + ARwB5wEcAecBHAHvAT0BQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EAAfABDwHw + AQ8B8AEPAfABDwHwAQ8B8AEPAfABDwHwAQ8B/AE/AfwBPwH8AT8B/AE/aAAL + + True @@ -1085,6 +1153,12 @@ System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + displaySelectorImageList + + + System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + KVMViewer diff --git a/MeshCentralRouter.csproj b/MeshCentralRouter.csproj index 341f63f..cf4c028 100644 --- a/MeshCentralRouter.csproj +++ b/MeshCentralRouter.csproj @@ -376,6 +376,7 @@ + diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index ab5d15a..42ad1d4 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -424,6 +424,16 @@ namespace MeshCentralRouter.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icon_monitor1 { + get { + object obj = ResourceManager.GetObject("icon-monitor1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index e1b095e..dd2d065 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -120,21 +120,18 @@ CIRA - - Toggle remote desktop connection - - - Unable to open file: {0} + + Change remote desktop settings - - ..\Resources\MeshCentral.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Gear20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Connect + + ..\Resources\icon-clipboard-in.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - {0} Bytes + + ZIP Selected Files Denied @@ -142,12 +139,6 @@ Invalid username or password - - {0} bytes/sec - - - Slow - Display connection statistics @@ -157,14 +148,14 @@ ..\Resources\50-Computer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Almost done + Email sent - - Port {0} to {1}:{2} - - - {0} minutes left + + Rename Failed to start remote terminal session @@ -175,8 +166,8 @@ ..\Resources\Empty-Banner.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - PuTTY SSH client + + Received invalid network data {0} Mbytes/sec @@ -184,8 +175,8 @@ ..\Resources\refresh16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - No tools allowed + + ..\Resources\delete16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Send Ctrl-Alt-Del to remote device @@ -193,20 +184,23 @@ Fast - - {0} seconds left + + , Recorded Session Search - - Overwrite 1 file? + + Send token to registered email address? Don't ask for {0} days. - - Rename + + Stopped + + + ..\Resources\MeshCentral.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Connecting... @@ -214,11 +208,14 @@ MeshCentral + + ..\Resources\folderzip.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Failed to start remote desktop session - - Received invalid network data + + Offline Email verification required @@ -229,20 +226,20 @@ Unable to write file: {0} + + WinSCP client + {0} Kbytes/sec Changing language will close this tool. Are you sure? - - Invalid download. + + Connected - - Remove {0} items? - - - Change remote desktop settings + + Close Send token to registered phone number? @@ -256,17 +253,20 @@ Push local clipboard to remote device - - Unable to bind to local port + + {0} minutes left - - ..\Resources\icon-clipboard-in.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Toggle remote desktop connection - - ..\Resources\MC2-Banner.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Local - - Error uploading file: {0} + + Join + + + Relay Disconnected @@ -280,8 +280,8 @@ Medium - - Remote - {0} + + PuTTY SSH client Pull clipboard from remote device @@ -295,26 +295,23 @@ Port {0} to port {1} - - Very slow - Remove 1 item? - - , {0} connections. + + Overwrite 1 file? (Individual Devices) - - ..\Resources\xinstall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Split Create Folder - - ..\Resources\arrowright16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + {0} Bytes Updating... @@ -334,8 +331,8 @@ {0} hours left - - ..\Resources\icon-clipboard-out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Invalid download. Waiting for user to grant access... @@ -346,26 +343,29 @@ All Displays - - ..\Resources\HelpRelayMap.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + {0} seconds left - - MeshCentral Router + + ..\Resources\xinstall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Disconnect AMT - - Local + + Port {0} to {1}:{2} - - Relay + + Error uploading file: {0} ..\Resources\icons01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Unable to connect + + Remove {0} items? Setup... @@ -376,14 +376,17 @@ ..\Resources\arrowleft16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Close + + Unable to connect - - , {0} users + + Unable to bind to local port - - Disconnect + + No tools allowed + + + ..\Resources\arrowright16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Languages @@ -391,14 +394,17 @@ Local - {0} - - ..\Resources\Gear20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + {0} bytes/sec - - Offline + + ..\Resources\icon-clipboard-out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - , Recorded Session + + Very slow + + + MeshCentral Router {0} Byte @@ -409,49 +415,46 @@ ..\Resources\folderup16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\delete16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Unable to open file: {0} - - WinSCP client + + ..\Resources\MC2-Banner.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a , 1 connection. + + Connect + Two-factor Authentication Agent - - Connected + + , {0} connections. + + + Remote - {0} Error downloading file: {0} - - Almost done + + ..\Resources\HelpRelayMap.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Remote - - Send token to registered email address? + + Slow - - Stopped + + , {0} users - - ..\Resources\folderzip.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ZIP Selected Files - - - Join - - - Split + + ..\Resources\icon-monitor1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/Resources/icon-monitor1.png b/Resources/icon-monitor1.png new file mode 100644 index 0000000000000000000000000000000000000000..76380d010baf564fc447f6e8de81d94d9cde4e69 GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1engQBO4V~B-+a!FyK_3wYz=coRpQ(R(6a^T#oFaRA&LsS@H+cE)|9}1?Oq@)UjXHjv|B&h^&b)Zp zrd{{{=ih%=`H=sz{esOBl0R5kh2r+ts`6hssi33t=fmma`rHjZ8xqg()Jyy`*krU} z}dgf3rHVL+Z!ouhEzyIxhcYgkTrZ+M&JZskE@YMhNBlzRr-`$6Q n^UK@qsr_DNAEGH>V8Fo8R2j{vBz_ghVqoxe^>bP0l+XkKiyxHe literal 0 HcmV?d00001 diff --git a/Resources/icon-monitor1b.png b/Resources/icon-monitor1b.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7a6e6694c9075378ec787c8acb2384840c5073 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBuf-vKbiP>*~f-gK>978PplS>K1oLs5|WY&V=ggz=nGHrHIpz+h>$q&;@!J{_ix{pKIO`~!R6ck z|MdoJj89s&*ZwYJa|;a(-9O*H{?KP84@F^N;pT=0heNZ?^Pf1@Bqly=2g<}X1wdSFBhu zanq(v3Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T6?F-m4}VWDKBl4J5O+$s^mxN|FdsWrTEp9~Yy`xhpd% zicywUL|r6-Jin4xeOh7kl~%%qeqHJZ(4{i%MXjtYQJLD`1mp=IDV00000NkvXXu0mjf D+jGtF literal 0 HcmV?d00001 diff --git a/Resources/icon-monitor2b.png b/Resources/icon-monitor2b.png new file mode 100644 index 0000000000000000000000000000000000000000..7810b97f5e67a5d9a4197b45bb238617a01a75e1 GIT binary patch literal 409 zcmV;K0cQS*P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940WL{IK~y+TV{~zG zIs5(lcOwQe02>?IIYvJ}zyHzE(NH1M!1CqG8JHLu8KGR#0Z1fSmBQZ{N!2TT<3 zyZ}5SEgXiiHYe z0A?r+2hPsU8Zt66IV>zJMZjDt0CJ6}sHl;$va$dWzj*NA!5gSjFu*W?i;FA&+qZ9Z zfByUt;Nak3U}a@x0I`9FIRK;c!@GCy_Cu8d0Rsa7GQN?HJhIAu00000NkvXXu0mjf D8XToO literal 0 HcmV?d00001 diff --git a/Resources/monitor32.png b/Resources/monitor32.png new file mode 100644 index 0000000000000000000000000000000000000000..d11f8744d46d56a4dc43bf38880e0bd238175076 GIT binary patch literal 848 zcmWkrZA=>l0KJM1oop-p;(Fh`_Ih`vAN1>by}Qy+x|U!e44ovHw57l(PRaVm6=SAL zjQ%h~C`0$FWLv@*AT7pq&5XpwE!hmeH-F7e=ElS&k{HD$c>D3*%X{zNd!P5EjvhJ) z9RvX2P%;tgmz9-4yxJslt+LP}i=xnfGy<${B2Q%V@>uwdFaT7}z5YD&irlUB^$c|F z@9(GIIv(J?LBZGQ=R%@S^0||oAaa4sn}a8E85km{U=I`NrNb$vGs#B#h>WWz z2OEgnV?!aUjdM9n(FEQ7j?2PGE+@r$+_THxxm8bT#XYm;nXPzBRc>zGJ^hXJbQ8*Q5(KT+>zem+P)`YrQq$47Ba8`?r(!nf*GkVO7Vnzry z>LD7%%m_-s2(Hzk>Q+OWmIQT#PD7(`2Zd zW1(=sF9@8EGLSyECn!ph&R{eg;W?j1rA8nahYXX$)Co6YC* zj~@T_M`QcZ=Ej3xpKNXIZ0+pqJbd~)t^}1DLjm5 zYIa6F(_j8jBD}VMFDc=2U)4hX zRR6@&ZMfV3%atqFsUN)8yfp0-udQ7E{_;h&<*cG!pDIoji}k6!y<%~1d+EQ0MrdOL Y0P262td9Z3ro1GO>`KK}Bk5262jk%ly#N3J literal 0 HcmV?d00001 From bf668eae230ae6efde2a68269b6cad4c2176f3ad Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Thu, 12 May 2022 16:07:33 -0700 Subject: [PATCH 06/10] Added custom app support. --- AddPortMapForm.Designer.cs | 1 - AddPortMapForm.cs | 15 +- AddRelayMapForm.Designer.cs | 1 - AddRelayMapForm.cs | 15 +- CustomAppsAddForm.Designer.cs | 211 ++++ CustomAppsAddForm.cs | 70 ++ CustomAppsAddForm.resx | 1818 +++++++++++++++++++++++++++++++++ CustomAppsForm.Designer.cs | 248 +++++ CustomAppsForm.cs | 130 +++ CustomAppsForm.resx | 1818 +++++++++++++++++++++++++++++++++ CustomAppsRunForm.Designer.cs | 192 ++++ CustomAppsRunForm.cs | 58 ++ CustomAppsRunForm.resx | 1815 ++++++++++++++++++++++++++++++++ MainForm.Designer.cs | 22 +- MainForm.cs | 245 +++-- MainForm.resx | 548 ++++------ MapUserControl.cs | 33 +- MeshCentralRouter.csproj | 27 + Settings.cs | 49 + 19 files changed, 6885 insertions(+), 431 deletions(-) create mode 100644 CustomAppsAddForm.Designer.cs create mode 100644 CustomAppsAddForm.cs create mode 100644 CustomAppsAddForm.resx create mode 100644 CustomAppsForm.Designer.cs create mode 100644 CustomAppsForm.cs create mode 100644 CustomAppsForm.resx create mode 100644 CustomAppsRunForm.Designer.cs create mode 100644 CustomAppsRunForm.cs create mode 100644 CustomAppsRunForm.resx diff --git a/AddPortMapForm.Designer.cs b/AddPortMapForm.Designer.cs index e9f2b1c..adddb39 100644 --- a/AddPortMapForm.Designer.cs +++ b/AddPortMapForm.Designer.cs @@ -138,7 +138,6 @@ resources.GetString("appComboBox.Items4"), resources.GetString("appComboBox.Items5")}); this.appComboBox.Name = "appComboBox"; - this.appComboBox.Sorted = true; this.appComboBox.SelectedIndexChanged += new System.EventHandler(this.appComboBox_SelectedIndexChanged); // // label5 diff --git a/AddPortMapForm.cs b/AddPortMapForm.cs index 4205ea7..230a7cf 100644 --- a/AddPortMapForm.cs +++ b/AddPortMapForm.cs @@ -16,6 +16,7 @@ limitations under the License. using System; using System.Windows.Forms; +using System.Collections.Generic; namespace MeshCentralRouter { @@ -43,13 +44,25 @@ namespace MeshCentralRouter if (x == 3) { return 4; } // PuTTY if (x == 4) { return 3; } // RDP if (x == 5) { return 5; } // WinSCP - return x; + return 0; + } + public string getAppIdStr() + { + int x = (int)appComboBox.SelectedIndex; + if (x < 6) { return null; } // Custom or pre-defined + return apps[x - 6][1]; } public NodeClass getNode() { return (NodeClass)nodeComboBox.SelectedItem; } public void setNode(NodeClass node) { selectedNode = node; } + private List apps = null; + private void AddPortMapForm_Load(object sender, EventArgs e) { + // Add any custom applications + apps = Settings.GetApplications(); + if (apps != null) { foreach (String[] app in apps) { appComboBox.Items.Add(app[0]); } } + if (selectedNode == null) { // Fill the groups diff --git a/AddRelayMapForm.Designer.cs b/AddRelayMapForm.Designer.cs index fc328ef..10fb77a 100644 --- a/AddRelayMapForm.Designer.cs +++ b/AddRelayMapForm.Designer.cs @@ -140,7 +140,6 @@ resources.GetString("appComboBox.Items4"), resources.GetString("appComboBox.Items5")}); this.appComboBox.Name = "appComboBox"; - this.appComboBox.Sorted = true; this.appComboBox.SelectedIndexChanged += new System.EventHandler(this.appComboBox_SelectedIndexChanged); // // label5 diff --git a/AddRelayMapForm.cs b/AddRelayMapForm.cs index 0f02405..7c4e758 100644 --- a/AddRelayMapForm.cs +++ b/AddRelayMapForm.cs @@ -17,6 +17,7 @@ limitations under the License. using System; using System.Net; using System.Windows.Forms; +using System.Collections.Generic; namespace MeshCentralRouter { @@ -46,13 +47,25 @@ namespace MeshCentralRouter if (x == 3) { return 4; } // PuTTY if (x == 4) { return 3; } // RDP if (x == 5) { return 5; } // WinSCP - return x; + return 0; + } + public string getAppIdStr() + { + int x = (int)appComboBox.SelectedIndex; + if (x < 6) { return null; } // Custom or pre-defined + return apps[x - 6][1]; } public NodeClass getNode() { return (NodeClass)nodeComboBox.SelectedItem; } public void setNode(NodeClass node) { selectedNode = node; } + private List apps = null; + private void AddRelayMapForm_Load(object sender, EventArgs e) { + // Add any custom applications + apps = Settings.GetApplications(); + if (apps != null) { foreach (String[] app in apps) { appComboBox.Items.Add(app[0]); } } + if (selectedNode == null) { // Fill the groups diff --git a/CustomAppsAddForm.Designer.cs b/CustomAppsAddForm.Designer.cs new file mode 100644 index 0000000..19f68e9 --- /dev/null +++ b/CustomAppsAddForm.Designer.cs @@ -0,0 +1,211 @@ +namespace MeshCentralRouter +{ + partial class CustomAppsAddForm + { + /// + /// 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(CustomAppsAddForm)); + this.okButton = new System.Windows.Forms.Button(); + this.cancelButton = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.nameTextBox = new System.Windows.Forms.TextBox(); + this.protocolTextBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.commandTextBox = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label4 = new System.Windows.Forms.Label(); + this.selectFileButton = new System.Windows.Forms.Button(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.okButton.Location = new System.Drawing.Point(244, 160); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 4; + this.okButton.Text = "OK"; + this.okButton.UseVisualStyleBackColor = true; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // cancelButton + // + this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.cancelButton.Location = new System.Drawing.Point(325, 160); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 5; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(35, 13); + this.label1.TabIndex = 6; + this.label1.Text = "Name"; + // + // nameTextBox + // + this.nameTextBox.Location = new System.Drawing.Point(116, 19); + this.nameTextBox.Name = "nameTextBox"; + this.nameTextBox.Size = new System.Drawing.Size(266, 20); + this.nameTextBox.TabIndex = 7; + this.nameTextBox.TextChanged += new System.EventHandler(this.nameTextBox_TextChanged); + // + // protocolTextBox + // + this.protocolTextBox.Location = new System.Drawing.Point(116, 45); + this.protocolTextBox.Name = "protocolTextBox"; + this.protocolTextBox.Size = new System.Drawing.Size(266, 20); + this.protocolTextBox.TabIndex = 9; + this.protocolTextBox.TextChanged += new System.EventHandler(this.nameTextBox_TextChanged); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 48); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(46, 13); + this.label2.TabIndex = 8; + this.label2.Text = "Protocol"; + // + // commandTextBox + // + this.commandTextBox.Location = new System.Drawing.Point(116, 71); + this.commandTextBox.Name = "commandTextBox"; + this.commandTextBox.Size = new System.Drawing.Size(238, 20); + this.commandTextBox.TabIndex = 11; + this.commandTextBox.TextChanged += new System.EventHandler(this.nameTextBox_TextChanged); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 74); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(54, 13); + this.label3.TabIndex = 10; + this.label3.Text = "Command"; + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.selectFileButton); + this.groupBox1.Controls.Add(this.nameTextBox); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.commandTextBox); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.protocolTextBox); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(12, 56); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(388, 98); + this.groupBox1.TabIndex = 12; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Application"; + // + // label4 + // + this.label4.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.label4.Location = new System.Drawing.Point(12, 9); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(388, 44); + this.label4.TabIndex = 13; + this.label4.Text = "Enter a friendly name, protocol (like HTTP, RDP, VNC) and the command line and ar" + + "guments to run the application. In the command line, use %L for address and %P f" + + "or connection port."; + // + // selectFileButton + // + this.selectFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.selectFileButton.Location = new System.Drawing.Point(360, 71); + this.selectFileButton.Name = "selectFileButton"; + this.selectFileButton.Size = new System.Drawing.Size(21, 20); + this.selectFileButton.TabIndex = 12; + this.selectFileButton.Text = "..."; + this.selectFileButton.UseVisualStyleBackColor = true; + this.selectFileButton.Click += new System.EventHandler(this.selectFileButton_Click); + // + // openFileDialog + // + this.openFileDialog.DefaultExt = "exe"; + this.openFileDialog.Filter = "Executable|*.exe"; + this.openFileDialog.Title = "Select Application Executable"; + // + // CustomAppsAddForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size(412, 195); + this.Controls.Add(this.label4); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.okButton); + this.Controls.Add(this.cancelButton); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "CustomAppsAddForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Add Custom Application"; + this.Load += new System.EventHandler(this.CustomAppsAddForm_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox nameTextBox; + private System.Windows.Forms.TextBox protocolTextBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox commandTextBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Button selectFileButton; + private System.Windows.Forms.OpenFileDialog openFileDialog; + } +} \ No newline at end of file diff --git a/CustomAppsAddForm.cs b/CustomAppsAddForm.cs new file mode 100644 index 0000000..07ca7cb --- /dev/null +++ b/CustomAppsAddForm.cs @@ -0,0 +1,70 @@ +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 MeshCentralRouter +{ + public partial class CustomAppsAddForm : Form + { + public string appName + { + get { return nameTextBox.Text; } + set { nameTextBox.Text = value; updateInfo(); } + } + public string appProtocol + { + get { return protocolTextBox.Text; } + set { protocolTextBox.Text = value; updateInfo(); } + } + public string appCommand + { + get { return commandTextBox.Text; } + set { commandTextBox.Text = value; updateInfo(); } + } + + public CustomAppsAddForm() + { + InitializeComponent(); + } + + public void updateInfo() + { + okButton.Enabled = (nameTextBox.Text.Length > 0) && (protocolTextBox.Text.Length > 0) && (commandTextBox.Text.Length > 0) && (nameTextBox.Text.IndexOf(' ') == -1) && (protocolTextBox.Text.IndexOf(' ') == -1); + } + + private void CustomAppsAddForm_Load(object sender, EventArgs e) + { + updateInfo(); + nameTextBox.Focus(); + } + + private void nameTextBox_TextChanged(object sender, EventArgs e) + { + updateInfo(); + } + + private void okButton_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.OK; + } + + private void cancelButton_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + } + + private void selectFileButton_Click(object sender, EventArgs e) + { + if (openFileDialog.ShowDialog(this) == DialogResult.OK) + { + commandTextBox.Text = openFileDialog.FileName; + } + } + } +} diff --git a/CustomAppsAddForm.resx b/CustomAppsAddForm.resx new file mode 100644 index 0000000..7292dc4 --- /dev/null +++ b/CustomAppsAddForm.resx @@ -0,0 +1,1818 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAA0AMDAQAAEABABoBgAA1gAAACAgEAABAAQA6AIAAD4HAAAYGBAAAQAEAOgBAAAmCgAAEBAQAAEA + BAAoAQAADgwAADAwAAABAAgAqA4AADYNAAAgIAAAAQAIAKgIAADeGwAAGBgAAAEACADIBgAAhiQAABAQ + AAABAAgAaAUAAE4rAAAAAAAAAQAgAPgWAQC2MAAAMDAAAAEAIACoJQAArkcBACAgAAABACAAqBAAAFZt + AQAYGAAAAQAgAIgJAAD+fQEAEBAAAAEAIABoBAAAhocBACgAAAAwAAAAYAAAAAEABAAAAAAAgAQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/ + /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAczEwNwAAAAAAAAAAAAAAAId3cAAAAAAzc4 + N7gzAAAAAAAAAAAACHd3d4hwAABzeIt7c4tzcAAAAAAAAAh3d3d6p4j4cAN7iLeTOTiYcAAAAAAACHd3 + d3d4t3+Ih3OLeDODg4t7cAAAAAAAB3d3eHh4doj4+Ie3v4s5M4t7gAAAAAAAB3eHhnZ2d4iPiIOIeDl7 + c4iTAAAAAAAAB4d2VlZ3dYiI+Ie5v4t4O5t3gAAAAAAAB4ZXd3d3doj4iIOIiLczl4g7gAAAAAAAB4d3 + ZyV3d4iI+Ie7iIOLe4txAAAAAAAAB4dhdXd3doiIiIOIj7OXM3sbAAAAAAAAB3d3d2dndYiPiIOIuIuL + iJhzAAAAAAAAB4dlY3V3doiIiIi4e3e3k3M3AAAAAAAAB4d3d3d3d3iIiINzgTd7c4cAAAAAAAAAB4d3 + ZWdndoiIiIiDg4iAAIMAAAAAAAAAB3dDd3d3dYiIiIiDt4eAADsAAAAAAAAAB4d3dnV3doiIiIiDd4iA + AHMAAAAAAAAAB4d0NDZ3d3iIiIiDOIeAADkAAAAAAAAAB4Z3d3d3doiIiIeDeYiICDcAAAAAAAAAB4d3 + dldndXiHh4iDN4eIAzMAAAAAAAAAB4d0d3d3doiIiHh3M3iIA3kAAAAAAAAAB4d3d3d3d3h4eIeHMzN3 + MTAAAAAAAAAAB4d2FkNndniHh4h4c3ezE4AAAAAAAAAAB3d3d3d3dYeIeHh4d7lzdwAAAAAAAAAAB4h3 + Z3V3doh4eH54eHiIAAAAAAAAAAAAB3dnd4iIiHh4h4eHh4d4AAAAAAAAAAAAB4iIiIiIiHh3h4d4d3h4 + AAAAAAAAAAAAB/+IiIiIiHh4d3h3h3eIAAAAAAAAAAAAB/j4h4eIhoeHh4eHeHd4AAAAAAAAAAAAB4dn + R2dnd3d4d3d3d3h4AAAAAAAAAAAAB4iHd3d3Z3h3h4aHh3d4AAAAAAAAAAAAB4h3d3Z3dXh3d3h3d3d4 + AAAAAAAAAAAAB3d3d3d3doeHhod3d4Z4AAAAAAAAAAAAB/iId3d3dnd3eHd3d3d4AAAAAAAAAAAAB4h3 + dnR2dYd4d3d3d3d4AAAAAAAAAAAAB4eHd3d3d3d3d3d353d3AAAAAAAAAAAAB4+Ih3d3dnh3d4aHd3d4 + AAAAAAAAAAAAB4dnZ3d3d3d3hnd3d3doAAAAAAAAAAAAB4iIiIiIiHeHd3d3dnd3AAAAAAAAAAAAB/// + +IiIh3d3d3d3d3d3AAAAAAAAAAAAB/j4+PiIiHd3d3d2d3Z3AAAAAAAAAAAAB//4+I+Ijnh3d3d3d3d3 + AAAAAAAAAAAAB/j/j4iIh3d3d3Z3d2d3AAAAAAAAAAAAB/+Pj4+IiHd3d3d3Z3d3AAAAAAAAAAAAB/eH + d4iIh4d4aHd3d3d3AAAAAAAAAAAAB3ZmZCeIiGh3d2d3d3ZXAAAAAAAAAAAAB3h3d4eIiHd3d3d3d3d3 + AAAAAAAAAAAAAIiPiIiIh4iIiIAAAAAAAAAAAAAA/////4B/AAD//4P+AD8AAP/4AfAAHwAA/4AAYAAf + AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAD8AAP4A + AAAAPwAA/gAAAAA/AAD+AAAAAP8AAP4AAAAc/wAA/gAAABz/AAD+AAAAHP8AAP4AAAAc/wAA/gAAAAj/ + AAD+AAAACP8AAP4AAAAI/wAA/gAAAAH/AAD+AAAAAf8AAP4AAAAD/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA// + AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP8AAB///wAAKAAAACAA + AABAAAAAAQAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA + AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAzMzMzMzMwAAAAAAAA + AAAAuLe4t7m4kAAAAAAIh3eHAHubObMzMzAAAAh3d3o2/4C3uLiLe5swAAAIeHd4t4/4e3k7k5NzMAAA + CIh4d3b4j7e4uLizuDAAAAh3dnd3j4h7e5ezOTOQAAAIdnd3dviIt7i4uLe4MAAACIiHh4eIiDlzeTlz + eTAAAAh3d3Z2+IiIe3gAe3AAAAAId3d3dYiIiHg4ADeQAAAACIiHh4b4iIg4OAB7cAAAAAiHd2d3iIiI + e3gAe3AAAAAId3eHdoiHh3iHg7lwAAAACIiIeHeIiHhzi4e3AAAAAAh3Z2d2iHh4h3OXcAAAAAAIiIiI + hYh4h4eIAAAAAAAACP+PiIeHh3h3hwAAAAAAAAj/j4+GiHh3h3gAAAAAAAAI+PiIh4eHd3h4AAAAAAAA + CHd3d3aHd4d3dwAAAAAAAAiIiIh3h4d3d3gAAAAAAAAI+Ijnhod3d4Z3AAAAAAAACHd3d3eHeHZ3eAAA + AAAAAAiIiIeEh3d3d3cAAAAAAAAI+IiId4d3d3d3AAAAAAAACId2d4aHd3d3dwAAAAAAAAj4+PiGh3d2 + d2cAAAAAAAAI//+Ih3d3d3d3AAAAAAAACIh4j4aHd3d3dwAAAAAAAAh2QniHd3d3Z3cAAAAAAAAIiIiI + h4h4iIiAAAAAAP//wAH//8AB/4DAAfgAQAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAMf4AADH+AAAx/gA + AMf4AAAH+AAAD/gAAB/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gA + AP/4AAD/+AAA//gAAP/4AAH/KAAAABgAAAAwAAAAAQAEAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP// + /wAAAAAAAAADMzMzMzAAAACHd4ALi4t7mzAAd3dyp/iDubOTczAAiHh3to/4uIuLOTAAiHd3d/iDk7M5 + NzAAiHeHd4iLi4t7OzAAiId3d/iDc3k3dTAAh3d4Z4iIe3ADtwAAiIh3eIiIeDAHlwAAiHfnd4iIODAH + twAAiIh4d4h4e4eLNwAAiGd3h4h4d4t5eAAAiPj4hoeHdzc4gAAAiP+Ih4eHh4AAAAAAiIiIh4d3eHAA + AAAAiId3d4eHd3AAAAAAiIiIdod3d3AAAAAAiHhod4d3d3AAAAAAiIiId3d3d3AAAAAAiId4d4d3Z3AA + AAAAj4+IhoZ3d3AAAAAAj/j4h3d3d3AAAAAAiGdoh4d3dnAAAAAAiIeIh4eIiIAAAAD/+AEA/BgBAMAA + AQDAAAEAwAABAMAAAQDAAAEAwABjAMAAYwDAAGMAwAADAMAAAwDAAAcAwAB/AMAAfwDAAH8AwAB/AMAA + fwDAAH8AwAB/AMAAfwDAAH8AwAB/AMAAfwAoAAAAEAAAACAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A + /wD//wAA////AAB3d3MzMzMwAIeHiLi3uTAAiHhzt5M7MACIiIi4u3eQAIeHgzsXmzAAiIiIdwA3AACI + johzADcAAIiIh3e3NwAAh3Z3d3NwAACP/4+HAAAAAI+Pj/cAAAAAh3d3dwAAAACP+PiHAAAAAI//j4gA + AAAAiGYGiAAAAACIiIh4AAAAwAEAAMABAADAAQAAwAEAAMABAADAMwAAwDMAAMADAADABwAAwD8AAMA/ + AADAPwAAwD8AAMA/AADAPwAAwD8AACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAB + AAAAAAAAPj46AEA9PABBQT4ADDtRAA9BVQANRFwADUhgAABIagAYSWAAC1FvAB1UbwAHVnYAElt6ACZP + YgATYH8AM2J2AEhFQwBRTk0AV1NNAFVSUQBZVVIAXFhVAF5bWQBgWU8AZV5VAHRoRQBpYFUAZWFdAGtk + WwBxal8AZWNgAGllYgBuaWQAbWpoAHJsZwB6cWYAdXNrAHp0awB3eG8AeHhvAHVzcAB8dXAAe3tzAHx8 + egCFe2wAg3tzAIl/cQCCf3oAin95AH+AdgAO8U4ADexdAI2AbwCRh20AgIB3AI2BcwCDg3wAi4J7AJCE + cgCQhXsAk4l8AJmOfwAKX4EAE2KEAB9ohgASZ4kAFWmLABdukQAUcpUAG3KVABx3mgAcep4AIGeFACdu + jwAlcI4AJXOTACF3mgAkepsAKXyeADFzkAA8d5IAP3iQACR+oABId4wAW3WCACWAowArg6QAJoesAC6I + qgAyhKQAMYeoADOKqwA5jKwANI6yADqPsQAskroANJCzAD2StAA9mbsAXYqcAHiDhwBhhpcAZomYAHaU + nQB/kpwAToqiAFyNoQBLkKsAXZGmAEKUtQBBmLcASpi2AEGWuABEmrsAUZq3AHSWowBUoL8Ac6C1AH2n + uAB2qb4AZ/S4AEKdwQBKn8AARqHEAEyixABNqcoAUKXFAF2pxgBTqssAWK3OAE+u0ABYr9EAUrPXAFux + 0QBbtdgAWbncAGGqxwBgrswAca7FAHO0zQBgtdUAbbXRAGO41gBjutoAarzcAHK61QA98tUAc8DeAGbE + 5QBtwuIAccXlAHzG4AB2yOcAe8rmAHTK6QB6yukAhoWAAImGgQCLi4MAjo2JAJKLgwCajoQAkI6KAI+Q + hwCTkYYAnpOFAJOSjACblYsAnZiMAIWXmwCVlZEAmZaQAJqakwCTnJwAnp2YAKCThwCgmYQAoZaNAKWf + jwChnZcAo6GWAKqilACjo5wAqqOeALSsmwCNo6oAmqWmAI6wvgCZsbYAq6qkALGqowCwragAqbCtALOy + qwC5tasAqrW2ALW1sQC7tbEAt7ixALu7tACwvLoAvby7AMG1rwDBvLYAtsG/AMXEugDRzLkA1dC9AI6w + wACcvcsAtcfPAITO6gCP0+wAmtftAJrY7QCD1fQAkNv3AKjd8gCU4fwAoeL7ALfl9wC55fUAs+r9AMXF + wgDJxsAAzMvDAMTOygDNzMoA0M3FANTRwgDZ1cQA29jGANPTywDY1s0A29nMANLR0ADb29IA4N3PAOHe + 1QDf4NcA5OHUAOzo1ADk49oA6OnfAPLw3wDC6/sAzvH/AOfp4ADq7OIA7e/oAO/x5gDy8+oA6/v/APT2 + 8QD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdlELCQQFB2kAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAADGPRu3pwAAAAAAAAAAAFBMU2F6fGGHg0AQAAAAAAAAAAAAAAAAAAAAAAAAAMM9PKam + phvI7SwAAAAAAFRAXdaZfYF9elqBkX5gZgAAAAAAAAAAAAAAAAAAyKGhODg9PS40Mx3A7fm3KQAASYSR + ld+AXFdGQj9ihl2FdAAAAAAAAAAAAAAAAMalMTwxOz0+PSp5kx3A7e306SllYpmEftaAXGJ7e2KUnHpY + ZwAAAAAAAAAAAAAAAJ06MaGiPD6mprCiphvC7e3t7fS7Yn2GlveOel1XTkN6f1qIvAAAAAAAAAAAAAAA + AJ2sobCwsDocFiAqoR3C7e3t6u3jXZaRh9p1TlxcXVySnFdFAAAAAAAAAAAAAAAAAKO/oSkgFQMSHSY4 + OxvC7ent6em7eoKCkfaSfYF9YlqBj2J80gAAAAAAAAAAAAAAAKO4EhYqKjE4oT0wPB3C6enp6enJXJvY + 1fZ1Tk9ORkaKkUNh0gAAAAAAAAAAAAAAAKW4LjwxIRcVFiAmOh3C6enp6eKuf5aIiN6SfYGBf3+amWJF + AAAAAAAAAAAAAAAAAKO4KRQREyExNTg7PBvC6eXl4uXNWZnU3v2AXFpPTE59gUVeAAAAAAAAAAAAAAAA + AKO4KS4xPC4cFxwjOh3A4uTl5eGuY9nc29+cgZGWm49cf31IAAAAAAAAAAAAAAAAAKO4KiAWFBUbIy04 + OxvC4uLi4uLEkdiManuNgYSBfQxVDk5iAAAAAAAAAAAAAAAAAKO0KSouNTg7oaE6oRvC4uLizs7NYWIN + dwhcYn2BYgzTbQAAAAAAAAAAAAAAAAAAAKO/MTEqHBYWHCAqOhvC4ODgzs7Ozr1amFC6wb4AAACLYgAA + AAAAAAAAAAAAAAAAAKW4IBMUHCotNTs7OxvC4MzMzs3IyMhOg2mvr8gAAABiXAAAAAAAAAAAAAAAAAAA + AKO4MTE8OCojISMmOh3AzMzMyMzMx8hHYnTCwcIAAABaVwAAAAAAAAAAAAAAAAAAAKDAMSMUAhIWISo1 + OBvAzMzIyMfHx8dGV3THwsIAAABMUwAAAAAAAAAAAAAAAAAAAKC4KioqNTg4Ozw8PRu+yMjIx8fHwsIN + WWvCwsLpANFORgAAAAAAAAAAAAAAAAAAAKDDsjEqIBwcGyMmOhvAx8fHwsHCwsINU13CwL7kAEpORAAA + AAAAAAAAAAAAAAAAADyvHyAgIyQtLTg4NRu+wsLBwsLAwMBMQVlrvr7lAApMTwAAAAAAAAAAAAAAAAAA + AJ/GtKIxMTgqKiouMRu+wcLCwr7Avr6qDEtXUqprQAZHAAAAAAAAAAAAAAAAAAAAAJ/MoyoWERETFiMu + OBu+wr6+vr6+vr6+akVcX2xTCkBzAAAAAAAAAAAAAAAAAAAAAJ+jMTAxLjg4ODg4OBe4vr6+vre3t7W1 + t2taf3BBQHgAAAAAAAAAAAAAAAAAAAAAAJ3GuKMjFiAcICoxsB6+vr6+t7e3t7W3ra21ta3gAAAAAAAA + AAAAAAAAAAAAAAAAAJ8xIiMwo7TDzOXl5bi3t761vrW1ta6tta2tra3IAAAAAAAAAAAAAAAAAAAAAAAA + AJ/p6+XOzs7Ozs/P4bW3t7W3ta61ra2tra2trazIAAAAAAAAAAAAAAAAAAAAAAAAAJ318efPzs/Pz+Xi + 5bW3tbetta2trKysrKynrKfHAAAAAAAAAAAAAAAAAAAAAAAAAJ318u7OubWsrLS4wqa3ra2vraysrKyn + p6enpKTFAAAAAAAAAAAAAAAAAAAAAAAAAJ3gsCUcEhMWICktMRe1ra2traynp6ekp6SkpKTEAAAAAAAA + AAAAAAAAAAAAAAAAAKPCwLi1PDs4NTY2NRi3ra2sp6enpKekpKSkpKC+AAAAAAAAAAAAAAAAAAAAAAAA + AKPixrShKiMjIykuMRutraesp6ekpKSfn5+fnzDAAAAAAAAAAAAAAAAAAAAAAAAAAKCnPJ0xMCYkKjU1 + NRetsK2kpKSkn5+fn52fnZ2+AAAAAAAAAAAAAAAAAAAAAAAAAKDt5cjAtqI7ODg6NRutpKekpKSkn5+d + nZ2dnTK+AAAAAAAAAAAAAAAAAAAAAAAAAJ3gwKMxKSAXHCEqOhetp6eko5+fn52dnZ0ynTK3AAAAAAAA + AAAAAAAAAAAAAAAAAKC3r6+vp6E4LS04NRutp6SjoJ8wn52dMp0yMjK3AAAAAAAAAAAAAAAAAAAAAAAA + AJ3t7eXMwKY9LjE1LRinpKSgnZ+fOTkyMjIyMjKtAAAAAAAAAAAAAAAAAAAAAAAAAJ3AnSkiICMpMKCm + rR6npKCdoJ05OTKdMjIyMiutAAAAAAAAAAAAAAAAAAAAAAAAAJ3gyODi5eXPz8/Pz7OnoKCfnTkynTIy + MjIyKyurAAAAAAAAAAAAAAAAAAAAAAAAADD+/vz59Ovr5+fPz62koJ+dnZ05MjIyKzInKyWkAAAAAAAA + AAAAAAAAAAAAAAAAAJ38/Pr09Ovr58/Qz6akoJ+fOTk5MjIyJycrJSegAAAAAAAAAAAAAAAAAAAAAAAA + ADD+/Pz59O3r59DQz6ikoJ2dOTk5MjIrMicnKyWgAAAAAAAAAAAAAAAAAAAAAAAAADD+/Pz69PTr6Ofn + z6akoJ+dnTkyMjIrJysnJSWgAAAAAAAAAAAAAAAAAAAAAAAAADD+/vr07fTx7ufPz6WnnZ+dOTk5MjIr + KycnJyWfAAAAAAAAAAAAAAAAAAAAAAAAAJ36ubGxpqe+5fHrz62lpJ+fnTk5MjIyKysrJSWgAAAAAAAA + AAAAAAAAAAAAAAAAADA4GhgRAQEDHL7v562loJ2fOTkvMjIrJycnJyU5AAAAAAAAAAAAAAAAAAAAAAAA + ADCxs6Slo6Snr8DgzrWloJ+fn52dOTedMJ85nZ+uAAAAAAAAAAAAAAAAAAAAAAAAAADq7OXs5ePjysjG + wsC3wMHHyM7iAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////4B/AAD//4P+AD8AAP/4AfAAHwAA/4AAYAAf + AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAD8AAP4A + AAAAPwAA/gAAAAA/AAD+AAAAAP8AAP4AAAAc/wAA/gAAABz/AAD+AAAAHP8AAP4AAAAc/wAA/gAAAAj/ + AAD+AAAACP8AAP4AAAAI/wAA/gAAAAH/AAD+AAAAAf8AAP4AAAAD/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA// + AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP8AAB///wAAKAAAACAA + AABAAAAAAQAIAAAAAAAABAAAAAAAAAAAAAAAAQAAAAEAAAAAAAA+PjwAQUA9AFNOQwBjW1EAYV9aAH1w + TgBkYVsAaWJYAGpkWgBsZVsAa2RcAGxkXABrZmEAaWlnAG1qZgBxcWcAcnJoAHRxaQB1cm0AdnduAHhz + bwB6dG0Ad3hvAHt3cgB5eXEAfnhxAHx8cgB8eHUAfX11AIF7cwCDfHMAgXt1AIJ8dACEfnUAgX55AIR/ + eAAAzEYAE+5RAICAdgCBgnkAhoB5AIGBfgCGgn0AhYV9AImCeACIg34Ai4V+AI2FfQCIin4AkYd7AJCH + fQCQiX0AlYl+AJaMfwA+epsAAXimAEdzjwBTdo8ARXSSAE59lwBEe5sAVXeQAFJ6kgBWeJEAUXyXAFN9 + mABbfpgAF4y5AByRvgBWgJgAXYObAGKFmgBIiakAWZOuAGyQpwB7l6oAdZmuACzTuABV0pwAEJ3YACCV + wgAil8QAJJnGACmdygArn8wALKDNADCk0QAzp9QAM6vXADWq1gAzrNkAOa7aADSx3AA7sNwANLThAD+0 + 4ABOsNIAbbHJAEO45ABFuuUAR7znAEm+6QBrwt4AS8DrAEzB7ABRxfAAVsv1AF7T/QBtx+MAZMjmAGTI + 6ABzy+QAYNX/AGTV/wBo1v8AhYaBAIiGgACHiIEAiYmBAI2IgQCMjIMAjYmFAI2NhQCOj4oAkYqBAJGN + hQCYjoAAn4+FAJCPiACPkYoAm5GCAJyRggCbkYUAnZKEAJOTjACYlIwAnZmPAJeXkACZl5MAmpqTAJ6d + mgCglYYAopiJAKSajAClnI4AoZqSAKadkQChnpYAqZ+SAKCfmQCpoJIAqaGVAK6klwChoJoAoqOcAKWl + nQCqopgAraWZAK2omwCwp5oAta+bALGpnQCUn6IAl6KlAKWloQCrqqQArq6qALGqoQCwrKMAtq2hALCs + pQCyr6kAr7CoALiwpQCxsaoAtrGoALCwrgC1s60As7SvALW1rgC7tKgAvrisALW0sgC4t7AAubmyAL65 + sgC5ubQAvLy0ALy8uQDAuq8AwLqwAMS8sgDDvrcAxb60AMC/vADHw7cAzMaxAMHBuQDGwbkAwsG8AMTE + vQDJxLoAzcq9ANDLtwDExMEAyMfHAMjIwADNysEAysnGAM7LxADOzMQAzM3KANHOxgDQzskAztDGANXS + xgDb1cMA09HIANXRyADS0s4A09TMANfXzwDe28wA1dbSANjY0ADd2tEA29zSAN/c0QDY2tQA3d7WAN3d + 2QDi388A4t/RAOXi0wDo5dYA5ODZAOXm2wDi4dwA5uXcAOvn2QDr6dkA8e7eAOXl4ADn5+QA6erkAOrs + 5gDu7uQA9fLiAPj15QDw8eoA9vjxAPv58AD///cA///6AP///wAAAAAAAAAAAAAAAAAAAAAAAAA4ODg4 + ODg4ODg4ODg4AAAAAAAAAAAAAAAAAAAAAAAAAGhoZmRkZGxgVlZWYDgAAAAAAAAAAAAAx556NAT6KgAA + WFhTU1JRWkQ4ODhFOAAAAAAAAMGYMjI0gCUmCvv9mgBoaGhmZGRxYFZWVmA4AAAAAAAAwXqShYV/T04K + 9e/971hYVlVVU1xEODg4RTgAAAAAAAC+taKYj4WFNAj14uHWaGhqaGZmcWBWVlZgOAAAAAAAAMGSMBoW + EhotCvPh3sdYWFhXVlVeRDg4OEU4AAAAAAAAvg8WIS00f4AI793dvGhoa2poaHNgVlZWYDgAAAAAAADB + vrWekY6EhAjv09evODg8PDw4ODhAQDs4OAAAAAAAAMGokn0hISEtCufTz8+vmkFvQNMAADtbPQAAAAAA + AAAAxBoVITAyNIQI4s/Dx8/HQW9A0wAAO1s3AAAAAAAAAADTxL6omJGOhAjhw7y8u7xBb0DPAAA7WzcA + AAAAAAAAANOoiDAhISEhCuG8u7uvt0ZuR8cAAElfQwAAAAAAAAAA0xV1en2FhYUK3Luvr6+vSG1iTUxK + XVBLAAAAAAAAAADa0MG1opWPhQjWr6+tpqakQWdwZ2FQQQAAAAAAAAAAANN9FRYVFSF9CNOnpqWlpaWk + SEA6QEsAAAAAAAAAAAAA06zHxMrZ08oIz6aapaWUlJSWrwAAAAAAAAAAAAAAAADQ+fjx6OHZyg3DmqWU + lJSMjIymAAAAAAAAAAAAAAAAAN35+PHo6NjLDbyalIyMioqKiqYAAAAAAAAAAAAAAAAA0Pn48uvh2csN + vJSMioqHgoKBmgAAAAAAAAAAAAAAAADQjC4qMCoqNAi8jIqCgoKCeoKUAAAAAAAAAAAAAAAAANCvwa+o + opiRCLuKgoGCNDF6LIkAAAAAAAAAAAAAAAAA3eLaxMK1oJcKu4KCeiwxMSosigAAAAAAAAAAAAAAAADT + i4h6KTAwfQi3gnqCLDEqKieHAAAAAAAAAAAAAAAAANOspqisqJ6SCLd6MSwsKicnG4EAAAAAAAAAAAAA + AAAA2uzi2sTBqKANrzF6LCgbKhsbggAAAAAAAAAAAAAAAADQm3wuKjCIiQinMSwqKicbGxQsAAAAAAAA + AAAAAAAAANr05+fi2dnFBacxLigbGxsUFSwAAAAAAAAAAAAAAAAA2v//+vro2cUFpjEuKCgbGxkRLAAA + AAAAAAAAAAAAAADQ6KKirNnvzAWnMS4oKBsZFBEsAAAAAAAAAAAAAAAAAN0GAwIBDtrZCKYxMSgZGxQU + FCwAAAAAAAAAAAAAAAAA0cHBw723t7eNo6WlscPDz9bPAAAAAAAAAAAA///AAf//wAH/gMAB+ABAAfgA + AAH4AAAB+AAAAfgAAAH4AAAB+AAAx/gAAMf4AADH+AAAx/gAAAf4AAAP+AAAH/gAAP/4AAD/+AAA//gA + AP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAf8oAAAAGAAAADAA + AAABAAgAAAAAAEACAAAAAAAAAAAAAAABAAAAAQAAAAAAAGNfWABcclcAa2VeAFprYQBycmkAc3FtAHV1 + bQB5eG4Af3ltAHp6cQB6enQAfn51AINtYwCCemUAg3pvAIF7cgCFenAAg310AIR9dACBfngAhH94AA66 + LAAA/z4AgIB3AIGBeQCFgnkAhIR7AIWBfQCFhH0AiYF5AIiEewCNhXkAiIF8AImFfQCOh34AiIh+AI6I + fwCRh3oAlYt7AJCJfQAaYoMAGmiKABpxlgAadp0APnqbAAF4pgAaeKAAR3OPAEV0kgBOfZcARHubAFV3 + kABSepIAVniRAFF8lwBTfZgAW36YABqCqwAahK0AGoq1ABqLuAAajboAVoCYAFmAmABdg5sASImpAFmT + rgBgh6AAe5agAHWZrgAA1LIAQ8mLABqUwwAQndgAIpzKACSezAAqo9IALabVADOr1wAwqtgAM6zZADSx + 3AA0tOEAPbfkAE6w0gBtsckAQrzpAEW/7ABrw98ARsDtAEjC7wBNyPQAUMr2AG3H4wBkyOYAZMjoAHPL + 5ABn4v8AaOP/AI2HgACJiYEAjYiCAI6JhQCNjIUAkIqCAJGMhQCVjocAkY+IAJuQgQCRkYkAl5CIAJWR + jgCVlY0AmpOJAJyTiACclIkAnJaNAJiYjwCfmY8Am5eRAJiYkQCamZYAnJqWAJ2dlgCdnpgAnZycAKWP + hQCli48AoJaJAKGYiwChm48ApZuOAKadjwCgkZAAoZqQAKSbkACinZIApJ+ZAKqhlwChoJoApKObAKKi + ngClpZ4Ar6edAICbpQCjo6MApqagAKmnoQCqqaMArqmgAKqqpACtraYAra2qALGqoQC1raIAsq2lALCv + qwCvsKkAr7OtALizogCxsKgAtrCoALS0qwCzsqwAtbStALy2qwC4tK4Av7esALOxsAC2tbEAubmyAL26 + sgC+u7UAvr62ALm5uAC9vbkAxL6pAMS+rQDAurEAxL2zAMO+tADEv7UAwL+9AMbAtgDDw7sAxsK4AMfE + ugDDw7wAxMO9AMXFvADLxbsAysW8AMzHvQDPyrkAyci9AM3LvwDRzbwArcjVAMTGwgDKx8AAysjBAM3K + wgDJycQAy8zEAM7PyQDQzcAA0M3EANTPyADP0MoA09DHANPRyQDU1c0A2NTJAN/czgDT1dEA19XRANnZ + 0gDb29YA4N3PAObY0ADt2tMA5OHVAOvm0wDg4NoA5OPbAOfn3wDq6N0A5+bhAOno4ADs7OIA9vTjAP7+ + 7gD49fMA+fjzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAuLi4uLi4uLi4uAAAA + AAAAAKx1EQLHAABdXFxjWFBQPUsuAAAAdXV1CQ0WFwTp5Y5NS0xUSTo6KiwuAAAAs4p1g39IRwPh5eVa + WltiWE1QPUsuAAAAs5xpEREfEWbh2aw9PD1NOi8vKSwuAAAAwJZpd4mDbSXZ1KVaWltjWE1QPUsuAAAA + urOciSggDyDZzK4uMjIyLi41MjAuAAAAwJwfZGl1JiDXuse6N2A2AAAxTzMAAAAAuMCmkIltIGTNsKur + N2A1AAAxUC0AAAAAuqVkaWt1IB/LqqWlP19BAABCUzkAAAAAuLqlnIuDKB+6npaYP15WRkNSSkQAAAAA + uqZkIGSGgCCwl5eOkTdZYVVKN8YAAAAAs83Z2dzDnhyrjn19d5E1NjVExgAAAAAAs97o593DnyCqd313 + eXF9AAAAAAAAAAAAuNXc1MW6nxyYeXlxcXFxAAAAAAAAAAAAuKVxbGtrIByWeXFoaBxxAAAAAAAAAAAA + s9LSwKacbR+ScWhoHGhoAAAAAAAAAAAAwKx3eWZrZByOaB8dGwwkAAAAAAAAAAAAwMy3t7ObghF9aBsb + GwsfAAAAAAAAAAAAzMCdiniJdRl9HxsbCwsMAAAAAAAAAAAAz9jX1MPFoAt9HxsLCwcLAAAAAAAAAAAA + 0uTp5ePfsQt9HxkLCwcLAAAAAAAAAAAA1LEOAQfIxQt3HQsLBwUHAAAAAAAAAAAA1KyUkn2qrHeSkp6q + r7C6AAAAAAAAAP/4AQD8GAEAwAABAMAAAQDAAAEAwAABAMAAAQDAAGMAwABjAMAAYwDAAAMAwAADAMAA + BwDAAH8AwAB/AMAAfwDAAH8AwAB/AMAAfwDAAH8AwAB/AMAAfwDAAH8AwAB/ACgAAAAQAAAAIAAAAAEA + CAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAMzMxAFxOJgB3cWoAeHJpAHhzbwB9dm4Ah31uAIJ7 + cgCFfnYAiH9yAIF/egCKgXYAjIN3AI+EdQCOhnwAlIl6AJqPfwAad58AAXimABZ9pAAaeKAATXCKAE5y + jABKdI8AX3aEAFh+lwAagqsAHoOoABqErQAai7gAGo26ADmdvQBuhZQARJKsAEmftgBQobcAGpTDACWf + zQAqo9IALabVADCq2AA9t+QAQrzpAEW/7ABGwO0ASMLvAE3I9ABQyvYAZ+L/AGjj/wCKhoEAlIyDAJ+W + hgCmnI0Aop6YAKqhkwCto5YAraSXAKqimACwp5kAsqiaALSqmwCzqpwAtqyeALSsogC4r6EAtrCmALqw + ogC8s6UAvbSmALqzqgC/tqgAu7WtALy3rwC/urMAwbepAMK5qwDEuqwAxr2vAMG8twDIvrAAwb24AMnB + sgDEwLsAxsO/ANPNuQDGw8AAyMbCAMrIxgDMysgA4NvKAOHcywDk384A6OXUAOrn2gDs6N0A7ergAO7s + 4ADw7eMA9fPpAPX16gD29OwA+PfuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + GJoAAAAwDUhjJCBnhf9Yr9H/YbnZ/2bE5f+x6Pv/YarH/zKJqv8tg6T/HHSV/xVpiv8KX4H/QJK0/16z + 0v84jq//UrPX/zFkfa4AAAA9AAAAOgAAACkAAAAXAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABzcW6BdWtiwouAef+Ngnz/i4B3/46Edv+Vi33/l4x9/5OJff9+dXD/Z/S4/z3y1f9rY1j/sK2o/93d + 1f/d3dX/5OPa/9PSy/9dXlzYBxsjikaWtv9wxub/XLLS/0ypyv+a1+3/XKrH/zSLrP9Albb/R5y9/0ec + vf9BmLf/c8De/3rL6v9Fm7z/Joes/xpOZaoAAAA8AAAANwAAACcAAAAbAAAADQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACEg3//fXRu44p/ef+ViYP/louC/5OIe/+Zjn//n5OE/56Thf+flon/nI6F/6CT + h/9pYFT/sa+q/9vc0//b29L/29rR/93d1f/n5tv/mKSl/DqRsv9Ppcb/WbDQ/3DE5P/O8f//bbXR/0CY + uf86j7H/LoSl/yR5m/8SZ4n/QZm6/1KoyP8vhab/Wrjc/z96kpYAAAAgAAAAIAAAABIAAAAJAAAABwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhID/g3pzyZOIgv+dkYr/oZaN/56Vi/+Ignv/ZmJe/1xZ + V/9nZGH/fHZx/5KLgv9vZlv/srGr/9vb0f/Z2tH/2dnR/9jYz//Y2M//xM7K/ziOr/9swuH/ab7f/1y1 + 2P+o3fL/VKC//yd/oP8yh6n/NImq/zeMrv82i67/brzZ/3rK6f8pgKH/FXSX/2WmwmkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjor/kIR7s4+Ff/94cW3/amZl/1ZT + VP9EQkL/T0tI/2tlXf9+dWr/i4Bw/5GFcv9oX1P/tLOt/9jZ0P/Y187/19bO/9fWzf/S0cr/nKam/0Wa + vf9Yrc7/WKzO/2m/3f/C7Pz/dLvV/0ujxP9TqMr/S6HC/z+Vtv8vhKX/Vq3N/2C11f9Blrj/QJ3C/z5+ + mIMAAAANAAAACgAAAAQAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjor/hn15tVJP + T/9dWVf/enJs/4J4a/+LgHH/joN0/5SMgP+PiYD/hoB6/42GgP9tZlz/tLKr/9XVzP/V1c3/1dPL/9XV + zP/R0cr/sLy6/zKKq/90yun/gdPy/4/T7P/D6vr/Up68/yR8nv8nfJ3/Inma/x1zlv8edJf/YK7M/2m5 + 2P8Vao3/MY6y/0mGoYcAAAAQAAAAHwAAABMAAAAJAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACQjon/kIR+u4R5dP+QhH7/iYB6/3BqZf9fXFn/WFRS/1tYVP9rZmH/eXNr/4uDeP9qYVf/s7Gs/9LT + y//T08v/0tLK/9HSyv/MzMT/lZ+e/1Cmxv9tw+L/YLna/1i63f+35ff/cbrV/0qiw/9Vqsv/VarL/1Gm + x/9Oo8T/esnm/3bI5/8/lbb/E3CU/3q51WQAAAAAAAAAAwAAAAcAAAAFAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACPjor/loyDxHVva/9WUlD/SUVE/1ZRTv9yamT/iX9y/4uAcf+Og3T/j4R2/5KH + ef9pYFT/s7Gs/9HRyf/Q0Mn/0NDH/8/Pxv/MzcT/ucK//y6Jqv9wxub/hM7q/7nl9f/r+///XqjF/zGJ + q/8xh6j/KH2e/x91lv8hd5r/S6LE/1SrzP8XbpH/NJCz/6jh+mEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjor/koiCy3Zva/+HfXf/jIF4/5CHfv98dnH/ZGBd/19c + Wv9hXlz/c29q/4yEff9rY1j/s7Gr/87Oxv/Ozsb/zM3E/83NxP/Gxr//kZqb/z2Zu/+Q2/f/oeL7/5Th + /P+27f//fcvn/1Srzf9nu9r/bsPj/3XK6v9juNb/OIyr/0+kw/9Opcf/HHqe/4e/2GUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjon/nJCJz352cf9pZGP/W1hW/1RR + T/9dWVT/aGFb/3hwZv+Eemv/jYFv/4+CcP9nXlP/srGr/83MxP/Ly8P/ysrC/8nKwf/Hx8H/qrW2/2q+ + 3/+G1/f/c7TN/0+LpP9JmLf/XrfY/1WrzP9Zr8//U6jJ/0uixP8FWHn/W3WC/yZPYv8fd5n/PpW3/4i/ + 1mwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOjon/k42H1nNs + af9/dXH/hnpz/4uAcP+Pg3P/j4N0/5KKf/+QiYD/jIV//5SNhP9oYFT/srGr/8nJwf/KycH/x8fB/8bG + v//Fxr//tMC//zePsv87kLL/Flx6/32nuP8ASGr/MIms/z+Vtv9Kn8D/VKrL/zyStf8AV3n/tcfP/12R + pv8FWHkoAExvLG2kvAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACOjon/p5uS3ZGFf/+LgXz/d3Ft/2ZhXv9dWlj/WldU/19cWf9taWT/fXVv/4yDef9pYFb/s7Ks/8bG + v//Gxr//xcW+/8TEvP/Dw7r/wsK6/8LBuv+Zsbb/M4Wl/3zG4P8ydJD/jaOq/6mwrf+qqaX5X2BgVwAA + AAwPQ1tHca7F/z+QsP8AAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACPjor/npWP4mhkYf9RTUz/WVRR/2VeWf99dGj/iX5t/46Ccf+QhHP/kIRz/5GF + dP9oYFb/srGr/8PDvP/Cw7z/wsG5/8DBuf/AwLj/wMC3/76+t/+9vbf/Inia/1Otz/93k5v/nZyY/52c + mP+9vbX9uLm6bQAAAAEYUmxBRZa0/zKLr/8AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOjon/pZyW6IyDfv+Ognz/kIR6/42DeP+AeHH/cmxo/29q + Zv9xbGj/eHNt/4yEfP9pYVf/sK+p/8DAt//AwLn/vr62/769tv+9vbX/vLy0/7q6s/+6urP/HXSW/zyW + t/91lp//t7ev/6+vqP+1s63/nZ2eagAAAAAeXHpANIOi/ymCpf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNjIf/rqSe7YmBff9vamj/VFFQ/0A9 + PP9PTEn/XVlW/29oYP+Ad2v/iX5v/42Bcf9nX1P/sK+q/76+tv+9vbb/vLy0/7q6s/+5ubL/uLiy/7e4 + sf+3t7D/G3GT/yqEpf93l6H/tbWv/7OzrP+zs6z/vLm0dAAAAAAiYH09JXOS/yN9oP8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNjIj/oJqX73hz + cP98dHD/gXdv/4l+b/+NgnP/jYJy/46DdP+Qhnr/kId9/5KJfP9oX1T/r62o/7q6tP+6urP/ubmy/7e3 + sf+2trD/tbWt/7W1r/+0s6z/EVx8/yqGp/9djqL/srKq/7Kyq/+xsan/p6ajgAAAAAAlZ4aEJXiY/xpx + lP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACMiof/vrKr8p2Tjf+Kgn7/d3Ft/2xoZP9jXlv/X1xZ/2djX/9vamX/eXRt/4yDev9oYFb/rKun/7e3 + sP+3trD/trWv/7W1rf+zs6z/srKq/7Kxq/+xsar/EFp5/yeAov8+ja7/rq+n/6+vp/+traX/paWgiAAA + AAAhaoz3JXyf/xlwk/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACKiYb/nZeT9mdjYP9oZGH/bWdj/3FqYf98c2f/g3lq/4Z8av+MgG//j4Jw/46B + b/9mXVL/q6qm/7O0rP+0tK3/s7Kr/7Gyq/+xsKn/r6+o/62vp/+trab/MHOS/xZkhP8viKr/X4ud/6uq + pP+qqqL/paSfjzB1mHoLUW//JXCO/yp8nv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJiIX/u7Ku96Sak/+bjof/koV8/46Dd/+Lgnj/gHly/3l0 + bf98dXH/f3lz/4uDev9pYFb/qqql/7Kyqv+xsar/sLCo/7Cvp/+traf/rKyl/6uqpP+qqaT/g5id/wxX + d/8kc5L/KIKk/z94kP+Hl5n/Q3qT3BNgf/8NRFz/Gneb/yxykXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIT/v7mz95OOi/92cnD/X1xa/0VC + Qf9EQUD/VFBO/2FdWf9ybGf/hH1z/42Cdf9pYVf/qaml/6+vp/+vraf/rKym/6urpP+qqqP/qami/6io + oP+np5//p6eg/06JoP8ZdJX/NIut/zyQsP9LkKv/JIGk/w1Vcf8UYoL/NIam2zBykAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4T/k4+L+oN/ + fP+Gf3z/g3pz/4Z9b/+MgXL/jYFy/42Ccv+OgnL/joJz/4yAcP9lXVL/p6ai/6uspf+rq6T/qqqj/6mo + oP+op5//pqad/6Wlnv+lpZ3/o6Oc/6OjnP9biZv/MYWn/1ClxP9MmLb/H2iG/xVjhf8vfJ2nLnqcAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACGhYL/vbax/qykn/+QiYX/cm1q/2FdWf9lYF3/Y19d/2lmY/93c3D/hoJ+/5qUjP9xal//p6ai/6io + ov+oqaL/p6af/6amn/+kpJz/pKSc/6Kim/+goJr/oqCZ/5+emP+fnpj/n56Y/5+emP+cnJb/nJuYnQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACJiIX/hYF+/2lmY/9xb2n/gH95/46Mhf+joZn/uLar/8bEuP/OzMD/0M7A/9LR + w/+lpJn/pqWg/6amnv+mpp//pKSd/6SjnP+iopr/oJ+Z/5+fmf+dnZf/nJyU/5yclP+cm5P/m5uU/5ub + k/+ZmpP/mpmWpQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIh4T/29jH/9zYxf/U0cD/ysi4/8bEtf/Hxbb/x8S4/8bD + t//OzMD/zcu+/83Lvv+in5X/pqWf/6Ojm/+ko5v/oqKb/6Cgmf+enpj/nZ2W/5yclP+bm5P/mpuS/5qZ + kv+ZmJH/mZmR/5mZkf+Xl5D/mZmTqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIh4P/8vDf/+fj0P/Z1sP/zsu7/8jF + t//Hxbb/zMq8/83Kvf/OzMD/y87B/9HPwv+joZb/oqCc/6Cgmf+gn5n/n5+Z/52dlv+cnJb/m5uU/5mZ + kf+ZmZH/mJiQ/5eXj/+XlpD/lpaP/5aWjv+Tk43/lpaRrwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhIH/8/Di/+zo + 1P/f28n/xsO2/7WzqP+jopn/m5qT/52blf+gn5j/pqSd/7azqf+Xk4j/oKCb/52dlv+enpf/nJyW/5ub + k/+ZmZH/mJiQ/5eXj/+Wlo//lJSN/5KTjP+Skov/kpKL/5OSjP+QkIn/k5OQsQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACEhID/xMG4/5mWjf92c3D/XVpZ/1FOTP9XUk//XllU/2plX/92cGj/hH1y/4uAc/9oYFf/n5+b/5yc + lP+bnJT/mpqT/5iXkP+Xlo//lpaO/5OTjP+Rkoz/kpKK/5CQiv+RkIn/kI+J/5CPif+NjYX/kpKPtQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACNjYr/t7Ot/7GtqP+vqaX/pp2U/5aLff+Og3L/j4Jw/4+Ccf+Qg3H/kYRy/4t/ + bP9lXVP/np6Z/5qZkv+amZL/mJeQ/5aUjv+UlI3/kpKL/5CQif+QkIn/jo6H/46Nhv+Ojob/jY2F/42N + hv+Li4P/kJCMuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMjIj/zcrD/7m1sP+gnJn/j4qF/3x2cf9ybWj/b2ll/3Fs + Z/92cWz/gXp0/4uCd/9nX1b/nJuW/5iYkP+Yl5D/lpaO/5OSjP+Skov/kJCH/46Ph/+Ojob/jIyF/4uL + hP+Li4P/iouD/4qKgv+Hh4D/j46Lvo6NiwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKiob/mZaS/4eEgP+Gg4D/hYF9/4F8 + df98dWz/enNo/392a/+EfG//in9x/4uAcf9lXVP/nJuX/5aUjf+Wlo//k5OM/5CQiv+Qj4f/jo6G/4yM + hf+Li4P/iouD/4mJgf+Jh4D/iYmA/4eGf/+FhX3/jo2Kwo6MiwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKiof/29jQ/9DL + xP/Cvbb/s6yl/6qilP+ZjoD/j4V3/42Ddf+OhHf/j4V3/4uAcf9nX1T/m5qU/5SUjf+UlIz/kZGK/5CP + h/+Ojof/i4yE/4qKgv+JiYH/h4eA/4eHgP+Ghn//hYV+/4aFfv+Dg3r/jIyHxoyLiQMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACKiYT/ycbA/62qpv+Sj4z/g4B9/3Jva/9oZWH/X1xa/2RgXf9vaWb/enVx/4uDef9nX1b/mpmT/5KS + jP+SkYv/kI+H/42Nhv+LjIT/ioqB/4mHgP+Hh4D/hoV//4WFfv+EhH3/g4N6/4ODfP+BgXj/i4uHzI2L + iQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACJiIT/p6Se/5+cmP+fm5f/oJyY/5mUjP+Si4D/i4F0/4Z8bP+HfW3/jYJy/4l9 + bP9lXlT/mJiS/5GQif+Pj4n/jo6G/4yMhP+LioL/iYeA/4aGf/+FhX7/hIR9/4ODev+Cgnr/goJ5/4KC + ef9/gHb/iYmE0YuKhwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4P/3tzV/9nWzf/QzMT/wr63/7CqoP+fl4v/kYl9/4d+ + cf+GfXD/in9x/4V5av9gWU//lpaP/4+Qh/+Oj4f/jIyE/4qLg/+JiYH/h4Z//4WFff+Dg3z/g4N6/4GB + ef+AgHf/gIF4/39/d/99fXT/h4aE1YuKiQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGhoH/sK2p/4aEgf90cnD/bWtp/2xq + aP9wbWr/dnRw/4J/eP+QjYX/m5eO/56Zi/9zb2X/k5OO/46Ohv+NjYX/iouD/4mJgf+Ghn//hIR9/4OE + fP+BgXn/gYF4/4B/dv9/f3b/fX51/319df96enP/hYWB2IqJhwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhID/wcLA/8DB + vf/Hx8L/zMzE/87Nw//QzsD/0M29/9LNuv/Rzbn/0s65/9XPuv+dmY7/kpGM/42Nhf+MjIT/i4uD/4mH + gP+FhX7/g4N6/4KCev+AgHj/f393/35+dv99fXX/fX11/3p6c/95eXH/hYWB3YuKhwoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACDgn7/9Pbw//L06//v8ub/6Onf/+Li2P/f3c//29jJ/9fSwP/W0L3/1c+8/9DLt/+cmIz/kZGM/42N + hP+LjIT/h4eB/4aGf/+FhX3/goJ6/4GBeP+AgHf/fn52/3x8dP98fHT/fHpz/3l6cv93eG//g4OA4YqJ + hwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACCgn7/8/Xt//L06//v8uf/6Org/+Tk2v/f3tH/29jK/9jTwv/W0L7/1c+8/9DL + tv+bl4v/kZCL/4uMhP+MjIT/iYmA/4aGf/+Dg3z/goJ6/4CAeP9/fnb/fX10/3x8dP96eXH/eXlx/3h4 + cP92dmz/goJ/5YmHhg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgX7/8/Tt//L07P/w8uj/6uzk/+Xl3f/g39X/3NrM/9rW + xf/X0sH/1c+9/9DKtv+al4v/kZCK/4uLhP+Li4P/h4eA/4aFfv+Dg3z/goJ6/39/d/9+fnb/fX11/3p8 + cv95eXD/eHhw/3h3b/90dGv/goJ+6YqHhg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgX3/8/Xt//L07P/y9Ov/7/Hn/+fp + 4P/i4tn/3dzP/9rXxv/X08L/1dC9/9DLtv+alor/kI+K/4yMhP+Ki4P/hoaA/4aFf/+Dg3r/gYF5/4B/ + d/9+fnb/fX11/3p6cv96eXH/eHhv/3Z2bf90dGr/goF+7IqHhhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgX3/8/bw//X3 + 8//t7+b/5eXb/+Pi1//m5Nr/5ePY/+Ddz//Z1sT/1tG//9DLt/+alon/kZGL/4uLg/+LjIT/h4eA/4aF + fv+Dg3r/goJ6/4CAeP9+fnb/fX10/3p8cv95eXH/eHhw/3d2b/91dGv/goF+74uJhxYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACCgn7/7e/o/7Ssm/+imYL/oJmF/5eShv+YlIz/raqk/9DNxP/j4Nf/3tvN/9DMuf+bl4v/kJCL/4yM + hP+LjIP/iYmB/4aGf/+FhX3/g4N6/4CAd/9/f3f/fX10/3p6c/95enH/eHhx/3d3cP91dWz/goJ/8omH + hRsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACBgX7/kYdt/3RoRf9fW0v/SUdD/z4+Ov8+Pjr/QUE+/2NjYP+pqKX/4t7V/9nV + xv+dmY3/kI+K/4yMhP+Ki4P/iYmA/4aGfv+Dg3z/goJ5/4CAd/9+fXX/fX10/3l6cv94eHD/eHhv/3d2 + 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 + eP+SiX3/lox//5yRgv9qYlj/5OTg/9PUzP/T08n/vLy0/0vA6/9LwOv/Vsv1/1HF8P9Nwu3/Sr/q/2jW + //8/tOD/LKDN/yygzf8soM3/P7Tg/wF4pv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEvrT/wruw/7iw + pP+vppn/pp2P/6CVhv+ckYL/nJGC/2piWP/i4dz/zs/G/87Qxv+ysav/AXim/wF4pv9OfZf/Tn2X/059 + l/8BeKb/AXim/wF4pv9SepL/Tn2X/0dzj/8BeKb/AXim/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW/ + tf+xq6L/oZuS/5CJgP+FfnX/g3xz/4J7c/+Jgnn/a2Ra/9/f2v/Ly8T/x8fA/8jIwf+3t6//np2a/1F8 + l/9kyOj/V3eQ/8/Ox/8AAAAAAAAAAEV1k/8zq9f/RHub/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAyMO5/3x4df94c2//gXt1/42FfP+Qh33/lox//5mPgf9pYlj/3NzY/8XGv//Cwrr/wsK6/8TE + vf/ExLz/U32Y/2XJ6P9WeJH/zMzE/wAAAAAAAAAARnSS/zOs2f8+epv/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADOysH/ycO4/764rP+1rKD/q6OV/6SajP+ek4T/nJGC/2liWP/Y2dT/wMC5/729 + tv+8vLT/urqz/7q6tP9TfZj/Zcno/1Z4kf/IyMD/AAAAAAAAAABGdJL/M6zZ/z56m/8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Lwv+wrKP/mpSM/4uFfv+Efnb/fXdx/4J8dP+GgHn/a2Rb/9XW + 0v+8vLX/uLiy/7a2sP+2tq//tbSt/1aAmP9kyOb/XYOb/8XEvf8AAAAAAAAAAEiJqf80tOH/W36Y/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzsvE/3p3dP+Hg37/joiA/5ONhP+bkof/m5GE/5yR + gv9pYlj/0tLO/7i3sP+0tK3/srKq/7Gxqv+wsKn/YYSa/23H4/9tscn/dZmu/3uXqv9Zk67/NLHc/xCd + 2P9TfZjZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADSz8f/z8q//8a+tP+7tKj/sqmd/6mf + kv+imIn/m5GC/2liWf/Oz8r/s7Kr/6+wqP+traf/q6ul/6qqpP+XoqX/U32Y/2vD3/9zy+T/a8Ld/06w + 0v8Qndj/U32Y/3uXqmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7LxP+Oiob/dXNv/3Zz + bv91cWv/dnFs/4J+eP+RjYX/aWJZ/8vLx/+urqf/q6qj/6moof+np6D/pqae/6amnv+Un6L/ZIab/1Z4 + kv9Tdo//VHeR/1N9mNl7l6poAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz8zE/7Ov + qP/Hw7j/x8O3/83KvP/X1cf/0M7A/8jGuP9oYlj/x8fE/6qqov+npp7/paSc/6KjnP+ioZr/oJ+Z/6Cf + mf+fnpj/s7Kr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADSz8f/+PXl//Lv3//q6Nj/4t/R/9/czv/W1Mb/zcu9/2tkXP/Cwbz/paSd/6Oim/+gn5n/nZ6X/5qc + lP+bm5P/mpqT/5makv+urab/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANLPx//59ub/9PHi/+3q2//l4tP/39zO/9bUxv/Ny73/bGRc/769uf+goJn/np6X/5ub + lf+ampL/mJmQ/5eXkP+Wl4//lpaO/6moof8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA0s/H//n25v/28+P/8O3d/+jl1v/f3M7/1tTG/83Lvf9qZFv/vLy4/5yc + lf+amZL/l5eP/5aVjv+UlI3/kpKL/5KRiv+RkIj/paSc/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysL/nJqU/4OBff+Fgn3/hoJ9/4eCff+Df3n/i4V+/2hi + Wf+8vbj/mpqR/5aVjv+UlIz/j5GK/4+PiP+OjYf/jo2G/4yMg/+gn5f/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/MxP+yr6r/vrmy/7ayqf+xqqH/raab/66l + mP+lnI7/aGJa/7q6tf+XlY//kpKL/5CQiP+Njob/jIyE/4qKg/+KioL/hoZ+/5ubk/8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0s/H/97a0v/W0cn/zce+/8S8 + sv+5sab/sKea/6edkP9qZFv/uLi0/5KSi/+Pj4f/jI2F/4qKgv+IiID/h4eA/4aFfv+Dg3v/mJeO/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysL/mZeT/5SR + jv+MiIT/gn97/4iDfv+NiIH/kouD/2diW/+1tbL/kI+I/42Nhf+KioL/iIaA/4WFfv+EhHz/goJ6/4CB + dv+Tk4r/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/M + xP+yr6v/raqk/7Cspf+3saj/samf/6qimP+mnpL/ZmJa/7O0r/+NjYX/iouD/4iHgP+EhH3/g4N7/4GB + eP+AgXf/fX1z/5CPh/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA0s/H/+Tg2f/d2dD/1NDH/8vFu//Auq//t6+i/66kl/9rZmH/rq6q/4uLg/+Ih4D/hIR8/4CC + ev+AgHf/f352/319df95eXD/jYyE/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADSz8f/n5+f/46PjP+EhYL/gH97/4uIgP+Yk4r/nZmP/2ZkX/+srKb/ioqC/4aG + f/+Dg3v/gYF4/39+dv98fHT/e3tz/3V3bf+KiYH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAANLPx//n5+T/2dvU/93e1v/f3dL/2tbG/9vVw//MxrH/YWBb/6ur + pv+JiYH/hYV+/4KCe/9/f3f/fX11/3p7cv93d2//c3Np/4eGf/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0s/H//////////r/9vjw/+7u5P/i38//3NbC/8zH + sf9hX1r/q6um/4eIgf+Fg37/goJ5/39/d/99fXX/enpy/3l4cP9ycmj/h4Z+/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS0Mf/39zQ/7Wvm/+tqJv/s6+o/9XS + yP/r59n/0Mu3/2FgWf+rq6b/ioqC/4aEfv+Dg3n/gIB2/3x8c/94eXD/dXdv/3FxZ/+Hhn7/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPQyP99cE7/U05D/0FA + Pf8+Pjz/aWln/9HOyv/c2Mj/ZGJc/6mrpf+Iin7/hYZ9/4CBeP97e3H/fHxy/3d4b/93d27/dHNp/4eG + fv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArquopq2q + o8Crqqm/r66sx6yrqtCpp6fYraup4rCtp+yXlZPtj46L34+QjdCNjYvBkJCNtKCgn6eVlJKdoJ+fk6Cf + noqXlpSEsK+vbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///AAf/hwAH+AEAB+AAAAfgA + AAH4AAAB+AAAAfgAAAH4AAAB+AAAx/gAAMf4AADH+AAAx/gAAAf4AAAH+AAAD/gAAP/4AAD/+AAA//gA + AP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP8oAAAAGAAAADAA + AAABACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACclo0GZWJbTUVGRCwlJiUEAAAAAAF4pv8BeKb/AXim/wF4pv8BeKb/AXim/wF4pv8BeKb/AXim/wF4 + pv8AAAAAAAAAAAAAAAAAAAAAnJaNIJyWjUGclo1vnJaNqJyWjf+EeW/8XHJX/8HDv/EyMzJ5FxcYElDK + 9v9OyfX/Tcj0/2jj//9Fv+z/MKrY/zCq2P8ai7j/IpzK/wF4pv8AAAAAAAAAAAAAAACclo3/nJaN/5yW + jf9/eW3/g21j/w66LP8A/z7/Wmth//j18//p6OD/h4eBwiqj0v8ln83/JZ/N/z235P8alMP/GoKr/xqC + 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 + AADAPwAAwD8AAMA/AADAPwAA + + + \ No newline at end of file diff --git a/CustomAppsForm.Designer.cs b/CustomAppsForm.Designer.cs new file mode 100644 index 0000000..a270a76 --- /dev/null +++ b/CustomAppsForm.Designer.cs @@ -0,0 +1,248 @@ +namespace MeshCentralRouter +{ + partial class CustomAppsForm + { + /// + /// 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(CustomAppsForm)); + this.cancelButton = new System.Windows.Forms.Button(); + this.okButton = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.removeButton = new System.Windows.Forms.Button(); + this.addButton = new System.Windows.Forms.Button(); + this.mainListView = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.appContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); + this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.runToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.groupBox1.SuspendLayout(); + this.appContextMenuStrip.SuspendLayout(); + this.SuspendLayout(); + // + // cancelButton + // + this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.Location = new System.Drawing.Point(320, 280); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 0; + 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.Location = new System.Drawing.Point(239, 280); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 1; + this.okButton.Text = "OK"; + this.okButton.UseVisualStyleBackColor = true; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(383, 48); + this.label1.TabIndex = 2; + this.label1.Text = "Setup custom applications that MeshCentral Router can open to use port mappings. " + + "These applications match a protocol and have a command line to open the applicat" + + "ion."; + // + // groupBox1 + // + this.groupBox1.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.groupBox1.Controls.Add(this.removeButton); + this.groupBox1.Controls.Add(this.addButton); + this.groupBox1.Controls.Add(this.mainListView); + this.groupBox1.Location = new System.Drawing.Point(15, 60); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(380, 214); + this.groupBox1.TabIndex = 3; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Applications"; + // + // removeButton + // + this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.removeButton.Location = new System.Drawing.Point(299, 185); + this.removeButton.Name = "removeButton"; + this.removeButton.Size = new System.Drawing.Size(75, 23); + this.removeButton.TabIndex = 2; + this.removeButton.Text = "Remove"; + this.removeButton.UseVisualStyleBackColor = true; + this.removeButton.Click += new System.EventHandler(this.removeButton_Click); + // + // addButton + // + this.addButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.addButton.Location = new System.Drawing.Point(218, 185); + this.addButton.Name = "addButton"; + this.addButton.Size = new System.Drawing.Size(75, 23); + this.addButton.TabIndex = 1; + this.addButton.Text = "Add"; + this.addButton.UseVisualStyleBackColor = true; + this.addButton.Click += new System.EventHandler(this.addButton_Click); + // + // mainListView + // + this.mainListView.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.mainListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3}); + this.mainListView.ContextMenuStrip = this.appContextMenuStrip; + this.mainListView.FullRowSelect = true; + this.mainListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.mainListView.Location = new System.Drawing.Point(6, 19); + this.mainListView.Name = "mainListView"; + this.mainListView.Size = new System.Drawing.Size(368, 160); + this.mainListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.mainListView.TabIndex = 0; + this.mainListView.UseCompatibleStateImageBehavior = false; + this.mainListView.View = System.Windows.Forms.View.Details; + this.mainListView.SelectedIndexChanged += new System.EventHandler(this.mainListView_SelectedIndexChanged); + // + // columnHeader1 + // + this.columnHeader1.Text = "Name"; + // + // columnHeader2 + // + this.columnHeader2.Text = "Protocol"; + // + // columnHeader3 + // + this.columnHeader3.Text = "Command"; + this.columnHeader3.Width = 223; + // + // appContextMenuStrip + // + this.appContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.editToolStripMenuItem, + this.runToolStripMenuItem, + this.removeToolStripMenuItem, + this.toolStripMenuItem1, + this.addToolStripMenuItem}); + this.appContextMenuStrip.Name = "appContextMenuStrip"; + this.appContextMenuStrip.Size = new System.Drawing.Size(118, 98); + this.appContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.appContextMenuStrip_Opening); + // + // editToolStripMenuItem + // + this.editToolStripMenuItem.Name = "editToolStripMenuItem"; + this.editToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.editToolStripMenuItem.Text = "&Edit..."; + this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click); + // + // runToolStripMenuItem + // + this.runToolStripMenuItem.Name = "runToolStripMenuItem"; + this.runToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.runToolStripMenuItem.Text = "R&un..."; + this.runToolStripMenuItem.Click += new System.EventHandler(this.runToolStripMenuItem_Click); + // + // removeToolStripMenuItem + // + this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; + this.removeToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.removeToolStripMenuItem.Text = "&Remove"; + this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeButton_Click); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(114, 6); + // + // addToolStripMenuItem + // + this.addToolStripMenuItem.Name = "addToolStripMenuItem"; + this.addToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.addToolStripMenuItem.Text = "&Add..."; + this.addToolStripMenuItem.Click += new System.EventHandler(this.addButton_Click); + // + // CustomAppsForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size(407, 315); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.label1); + this.Controls.Add(this.okButton); + this.Controls.Add(this.cancelButton); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "CustomAppsForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Custom Applications"; + this.Load += new System.EventHandler(this.CustomAppsForm_Load); + this.groupBox1.ResumeLayout(false); + this.appContextMenuStrip.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button removeButton; + private System.Windows.Forms.Button addButton; + private System.Windows.Forms.ListView mainListView; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.ContextMenuStrip appContextMenuStrip; + private System.Windows.Forms.ToolStripMenuItem runToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; + } +} \ No newline at end of file diff --git a/CustomAppsForm.cs b/CustomAppsForm.cs new file mode 100644 index 0000000..ad08834 --- /dev/null +++ b/CustomAppsForm.cs @@ -0,0 +1,130 @@ +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; +using System.Diagnostics; + +namespace MeshCentralRouter +{ + public partial class CustomAppsForm : Form + { + List apps; + + public CustomAppsForm(List apps) + { + this.apps = apps; + InitializeComponent(); + } + + private void CustomAppsForm_Load(object sender, EventArgs e) + { + if (apps != null) { foreach (string[] app in apps) { mainListView.Items.Add(new ListViewItem(app)); } } + UpdateInfo(); + } + + public List getApplications() + { + List r = new List(); + foreach (ListViewItem l in mainListView.Items) + { + string[] x = new string[3]; + x[0] = l.SubItems[0].Text; + x[1] = l.SubItems[1].Text.ToLower(); + x[2] = l.SubItems[2].Text; + r.Add(x); + } + return r; + } + + private void addButton_Click(object sender, EventArgs e) + { + CustomAppsAddForm f = new CustomAppsAddForm(); + if (f.ShowDialog(this) == DialogResult.OK) + { + // Remove any matching protocol + List list = new List(); + foreach (ListViewItem l in mainListView.Items) { if (l.SubItems[1].Text.ToLower() == f.appProtocol.ToLower()) { list.Add(l); } } + foreach (ListViewItem l in list) { mainListView.Items.Remove(l); } + + // Add the new protocol + string[] x = new string[3]; + x[0] = f.appName; + x[1] = f.appProtocol.ToLower(); + x[2] = f.appCommand; + mainListView.Items.Add(new ListViewItem(x)); + } + } + + private void okButton_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.OK; + } + + private void cancelButton_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + } + + private void mainListView_SelectedIndexChanged(object sender, EventArgs e) + { + UpdateInfo(); + } + + private void UpdateInfo() + { + removeButton.Enabled = (mainListView.SelectedItems.Count > 0); + } + + private void removeButton_Click(object sender, EventArgs e) + { + if (mainListView.SelectedItems.Count == 0) return; + List list = new List(); + foreach (ListViewItem l in mainListView.SelectedItems) { list.Add(l); } + foreach (ListViewItem l in list) { mainListView.Items.Remove(l); } + } + + private void appContextMenuStrip_Opening(object sender, CancelEventArgs e) + { + runToolStripMenuItem.Visible = (mainListView.SelectedItems.Count == 1); + removeToolStripMenuItem.Visible = toolStripMenuItem1.Visible = (mainListView.SelectedItems.Count > 0); + } + + private void runToolStripMenuItem_Click(object sender, EventArgs e) + { + if (mainListView.SelectedItems.Count != 1) return; + ListViewItem i = mainListView.SelectedItems[0]; + CustomAppsRunForm f = new CustomAppsRunForm(i.SubItems[2].Text); + if (f.ShowDialog(this) == DialogResult.OK) { Process.Start(f.getFinalCommand()); } + } + + private void editToolStripMenuItem_Click(object sender, EventArgs e) + { + if (mainListView.SelectedItems.Count != 1) return; + ListViewItem i = mainListView.SelectedItems[0]; + CustomAppsAddForm f = new CustomAppsAddForm(); + f.appName = i.SubItems[0].Text; + f.appProtocol = i.SubItems[1].Text; + f.appCommand = i.SubItems[2].Text; + if (f.ShowDialog(this) == DialogResult.OK) + { + // Remove any matching protocol + List list = new List(); + foreach (ListViewItem l in mainListView.Items) { if (l.SubItems[1].Text.ToLower() == f.appProtocol.ToLower()) { list.Add(l); } } + foreach (ListViewItem l in list) { mainListView.Items.Remove(l); } + + // Add the new protocol + string[] x = new string[3]; + x[0] = f.appName; + x[1] = f.appProtocol.ToLower(); + x[2] = f.appCommand; + mainListView.Items.Add(new ListViewItem(x)); + } + + } + } +} diff --git a/CustomAppsForm.resx b/CustomAppsForm.resx new file mode 100644 index 0000000..a6c337a --- /dev/null +++ b/CustomAppsForm.resx @@ -0,0 +1,1818 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAA0AMDAQAAEABABoBgAA1gAAACAgEAABAAQA6AIAAD4HAAAYGBAAAQAEAOgBAAAmCgAAEBAQAAEA + BAAoAQAADgwAADAwAAABAAgAqA4AADYNAAAgIAAAAQAIAKgIAADeGwAAGBgAAAEACADIBgAAhiQAABAQ + AAABAAgAaAUAAE4rAAAAAAAAAQAgAPgWAQC2MAAAMDAAAAEAIACoJQAArkcBACAgAAABACAAqBAAAFZt + AQAYGAAAAQAgAIgJAAD+fQEAEBAAAAEAIABoBAAAhocBACgAAAAwAAAAYAAAAAEABAAAAAAAgAQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/ + /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAczEwNwAAAAAAAAAAAAAAAId3cAAAAAAzc4 + N7gzAAAAAAAAAAAACHd3d4hwAABzeIt7c4tzcAAAAAAAAAh3d3d6p4j4cAN7iLeTOTiYcAAAAAAACHd3 + d3d4t3+Ih3OLeDODg4t7cAAAAAAAB3d3eHh4doj4+Ie3v4s5M4t7gAAAAAAAB3eHhnZ2d4iPiIOIeDl7 + c4iTAAAAAAAAB4d2VlZ3dYiI+Ie5v4t4O5t3gAAAAAAAB4ZXd3d3doj4iIOIiLczl4g7gAAAAAAAB4d3 + ZyV3d4iI+Ie7iIOLe4txAAAAAAAAB4dhdXd3doiIiIOIj7OXM3sbAAAAAAAAB3d3d2dndYiPiIOIuIuL + iJhzAAAAAAAAB4dlY3V3doiIiIi4e3e3k3M3AAAAAAAAB4d3d3d3d3iIiINzgTd7c4cAAAAAAAAAB4d3 + ZWdndoiIiIiDg4iAAIMAAAAAAAAAB3dDd3d3dYiIiIiDt4eAADsAAAAAAAAAB4d3dnV3doiIiIiDd4iA + AHMAAAAAAAAAB4d0NDZ3d3iIiIiDOIeAADkAAAAAAAAAB4Z3d3d3doiIiIeDeYiICDcAAAAAAAAAB4d3 + dldndXiHh4iDN4eIAzMAAAAAAAAAB4d0d3d3doiIiHh3M3iIA3kAAAAAAAAAB4d3d3d3d3h4eIeHMzN3 + MTAAAAAAAAAAB4d2FkNndniHh4h4c3ezE4AAAAAAAAAAB3d3d3d3dYeIeHh4d7lzdwAAAAAAAAAAB4h3 + Z3V3doh4eH54eHiIAAAAAAAAAAAAB3dnd4iIiHh4h4eHh4d4AAAAAAAAAAAAB4iIiIiIiHh3h4d4d3h4 + AAAAAAAAAAAAB/+IiIiIiHh4d3h3h3eIAAAAAAAAAAAAB/j4h4eIhoeHh4eHeHd4AAAAAAAAAAAAB4dn + R2dnd3d4d3d3d3h4AAAAAAAAAAAAB4iHd3d3Z3h3h4aHh3d4AAAAAAAAAAAAB4h3d3Z3dXh3d3h3d3d4 + AAAAAAAAAAAAB3d3d3d3doeHhod3d4Z4AAAAAAAAAAAAB/iId3d3dnd3eHd3d3d4AAAAAAAAAAAAB4h3 + dnR2dYd4d3d3d3d4AAAAAAAAAAAAB4eHd3d3d3d3d3d353d3AAAAAAAAAAAAB4+Ih3d3dnh3d4aHd3d4 + AAAAAAAAAAAAB4dnZ3d3d3d3hnd3d3doAAAAAAAAAAAAB4iIiIiIiHeHd3d3dnd3AAAAAAAAAAAAB/// + +IiIh3d3d3d3d3d3AAAAAAAAAAAAB/j4+PiIiHd3d3d2d3Z3AAAAAAAAAAAAB//4+I+Ijnh3d3d3d3d3 + AAAAAAAAAAAAB/j/j4iIh3d3d3Z3d2d3AAAAAAAAAAAAB/+Pj4+IiHd3d3d3Z3d3AAAAAAAAAAAAB/eH + d4iIh4d4aHd3d3d3AAAAAAAAAAAAB3ZmZCeIiGh3d2d3d3ZXAAAAAAAAAAAAB3h3d4eIiHd3d3d3d3d3 + AAAAAAAAAAAAAIiPiIiIh4iIiIAAAAAAAAAAAAAA/////4B/AAD//4P+AD8AAP/4AfAAHwAA/4AAYAAf + AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAD8AAP4A + AAAAPwAA/gAAAAA/AAD+AAAAAP8AAP4AAAAc/wAA/gAAABz/AAD+AAAAHP8AAP4AAAAc/wAA/gAAAAj/ + AAD+AAAACP8AAP4AAAAI/wAA/gAAAAH/AAD+AAAAAf8AAP4AAAAD/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA// + AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP8AAB///wAAKAAAACAA + AABAAAAAAQAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA + AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAzMzMzMzMwAAAAAAAA + AAAAuLe4t7m4kAAAAAAIh3eHAHubObMzMzAAAAh3d3o2/4C3uLiLe5swAAAIeHd4t4/4e3k7k5NzMAAA + CIh4d3b4j7e4uLizuDAAAAh3dnd3j4h7e5ezOTOQAAAIdnd3dviIt7i4uLe4MAAACIiHh4eIiDlzeTlz + eTAAAAh3d3Z2+IiIe3gAe3AAAAAId3d3dYiIiHg4ADeQAAAACIiHh4b4iIg4OAB7cAAAAAiHd2d3iIiI + e3gAe3AAAAAId3eHdoiHh3iHg7lwAAAACIiIeHeIiHhzi4e3AAAAAAh3Z2d2iHh4h3OXcAAAAAAIiIiI + hYh4h4eIAAAAAAAACP+PiIeHh3h3hwAAAAAAAAj/j4+GiHh3h3gAAAAAAAAI+PiIh4eHd3h4AAAAAAAA + CHd3d3aHd4d3dwAAAAAAAAiIiIh3h4d3d3gAAAAAAAAI+Ijnhod3d4Z3AAAAAAAACHd3d3eHeHZ3eAAA + AAAAAAiIiIeEh3d3d3cAAAAAAAAI+IiId4d3d3d3AAAAAAAACId2d4aHd3d3dwAAAAAAAAj4+PiGh3d2 + d2cAAAAAAAAI//+Ih3d3d3d3AAAAAAAACIh4j4aHd3d3dwAAAAAAAAh2QniHd3d3Z3cAAAAAAAAIiIiI + h4h4iIiAAAAAAP//wAH//8AB/4DAAfgAQAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAMf4AADH+AAAx/gA + AMf4AAAH+AAAD/gAAB/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gA + AP/4AAD/+AAA//gAAP/4AAH/KAAAABgAAAAwAAAAAQAEAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP// + /wAAAAAAAAADMzMzMzAAAACHd4ALi4t7mzAAd3dyp/iDubOTczAAiHh3to/4uIuLOTAAiHd3d/iDk7M5 + NzAAiHeHd4iLi4t7OzAAiId3d/iDc3k3dTAAh3d4Z4iIe3ADtwAAiIh3eIiIeDAHlwAAiHfnd4iIODAH + twAAiIh4d4h4e4eLNwAAiGd3h4h4d4t5eAAAiPj4hoeHdzc4gAAAiP+Ih4eHh4AAAAAAiIiIh4d3eHAA + AAAAiId3d4eHd3AAAAAAiIiIdod3d3AAAAAAiHhod4d3d3AAAAAAiIiId3d3d3AAAAAAiId4d4d3Z3AA + AAAAj4+IhoZ3d3AAAAAAj/j4h3d3d3AAAAAAiGdoh4d3dnAAAAAAiIeIh4eIiIAAAAD/+AEA/BgBAMAA + AQDAAAEAwAABAMAAAQDAAAEAwABjAMAAYwDAAGMAwAADAMAAAwDAAAcAwAB/AMAAfwDAAH8AwAB/AMAA + fwDAAH8AwAB/AMAAfwDAAH8AwAB/AMAAfwAoAAAAEAAAACAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A + /wD//wAA////AAB3d3MzMzMwAIeHiLi3uTAAiHhzt5M7MACIiIi4u3eQAIeHgzsXmzAAiIiIdwA3AACI + johzADcAAIiIh3e3NwAAh3Z3d3NwAACP/4+HAAAAAI+Pj/cAAAAAh3d3dwAAAACP+PiHAAAAAI//j4gA + AAAAiGYGiAAAAACIiIh4AAAAwAEAAMABAADAAQAAwAEAAMABAADAMwAAwDMAAMADAADABwAAwD8AAMA/ + AADAPwAAwD8AAMA/AADAPwAAwD8AACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAB + AAAAAAAAPj46AEA9PABBQT4ADDtRAA9BVQANRFwADUhgAABIagAYSWAAC1FvAB1UbwAHVnYAElt6ACZP + YgATYH8AM2J2AEhFQwBRTk0AV1NNAFVSUQBZVVIAXFhVAF5bWQBgWU8AZV5VAHRoRQBpYFUAZWFdAGtk + WwBxal8AZWNgAGllYgBuaWQAbWpoAHJsZwB6cWYAdXNrAHp0awB3eG8AeHhvAHVzcAB8dXAAe3tzAHx8 + egCFe2wAg3tzAIl/cQCCf3oAin95AH+AdgAO8U4ADexdAI2AbwCRh20AgIB3AI2BcwCDg3wAi4J7AJCE + cgCQhXsAk4l8AJmOfwAKX4EAE2KEAB9ohgASZ4kAFWmLABdukQAUcpUAG3KVABx3mgAcep4AIGeFACdu + jwAlcI4AJXOTACF3mgAkepsAKXyeADFzkAA8d5IAP3iQACR+oABId4wAW3WCACWAowArg6QAJoesAC6I + qgAyhKQAMYeoADOKqwA5jKwANI6yADqPsQAskroANJCzAD2StAA9mbsAXYqcAHiDhwBhhpcAZomYAHaU + nQB/kpwAToqiAFyNoQBLkKsAXZGmAEKUtQBBmLcASpi2AEGWuABEmrsAUZq3AHSWowBUoL8Ac6C1AH2n + uAB2qb4AZ/S4AEKdwQBKn8AARqHEAEyixABNqcoAUKXFAF2pxgBTqssAWK3OAE+u0ABYr9EAUrPXAFux + 0QBbtdgAWbncAGGqxwBgrswAca7FAHO0zQBgtdUAbbXRAGO41gBjutoAarzcAHK61QA98tUAc8DeAGbE + 5QBtwuIAccXlAHzG4AB2yOcAe8rmAHTK6QB6yukAhoWAAImGgQCLi4MAjo2JAJKLgwCajoQAkI6KAI+Q + hwCTkYYAnpOFAJOSjACblYsAnZiMAIWXmwCVlZEAmZaQAJqakwCTnJwAnp2YAKCThwCgmYQAoZaNAKWf + jwChnZcAo6GWAKqilACjo5wAqqOeALSsmwCNo6oAmqWmAI6wvgCZsbYAq6qkALGqowCwragAqbCtALOy + qwC5tasAqrW2ALW1sQC7tbEAt7ixALu7tACwvLoAvby7AMG1rwDBvLYAtsG/AMXEugDRzLkA1dC9AI6w + wACcvcsAtcfPAITO6gCP0+wAmtftAJrY7QCD1fQAkNv3AKjd8gCU4fwAoeL7ALfl9wC55fUAs+r9AMXF + wgDJxsAAzMvDAMTOygDNzMoA0M3FANTRwgDZ1cQA29jGANPTywDY1s0A29nMANLR0ADb29IA4N3PAOHe + 1QDf4NcA5OHUAOzo1ADk49oA6OnfAPLw3wDC6/sAzvH/AOfp4ADq7OIA7e/oAO/x5gDy8+oA6/v/APT2 + 8QD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdlELCQQFB2kAAAAAAAAAAAAAAAAA + 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 + TgBkYVsAaWJYAGpkWgBsZVsAa2RcAGxkXABrZmEAaWlnAG1qZgBxcWcAcnJoAHRxaQB1cm0AdnduAHhz + bwB6dG0Ad3hvAHt3cgB5eXEAfnhxAHx8cgB8eHUAfX11AIF7cwCDfHMAgXt1AIJ8dACEfnUAgX55AIR/ + eAAAzEYAE+5RAICAdgCBgnkAhoB5AIGBfgCGgn0AhYV9AImCeACIg34Ai4V+AI2FfQCIin4AkYd7AJCH + fQCQiX0AlYl+AJaMfwA+epsAAXimAEdzjwBTdo8ARXSSAE59lwBEe5sAVXeQAFJ6kgBWeJEAUXyXAFN9 + mABbfpgAF4y5AByRvgBWgJgAXYObAGKFmgBIiakAWZOuAGyQpwB7l6oAdZmuACzTuABV0pwAEJ3YACCV + wgAil8QAJJnGACmdygArn8wALKDNADCk0QAzp9QAM6vXADWq1gAzrNkAOa7aADSx3AA7sNwANLThAD+0 + 4ABOsNIAbbHJAEO45ABFuuUAR7znAEm+6QBrwt4AS8DrAEzB7ABRxfAAVsv1AF7T/QBtx+MAZMjmAGTI + 6ABzy+QAYNX/AGTV/wBo1v8AhYaBAIiGgACHiIEAiYmBAI2IgQCMjIMAjYmFAI2NhQCOj4oAkYqBAJGN + hQCYjoAAn4+FAJCPiACPkYoAm5GCAJyRggCbkYUAnZKEAJOTjACYlIwAnZmPAJeXkACZl5MAmpqTAJ6d + mgCglYYAopiJAKSajAClnI4AoZqSAKadkQChnpYAqZ+SAKCfmQCpoJIAqaGVAK6klwChoJoAoqOcAKWl + nQCqopgAraWZAK2omwCwp5oAta+bALGpnQCUn6IAl6KlAKWloQCrqqQArq6qALGqoQCwrKMAtq2hALCs + pQCyr6kAr7CoALiwpQCxsaoAtrGoALCwrgC1s60As7SvALW1rgC7tKgAvrisALW0sgC4t7AAubmyAL65 + sgC5ubQAvLy0ALy8uQDAuq8AwLqwAMS8sgDDvrcAxb60AMC/vADHw7cAzMaxAMHBuQDGwbkAwsG8AMTE + vQDJxLoAzcq9ANDLtwDExMEAyMfHAMjIwADNysEAysnGAM7LxADOzMQAzM3KANHOxgDQzskAztDGANXS + xgDb1cMA09HIANXRyADS0s4A09TMANfXzwDe28wA1dbSANjY0ADd2tEA29zSAN/c0QDY2tQA3d7WAN3d + 2QDi388A4t/RAOXi0wDo5dYA5ODZAOXm2wDi4dwA5uXcAOvn2QDr6dkA8e7eAOXl4ADn5+QA6erkAOrs + 5gDu7uQA9fLiAPj15QDw8eoA9vjxAPv58AD///cA///6AP///wAAAAAAAAAAAAAAAAAAAAAAAAA4ODg4 + ODg4ODg4ODg4AAAAAAAAAAAAAAAAAAAAAAAAAGhoZmRkZGxgVlZWYDgAAAAAAAAAAAAAx556NAT6KgAA + WFhTU1JRWkQ4ODhFOAAAAAAAAMGYMjI0gCUmCvv9mgBoaGhmZGRxYFZWVmA4AAAAAAAAwXqShYV/T04K + 9e/971hYVlVVU1xEODg4RTgAAAAAAAC+taKYj4WFNAj14uHWaGhqaGZmcWBWVlZgOAAAAAAAAMGSMBoW + EhotCvPh3sdYWFhXVlVeRDg4OEU4AAAAAAAAvg8WIS00f4AI793dvGhoa2poaHNgVlZWYDgAAAAAAADB + vrWekY6EhAjv09evODg8PDw4ODhAQDs4OAAAAAAAAMGokn0hISEtCufTz8+vmkFvQNMAADtbPQAAAAAA + AAAAxBoVITAyNIQI4s/Dx8/HQW9A0wAAO1s3AAAAAAAAAADTxL6omJGOhAjhw7y8u7xBb0DPAAA7WzcA + AAAAAAAAANOoiDAhISEhCuG8u7uvt0ZuR8cAAElfQwAAAAAAAAAA0xV1en2FhYUK3Luvr6+vSG1iTUxK + XVBLAAAAAAAAAADa0MG1opWPhQjWr6+tpqakQWdwZ2FQQQAAAAAAAAAAANN9FRYVFSF9CNOnpqWlpaWk + SEA6QEsAAAAAAAAAAAAA06zHxMrZ08oIz6aapaWUlJSWrwAAAAAAAAAAAAAAAADQ+fjx6OHZyg3DmqWU + lJSMjIymAAAAAAAAAAAAAAAAAN35+PHo6NjLDbyalIyMioqKiqYAAAAAAAAAAAAAAAAA0Pn48uvh2csN + vJSMioqHgoKBmgAAAAAAAAAAAAAAAADQjC4qMCoqNAi8jIqCgoKCeoKUAAAAAAAAAAAAAAAAANCvwa+o + opiRCLuKgoGCNDF6LIkAAAAAAAAAAAAAAAAA3eLaxMK1oJcKu4KCeiwxMSosigAAAAAAAAAAAAAAAADT + i4h6KTAwfQi3gnqCLDEqKieHAAAAAAAAAAAAAAAAANOspqisqJ6SCLd6MSwsKicnG4EAAAAAAAAAAAAA + AAAA2uzi2sTBqKANrzF6LCgbKhsbggAAAAAAAAAAAAAAAADQm3wuKjCIiQinMSwqKicbGxQsAAAAAAAA + AAAAAAAAANr05+fi2dnFBacxLigbGxsUFSwAAAAAAAAAAAAAAAAA2v//+vro2cUFpjEuKCgbGxkRLAAA + AAAAAAAAAAAAAADQ6KKirNnvzAWnMS4oKBsZFBEsAAAAAAAAAAAAAAAAAN0GAwIBDtrZCKYxMSgZGxQU + FCwAAAAAAAAAAAAAAAAA0cHBw723t7eNo6WlscPDz9bPAAAAAAAAAAAA///AAf//wAH/gMAB+ABAAfgA + AAH4AAAB+AAAAfgAAAH4AAAB+AAAx/gAAMf4AADH+AAAx/gAAAf4AAAP+AAAH/gAAP/4AAD/+AAA//gA + AP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAf8oAAAAGAAAADAA + AAABAAgAAAAAAEACAAAAAAAAAAAAAAABAAAAAQAAAAAAAGNfWABcclcAa2VeAFprYQBycmkAc3FtAHV1 + bQB5eG4Af3ltAHp6cQB6enQAfn51AINtYwCCemUAg3pvAIF7cgCFenAAg310AIR9dACBfngAhH94AA66 + LAAA/z4AgIB3AIGBeQCFgnkAhIR7AIWBfQCFhH0AiYF5AIiEewCNhXkAiIF8AImFfQCOh34AiIh+AI6I + fwCRh3oAlYt7AJCJfQAaYoMAGmiKABpxlgAadp0APnqbAAF4pgAaeKAAR3OPAEV0kgBOfZcARHubAFV3 + kABSepIAVniRAFF8lwBTfZgAW36YABqCqwAahK0AGoq1ABqLuAAajboAVoCYAFmAmABdg5sASImpAFmT + rgBgh6AAe5agAHWZrgAA1LIAQ8mLABqUwwAQndgAIpzKACSezAAqo9IALabVADOr1wAwqtgAM6zZADSx + 3AA0tOEAPbfkAE6w0gBtsckAQrzpAEW/7ABrw98ARsDtAEjC7wBNyPQAUMr2AG3H4wBkyOYAZMjoAHPL + 5ABn4v8AaOP/AI2HgACJiYEAjYiCAI6JhQCNjIUAkIqCAJGMhQCVjocAkY+IAJuQgQCRkYkAl5CIAJWR + jgCVlY0AmpOJAJyTiACclIkAnJaNAJiYjwCfmY8Am5eRAJiYkQCamZYAnJqWAJ2dlgCdnpgAnZycAKWP + hQCli48AoJaJAKGYiwChm48ApZuOAKadjwCgkZAAoZqQAKSbkACinZIApJ+ZAKqhlwChoJoApKObAKKi + ngClpZ4Ar6edAICbpQCjo6MApqagAKmnoQCqqaMArqmgAKqqpACtraYAra2qALGqoQC1raIAsq2lALCv + qwCvsKkAr7OtALizogCxsKgAtrCoALS0qwCzsqwAtbStALy2qwC4tK4Av7esALOxsAC2tbEAubmyAL26 + sgC+u7UAvr62ALm5uAC9vbkAxL6pAMS+rQDAurEAxL2zAMO+tADEv7UAwL+9AMbAtgDDw7sAxsK4AMfE + ugDDw7wAxMO9AMXFvADLxbsAysW8AMzHvQDPyrkAyci9AM3LvwDRzbwArcjVAMTGwgDKx8AAysjBAM3K + wgDJycQAy8zEAM7PyQDQzcAA0M3EANTPyADP0MoA09DHANPRyQDU1c0A2NTJAN/czgDT1dEA19XRANnZ + 0gDb29YA4N3PAObY0ADt2tMA5OHVAOvm0wDg4NoA5OPbAOfn3wDq6N0A5+bhAOno4ADs7OIA9vTjAP7+ + 7gD49fMA+fjzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAuLi4uLi4uLi4uAAAA + AAAAAKx1EQLHAABdXFxjWFBQPUsuAAAAdXV1CQ0WFwTp5Y5NS0xUSTo6KiwuAAAAs4p1g39IRwPh5eVa + WltiWE1QPUsuAAAAs5xpEREfEWbh2aw9PD1NOi8vKSwuAAAAwJZpd4mDbSXZ1KVaWltjWE1QPUsuAAAA + urOciSggDyDZzK4uMjIyLi41MjAuAAAAwJwfZGl1JiDXuse6N2A2AAAxTzMAAAAAuMCmkIltIGTNsKur + N2A1AAAxUC0AAAAAuqVkaWt1IB/LqqWlP19BAABCUzkAAAAAuLqlnIuDKB+6npaYP15WRkNSSkQAAAAA + uqZkIGSGgCCwl5eOkTdZYVVKN8YAAAAAs83Z2dzDnhyrjn19d5E1NjVExgAAAAAAs97o593DnyCqd313 + eXF9AAAAAAAAAAAAuNXc1MW6nxyYeXlxcXFxAAAAAAAAAAAAuKVxbGtrIByWeXFoaBxxAAAAAAAAAAAA + s9LSwKacbR+ScWhoHGhoAAAAAAAAAAAAwKx3eWZrZByOaB8dGwwkAAAAAAAAAAAAwMy3t7ObghF9aBsb + GwsfAAAAAAAAAAAAzMCdiniJdRl9HxsbCwsMAAAAAAAAAAAAz9jX1MPFoAt9HxsLCwcLAAAAAAAAAAAA + 0uTp5ePfsQt9HxkLCwcLAAAAAAAAAAAA1LEOAQfIxQt3HQsLBwUHAAAAAAAAAAAA1KyUkn2qrHeSkp6q + r7C6AAAAAAAAAP/4AQD8GAEAwAABAMAAAQDAAAEAwAABAMAAAQDAAGMAwABjAMAAYwDAAAMAwAADAMAA + BwDAAH8AwAB/AMAAfwDAAH8AwAB/AMAAfwDAAH8AwAB/AMAAfwDAAH8AwAB/ACgAAAAQAAAAIAAAAAEA + CAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAMzMxAFxOJgB3cWoAeHJpAHhzbwB9dm4Ah31uAIJ7 + cgCFfnYAiH9yAIF/egCKgXYAjIN3AI+EdQCOhnwAlIl6AJqPfwAad58AAXimABZ9pAAaeKAATXCKAE5y + jABKdI8AX3aEAFh+lwAagqsAHoOoABqErQAai7gAGo26ADmdvQBuhZQARJKsAEmftgBQobcAGpTDACWf + zQAqo9IALabVADCq2AA9t+QAQrzpAEW/7ABGwO0ASMLvAE3I9ABQyvYAZ+L/AGjj/wCKhoEAlIyDAJ+W + hgCmnI0Aop6YAKqhkwCto5YAraSXAKqimACwp5kAsqiaALSqmwCzqpwAtqyeALSsogC4r6EAtrCmALqw + ogC8s6UAvbSmALqzqgC/tqgAu7WtALy3rwC/urMAwbepAMK5qwDEuqwAxr2vAMG8twDIvrAAwb24AMnB + sgDEwLsAxsO/ANPNuQDGw8AAyMbCAMrIxgDMysgA4NvKAOHcywDk384A6OXUAOrn2gDs6N0A7ergAO7s + 4ADw7eMA9fPpAPX16gD29OwA+PfuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + GJoAAAAwDUhjJCBnhf9Yr9H/YbnZ/2bE5f+x6Pv/YarH/zKJqv8tg6T/HHSV/xVpiv8KX4H/QJK0/16z + 0v84jq//UrPX/zFkfa4AAAA9AAAAOgAAACkAAAAXAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABzcW6BdWtiwouAef+Ngnz/i4B3/46Edv+Vi33/l4x9/5OJff9+dXD/Z/S4/z3y1f9rY1j/sK2o/93d + 1f/d3dX/5OPa/9PSy/9dXlzYBxsjikaWtv9wxub/XLLS/0ypyv+a1+3/XKrH/zSLrP9Albb/R5y9/0ec + vf9BmLf/c8De/3rL6v9Fm7z/Joes/xpOZaoAAAA8AAAANwAAACcAAAAbAAAADQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACEg3//fXRu44p/ef+ViYP/louC/5OIe/+Zjn//n5OE/56Thf+flon/nI6F/6CT + h/9pYFT/sa+q/9vc0//b29L/29rR/93d1f/n5tv/mKSl/DqRsv9Ppcb/WbDQ/3DE5P/O8f//bbXR/0CY + uf86j7H/LoSl/yR5m/8SZ4n/QZm6/1KoyP8vhab/Wrjc/z96kpYAAAAgAAAAIAAAABIAAAAJAAAABwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhID/g3pzyZOIgv+dkYr/oZaN/56Vi/+Ignv/ZmJe/1xZ + V/9nZGH/fHZx/5KLgv9vZlv/srGr/9vb0f/Z2tH/2dnR/9jYz//Y2M//xM7K/ziOr/9swuH/ab7f/1y1 + 2P+o3fL/VKC//yd/oP8yh6n/NImq/zeMrv82i67/brzZ/3rK6f8pgKH/FXSX/2WmwmkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjor/kIR7s4+Ff/94cW3/amZl/1ZT + VP9EQkL/T0tI/2tlXf9+dWr/i4Bw/5GFcv9oX1P/tLOt/9jZ0P/Y187/19bO/9fWzf/S0cr/nKam/0Wa + vf9Yrc7/WKzO/2m/3f/C7Pz/dLvV/0ujxP9TqMr/S6HC/z+Vtv8vhKX/Vq3N/2C11f9Blrj/QJ3C/z5+ + mIMAAAANAAAACgAAAAQAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjor/hn15tVJP + T/9dWVf/enJs/4J4a/+LgHH/joN0/5SMgP+PiYD/hoB6/42GgP9tZlz/tLKr/9XVzP/V1c3/1dPL/9XV + zP/R0cr/sLy6/zKKq/90yun/gdPy/4/T7P/D6vr/Up68/yR8nv8nfJ3/Inma/x1zlv8edJf/YK7M/2m5 + 2P8Vao3/MY6y/0mGoYcAAAAQAAAAHwAAABMAAAAJAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACQjon/kIR+u4R5dP+QhH7/iYB6/3BqZf9fXFn/WFRS/1tYVP9rZmH/eXNr/4uDeP9qYVf/s7Gs/9LT + y//T08v/0tLK/9HSyv/MzMT/lZ+e/1Cmxv9tw+L/YLna/1i63f+35ff/cbrV/0qiw/9Vqsv/VarL/1Gm + x/9Oo8T/esnm/3bI5/8/lbb/E3CU/3q51WQAAAAAAAAAAwAAAAcAAAAFAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACPjor/loyDxHVva/9WUlD/SUVE/1ZRTv9yamT/iX9y/4uAcf+Og3T/j4R2/5KH + ef9pYFT/s7Gs/9HRyf/Q0Mn/0NDH/8/Pxv/MzcT/ucK//y6Jqv9wxub/hM7q/7nl9f/r+///XqjF/zGJ + q/8xh6j/KH2e/x91lv8hd5r/S6LE/1SrzP8XbpH/NJCz/6jh+mEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjor/koiCy3Zva/+HfXf/jIF4/5CHfv98dnH/ZGBd/19c + Wv9hXlz/c29q/4yEff9rY1j/s7Gr/87Oxv/Ozsb/zM3E/83NxP/Gxr//kZqb/z2Zu/+Q2/f/oeL7/5Th + /P+27f//fcvn/1Srzf9nu9r/bsPj/3XK6v9juNb/OIyr/0+kw/9Opcf/HHqe/4e/2GUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjon/nJCJz352cf9pZGP/W1hW/1RR + T/9dWVT/aGFb/3hwZv+Eemv/jYFv/4+CcP9nXlP/srGr/83MxP/Ly8P/ysrC/8nKwf/Hx8H/qrW2/2q+ + 3/+G1/f/c7TN/0+LpP9JmLf/XrfY/1WrzP9Zr8//U6jJ/0uixP8FWHn/W3WC/yZPYv8fd5n/PpW3/4i/ + 1mwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOjon/k42H1nNs + af9/dXH/hnpz/4uAcP+Pg3P/j4N0/5KKf/+QiYD/jIV//5SNhP9oYFT/srGr/8nJwf/KycH/x8fB/8bG + v//Fxr//tMC//zePsv87kLL/Flx6/32nuP8ASGr/MIms/z+Vtv9Kn8D/VKrL/zyStf8AV3n/tcfP/12R + pv8FWHkoAExvLG2kvAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACOjon/p5uS3ZGFf/+LgXz/d3Ft/2ZhXv9dWlj/WldU/19cWf9taWT/fXVv/4yDef9pYFb/s7Ks/8bG + v//Gxr//xcW+/8TEvP/Dw7r/wsK6/8LBuv+Zsbb/M4Wl/3zG4P8ydJD/jaOq/6mwrf+qqaX5X2BgVwAA + AAwPQ1tHca7F/z+QsP8AAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACPjor/npWP4mhkYf9RTUz/WVRR/2VeWf99dGj/iX5t/46Ccf+QhHP/kIRz/5GF + dP9oYFb/srGr/8PDvP/Cw7z/wsG5/8DBuf/AwLj/wMC3/76+t/+9vbf/Inia/1Otz/93k5v/nZyY/52c + mP+9vbX9uLm6bQAAAAEYUmxBRZa0/zKLr/8AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOjon/pZyW6IyDfv+Ognz/kIR6/42DeP+AeHH/cmxo/29q + Zv9xbGj/eHNt/4yEfP9pYVf/sK+p/8DAt//AwLn/vr62/769tv+9vbX/vLy0/7q6s/+6urP/HXSW/zyW + t/91lp//t7ev/6+vqP+1s63/nZ2eagAAAAAeXHpANIOi/ymCpf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNjIf/rqSe7YmBff9vamj/VFFQ/0A9 + PP9PTEn/XVlW/29oYP+Ad2v/iX5v/42Bcf9nX1P/sK+q/76+tv+9vbb/vLy0/7q6s/+5ubL/uLiy/7e4 + sf+3t7D/G3GT/yqEpf93l6H/tbWv/7OzrP+zs6z/vLm0dAAAAAAiYH09JXOS/yN9oP8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNjIj/oJqX73hz + cP98dHD/gXdv/4l+b/+NgnP/jYJy/46DdP+Qhnr/kId9/5KJfP9oX1T/r62o/7q6tP+6urP/ubmy/7e3 + sf+2trD/tbWt/7W1r/+0s6z/EVx8/yqGp/9djqL/srKq/7Kyq/+xsan/p6ajgAAAAAAlZ4aEJXiY/xpx + lP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACMiof/vrKr8p2Tjf+Kgn7/d3Ft/2xoZP9jXlv/X1xZ/2djX/9vamX/eXRt/4yDev9oYFb/rKun/7e3 + sP+3trD/trWv/7W1rf+zs6z/srKq/7Kxq/+xsar/EFp5/yeAov8+ja7/rq+n/6+vp/+traX/paWgiAAA + AAAhaoz3JXyf/xlwk/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACKiYb/nZeT9mdjYP9oZGH/bWdj/3FqYf98c2f/g3lq/4Z8av+MgG//j4Jw/46B + b/9mXVL/q6qm/7O0rP+0tK3/s7Kr/7Gyq/+xsKn/r6+o/62vp/+trab/MHOS/xZkhP8viKr/X4ud/6uq + pP+qqqL/paSfjzB1mHoLUW//JXCO/yp8nv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJiIX/u7Ku96Sak/+bjof/koV8/46Dd/+Lgnj/gHly/3l0 + bf98dXH/f3lz/4uDev9pYFb/qqql/7Kyqv+xsar/sLCo/7Cvp/+traf/rKyl/6uqpP+qqaT/g5id/wxX + d/8kc5L/KIKk/z94kP+Hl5n/Q3qT3BNgf/8NRFz/Gneb/yxykXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIT/v7mz95OOi/92cnD/X1xa/0VC + Qf9EQUD/VFBO/2FdWf9ybGf/hH1z/42Cdf9pYVf/qaml/6+vp/+vraf/rKym/6urpP+qqqP/qami/6io + oP+np5//p6eg/06JoP8ZdJX/NIut/zyQsP9LkKv/JIGk/w1Vcf8UYoL/NIam2zBykAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4T/k4+L+oN/ + fP+Gf3z/g3pz/4Z9b/+MgXL/jYFy/42Ccv+OgnL/joJz/4yAcP9lXVL/p6ai/6uspf+rq6T/qqqj/6mo + oP+op5//pqad/6Wlnv+lpZ3/o6Oc/6OjnP9biZv/MYWn/1ClxP9MmLb/H2iG/xVjhf8vfJ2nLnqcAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACGhYL/vbax/qykn/+QiYX/cm1q/2FdWf9lYF3/Y19d/2lmY/93c3D/hoJ+/5qUjP9xal//p6ai/6io + ov+oqaL/p6af/6amn/+kpJz/pKSc/6Kim/+goJr/oqCZ/5+emP+fnpj/n56Y/5+emP+cnJb/nJuYnQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACJiIX/hYF+/2lmY/9xb2n/gH95/46Mhf+joZn/uLar/8bEuP/OzMD/0M7A/9LR + w/+lpJn/pqWg/6amnv+mpp//pKSd/6SjnP+iopr/oJ+Z/5+fmf+dnZf/nJyU/5yclP+cm5P/m5uU/5ub + k/+ZmpP/mpmWpQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIh4T/29jH/9zYxf/U0cD/ysi4/8bEtf/Hxbb/x8S4/8bD + t//OzMD/zcu+/83Lvv+in5X/pqWf/6Ojm/+ko5v/oqKb/6Cgmf+enpj/nZ2W/5yclP+bm5P/mpuS/5qZ + kv+ZmJH/mZmR/5mZkf+Xl5D/mZmTqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIh4P/8vDf/+fj0P/Z1sP/zsu7/8jF + t//Hxbb/zMq8/83Kvf/OzMD/y87B/9HPwv+joZb/oqCc/6Cgmf+gn5n/n5+Z/52dlv+cnJb/m5uU/5mZ + kf+ZmZH/mJiQ/5eXj/+XlpD/lpaP/5aWjv+Tk43/lpaRrwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhIH/8/Di/+zo + 1P/f28n/xsO2/7WzqP+jopn/m5qT/52blf+gn5j/pqSd/7azqf+Xk4j/oKCb/52dlv+enpf/nJyW/5ub + k/+ZmZH/mJiQ/5eXj/+Wlo//lJSN/5KTjP+Skov/kpKL/5OSjP+QkIn/k5OQsQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACEhID/xMG4/5mWjf92c3D/XVpZ/1FOTP9XUk//XllU/2plX/92cGj/hH1y/4uAc/9oYFf/n5+b/5yc + lP+bnJT/mpqT/5iXkP+Xlo//lpaO/5OTjP+Rkoz/kpKK/5CQiv+RkIn/kI+J/5CPif+NjYX/kpKPtQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACNjYr/t7Ot/7GtqP+vqaX/pp2U/5aLff+Og3L/j4Jw/4+Ccf+Qg3H/kYRy/4t/ + bP9lXVP/np6Z/5qZkv+amZL/mJeQ/5aUjv+UlI3/kpKL/5CQif+QkIn/jo6H/46Nhv+Ojob/jY2F/42N + hv+Li4P/kJCMuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMjIj/zcrD/7m1sP+gnJn/j4qF/3x2cf9ybWj/b2ll/3Fs + Z/92cWz/gXp0/4uCd/9nX1b/nJuW/5iYkP+Yl5D/lpaO/5OSjP+Skov/kJCH/46Ph/+Ojob/jIyF/4uL + hP+Li4P/iouD/4qKgv+Hh4D/j46Lvo6NiwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKiob/mZaS/4eEgP+Gg4D/hYF9/4F8 + df98dWz/enNo/392a/+EfG//in9x/4uAcf9lXVP/nJuX/5aUjf+Wlo//k5OM/5CQiv+Qj4f/jo6G/4yM + hf+Li4P/iouD/4mJgf+Jh4D/iYmA/4eGf/+FhX3/jo2Kwo6MiwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKiof/29jQ/9DL + xP/Cvbb/s6yl/6qilP+ZjoD/j4V3/42Ddf+OhHf/j4V3/4uAcf9nX1T/m5qU/5SUjf+UlIz/kZGK/5CP + h/+Ojof/i4yE/4qKgv+JiYH/h4eA/4eHgP+Ghn//hYV+/4aFfv+Dg3r/jIyHxoyLiQMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACKiYT/ycbA/62qpv+Sj4z/g4B9/3Jva/9oZWH/X1xa/2RgXf9vaWb/enVx/4uDef9nX1b/mpmT/5KS + jP+SkYv/kI+H/42Nhv+LjIT/ioqB/4mHgP+Hh4D/hoV//4WFfv+EhH3/g4N6/4ODfP+BgXj/i4uHzI2L + iQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACJiIT/p6Se/5+cmP+fm5f/oJyY/5mUjP+Si4D/i4F0/4Z8bP+HfW3/jYJy/4l9 + bP9lXlT/mJiS/5GQif+Pj4n/jo6G/4yMhP+LioL/iYeA/4aGf/+FhX7/hIR9/4ODev+Cgnr/goJ5/4KC + ef9/gHb/iYmE0YuKhwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4P/3tzV/9nWzf/QzMT/wr63/7CqoP+fl4v/kYl9/4d+ + cf+GfXD/in9x/4V5av9gWU//lpaP/4+Qh/+Oj4f/jIyE/4qLg/+JiYH/h4Z//4WFff+Dg3z/g4N6/4GB + ef+AgHf/gIF4/39/d/99fXT/h4aE1YuKiQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGhoH/sK2p/4aEgf90cnD/bWtp/2xq + aP9wbWr/dnRw/4J/eP+QjYX/m5eO/56Zi/9zb2X/k5OO/46Ohv+NjYX/iouD/4mJgf+Ghn//hIR9/4OE + fP+BgXn/gYF4/4B/dv9/f3b/fX51/319df96enP/hYWB2IqJhwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhID/wcLA/8DB + vf/Hx8L/zMzE/87Nw//QzsD/0M29/9LNuv/Rzbn/0s65/9XPuv+dmY7/kpGM/42Nhf+MjIT/i4uD/4mH + gP+FhX7/g4N6/4KCev+AgHj/f393/35+dv99fXX/fX11/3p6c/95eXH/hYWB3YuKhwoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACDgn7/9Pbw//L06//v8ub/6Onf/+Li2P/f3c//29jJ/9fSwP/W0L3/1c+8/9DLt/+cmIz/kZGM/42N + hP+LjIT/h4eB/4aGf/+FhX3/goJ6/4GBeP+AgHf/fn52/3x8dP98fHT/fHpz/3l6cv93eG//g4OA4YqJ + hwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACCgn7/8/Xt//L06//v8uf/6Org/+Tk2v/f3tH/29jK/9jTwv/W0L7/1c+8/9DL + tv+bl4v/kZCL/4uMhP+MjIT/iYmA/4aGf/+Dg3z/goJ6/4CAeP9/fnb/fX10/3x8dP96eXH/eXlx/3h4 + cP92dmz/goJ/5YmHhg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgX7/8/Tt//L07P/w8uj/6uzk/+Xl3f/g39X/3NrM/9rW + xf/X0sH/1c+9/9DKtv+al4v/kZCK/4uLhP+Li4P/h4eA/4aFfv+Dg3z/goJ6/39/d/9+fnb/fX11/3p8 + cv95eXD/eHhw/3h3b/90dGv/goJ+6YqHhg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgX3/8/Xt//L07P/y9Ov/7/Hn/+fp + 4P/i4tn/3dzP/9rXxv/X08L/1dC9/9DLtv+alor/kI+K/4yMhP+Ki4P/hoaA/4aFf/+Dg3r/gYF5/4B/ + d/9+fnb/fX11/3p6cv96eXH/eHhv/3Z2bf90dGr/goF+7IqHhhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgX3/8/bw//X3 + 8//t7+b/5eXb/+Pi1//m5Nr/5ePY/+Ddz//Z1sT/1tG//9DLt/+alon/kZGL/4uLg/+LjIT/h4eA/4aF + fv+Dg3r/goJ6/4CAeP9+fnb/fX10/3p8cv95eXH/eHhw/3d2b/91dGv/goF+74uJhxYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACCgn7/7e/o/7Ssm/+imYL/oJmF/5eShv+YlIz/raqk/9DNxP/j4Nf/3tvN/9DMuf+bl4v/kJCL/4yM + hP+LjIP/iYmB/4aGf/+FhX3/g4N6/4CAd/9/f3f/fX10/3p6c/95enH/eHhx/3d3cP91dWz/goJ/8omH + hRsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACBgX7/kYdt/3RoRf9fW0v/SUdD/z4+Ov8+Pjr/QUE+/2NjYP+pqKX/4t7V/9nV + xv+dmY3/kI+K/4yMhP+Ki4P/iYmA/4aGfv+Dg3z/goJ5/4CAd/9+fXX/fX10/3l6cv94eHD/eHhv/3d2 + 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 + eP+SiX3/lox//5yRgv9qYlj/5OTg/9PUzP/T08n/vLy0/0vA6/9LwOv/Vsv1/1HF8P9Nwu3/Sr/q/2jW + //8/tOD/LKDN/yygzf8soM3/P7Tg/wF4pv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEvrT/wruw/7iw + pP+vppn/pp2P/6CVhv+ckYL/nJGC/2piWP/i4dz/zs/G/87Qxv+ysav/AXim/wF4pv9OfZf/Tn2X/059 + l/8BeKb/AXim/wF4pv9SepL/Tn2X/0dzj/8BeKb/AXim/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW/ + tf+xq6L/oZuS/5CJgP+FfnX/g3xz/4J7c/+Jgnn/a2Ra/9/f2v/Ly8T/x8fA/8jIwf+3t6//np2a/1F8 + l/9kyOj/V3eQ/8/Ox/8AAAAAAAAAAEV1k/8zq9f/RHub/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAyMO5/3x4df94c2//gXt1/42FfP+Qh33/lox//5mPgf9pYlj/3NzY/8XGv//Cwrr/wsK6/8TE + vf/ExLz/U32Y/2XJ6P9WeJH/zMzE/wAAAAAAAAAARnSS/zOs2f8+epv/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADOysH/ycO4/764rP+1rKD/q6OV/6SajP+ek4T/nJGC/2liWP/Y2dT/wMC5/729 + tv+8vLT/urqz/7q6tP9TfZj/Zcno/1Z4kf/IyMD/AAAAAAAAAABGdJL/M6zZ/z56m/8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Lwv+wrKP/mpSM/4uFfv+Efnb/fXdx/4J8dP+GgHn/a2Rb/9XW + 0v+8vLX/uLiy/7a2sP+2tq//tbSt/1aAmP9kyOb/XYOb/8XEvf8AAAAAAAAAAEiJqf80tOH/W36Y/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzsvE/3p3dP+Hg37/joiA/5ONhP+bkof/m5GE/5yR + gv9pYlj/0tLO/7i3sP+0tK3/srKq/7Gxqv+wsKn/YYSa/23H4/9tscn/dZmu/3uXqv9Zk67/NLHc/xCd + 2P9TfZjZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADSz8f/z8q//8a+tP+7tKj/sqmd/6mf + kv+imIn/m5GC/2liWf/Oz8r/s7Kr/6+wqP+traf/q6ul/6qqpP+XoqX/U32Y/2vD3/9zy+T/a8Ld/06w + 0v8Qndj/U32Y/3uXqmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7LxP+Oiob/dXNv/3Zz + bv91cWv/dnFs/4J+eP+RjYX/aWJZ/8vLx/+urqf/q6qj/6moof+np6D/pqae/6amnv+Un6L/ZIab/1Z4 + kv9Tdo//VHeR/1N9mNl7l6poAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz8zE/7Ov + qP/Hw7j/x8O3/83KvP/X1cf/0M7A/8jGuP9oYlj/x8fE/6qqov+npp7/paSc/6KjnP+ioZr/oJ+Z/6Cf + mf+fnpj/s7Kr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADSz8f/+PXl//Lv3//q6Nj/4t/R/9/czv/W1Mb/zcu9/2tkXP/Cwbz/paSd/6Oim/+gn5n/nZ6X/5qc + lP+bm5P/mpqT/5makv+urab/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANLPx//59ub/9PHi/+3q2//l4tP/39zO/9bUxv/Ny73/bGRc/769uf+goJn/np6X/5ub + lf+ampL/mJmQ/5eXkP+Wl4//lpaO/6moof8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA0s/H//n25v/28+P/8O3d/+jl1v/f3M7/1tTG/83Lvf9qZFv/vLy4/5yc + lf+amZL/l5eP/5aVjv+UlI3/kpKL/5KRiv+RkIj/paSc/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysL/nJqU/4OBff+Fgn3/hoJ9/4eCff+Df3n/i4V+/2hi + Wf+8vbj/mpqR/5aVjv+UlIz/j5GK/4+PiP+OjYf/jo2G/4yMg/+gn5f/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/MxP+yr6r/vrmy/7ayqf+xqqH/raab/66l + mP+lnI7/aGJa/7q6tf+XlY//kpKL/5CQiP+Njob/jIyE/4qKg/+KioL/hoZ+/5ubk/8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0s/H/97a0v/W0cn/zce+/8S8 + sv+5sab/sKea/6edkP9qZFv/uLi0/5KSi/+Pj4f/jI2F/4qKgv+IiID/h4eA/4aFfv+Dg3v/mJeO/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysL/mZeT/5SR + jv+MiIT/gn97/4iDfv+NiIH/kouD/2diW/+1tbL/kI+I/42Nhf+KioL/iIaA/4WFfv+EhHz/goJ6/4CB + dv+Tk4r/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/M + xP+yr6v/raqk/7Cspf+3saj/samf/6qimP+mnpL/ZmJa/7O0r/+NjYX/iouD/4iHgP+EhH3/g4N7/4GB + eP+AgXf/fX1z/5CPh/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA0s/H/+Tg2f/d2dD/1NDH/8vFu//Auq//t6+i/66kl/9rZmH/rq6q/4uLg/+Ih4D/hIR8/4CC + ev+AgHf/f352/319df95eXD/jYyE/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADSz8f/n5+f/46PjP+EhYL/gH97/4uIgP+Yk4r/nZmP/2ZkX/+srKb/ioqC/4aG + f/+Dg3v/gYF4/39+dv98fHT/e3tz/3V3bf+KiYH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAANLPx//n5+T/2dvU/93e1v/f3dL/2tbG/9vVw//MxrH/YWBb/6ur + pv+JiYH/hYV+/4KCe/9/f3f/fX11/3p7cv93d2//c3Np/4eGf/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0s/H//////////r/9vjw/+7u5P/i38//3NbC/8zH + sf9hX1r/q6um/4eIgf+Fg37/goJ5/39/d/99fXX/enpy/3l4cP9ycmj/h4Z+/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS0Mf/39zQ/7Wvm/+tqJv/s6+o/9XS + yP/r59n/0Mu3/2FgWf+rq6b/ioqC/4aEfv+Dg3n/gIB2/3x8c/94eXD/dXdv/3FxZ/+Hhn7/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPQyP99cE7/U05D/0FA + Pf8+Pjz/aWln/9HOyv/c2Mj/ZGJc/6mrpf+Iin7/hYZ9/4CBeP97e3H/fHxy/3d4b/93d27/dHNp/4eG + fv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArquopq2q + o8Crqqm/r66sx6yrqtCpp6fYraup4rCtp+yXlZPtj46L34+QjdCNjYvBkJCNtKCgn6eVlJKdoJ+fk6Cf + noqXlpSEsK+vbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///AAf/hwAH+AEAB+AAAAfgA + AAH4AAAB+AAAAfgAAAH4AAAB+AAAx/gAAMf4AADH+AAAx/gAAAf4AAAH+AAAD/gAAP/4AAD/+AAA//gA + AP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP8oAAAAGAAAADAA + AAABACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACclo0GZWJbTUVGRCwlJiUEAAAAAAF4pv8BeKb/AXim/wF4pv8BeKb/AXim/wF4pv8BeKb/AXim/wF4 + pv8AAAAAAAAAAAAAAAAAAAAAnJaNIJyWjUGclo1vnJaNqJyWjf+EeW/8XHJX/8HDv/EyMzJ5FxcYElDK + 9v9OyfX/Tcj0/2jj//9Fv+z/MKrY/zCq2P8ai7j/IpzK/wF4pv8AAAAAAAAAAAAAAACclo3/nJaN/5yW + jf9/eW3/g21j/w66LP8A/z7/Wmth//j18//p6OD/h4eBwiqj0v8ln83/JZ/N/z235P8alMP/GoKr/xqC + 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 + AADAPwAAwD8AAMA/AADAPwAA + + + \ No newline at end of file diff --git a/CustomAppsRunForm.Designer.cs b/CustomAppsRunForm.Designer.cs new file mode 100644 index 0000000..5d4bd43 --- /dev/null +++ b/CustomAppsRunForm.Designer.cs @@ -0,0 +1,192 @@ +namespace MeshCentralRouter +{ + partial class CustomAppsRunForm + { + /// + /// 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(CustomAppsRunForm)); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.portTextBox = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.addressTextBox = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.commandTextBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.okButton = new System.Windows.Forms.Button(); + this.cancelButton = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.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.groupBox1.Controls.Add(this.portTextBox); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.addressTextBox); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.commandTextBox); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Location = new System.Drawing.Point(12, 49); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(382, 101); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Application Command Line"; + // + // portTextBox + // + this.portTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.portTextBox.Location = new System.Drawing.Point(116, 71); + this.portTextBox.Name = "portTextBox"; + this.portTextBox.Size = new System.Drawing.Size(260, 20); + this.portTextBox.TabIndex = 13; + this.portTextBox.Text = "1234"; + this.portTextBox.TextChanged += new System.EventHandler(this.portTextBox_TextChanged); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 74); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(26, 13); + this.label4.TabIndex = 12; + this.label4.Text = "Port"; + // + // addressTextBox + // + this.addressTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.addressTextBox.Location = new System.Drawing.Point(116, 45); + this.addressTextBox.Name = "addressTextBox"; + this.addressTextBox.Size = new System.Drawing.Size(260, 20); + this.addressTextBox.TabIndex = 11; + this.addressTextBox.Text = "127.0.0.1"; + this.addressTextBox.TextChanged += new System.EventHandler(this.addressTextBox_TextChanged); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 48); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(45, 13); + this.label3.TabIndex = 10; + this.label3.Text = "Address"; + // + // commandTextBox + // + this.commandTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.commandTextBox.Location = new System.Drawing.Point(116, 19); + this.commandTextBox.Name = "commandTextBox"; + this.commandTextBox.ReadOnly = true; + this.commandTextBox.Size = new System.Drawing.Size(260, 20); + this.commandTextBox.TabIndex = 9; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 22); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(54, 13); + this.label2.TabIndex = 8; + this.label2.Text = "Command"; + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.Location = new System.Drawing.Point(238, 156); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 3; + this.okButton.Text = "OK"; + this.okButton.UseVisualStyleBackColor = true; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // cancelButton + // + this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.Location = new System.Drawing.Point(319, 156); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 2; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.Location = new System.Drawing.Point(12, 11); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(382, 35); + this.label1.TabIndex = 4; + this.label1.Text = "Test that the application runs correctly by specifying and address and port and c" + + "lick ok to run the application."; + // + // CustomAppsRunForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size(406, 191); + this.Controls.Add(this.label1); + this.Controls.Add(this.okButton); + this.Controls.Add(this.cancelButton); + this.Controls.Add(this.groupBox1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "CustomAppsRunForm"; + this.Text = "Test Application"; + this.Load += new System.EventHandler(this.CustomAppsRunForm_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox portTextBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox addressTextBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox commandTextBox; + private System.Windows.Forms.Label label2; + } +} \ No newline at end of file diff --git a/CustomAppsRunForm.cs b/CustomAppsRunForm.cs new file mode 100644 index 0000000..a3862a2 --- /dev/null +++ b/CustomAppsRunForm.cs @@ -0,0 +1,58 @@ +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 MeshCentralRouter +{ + public partial class CustomAppsRunForm : Form + { + private string command = null; + + public CustomAppsRunForm(string command) + { + this.command = command; + InitializeComponent(); + } + + public string getFinalCommand() + { + return command.Replace("%L", addressTextBox.Text).Replace("%P", portTextBox.Text); + } + + public void UpdateInfo() + { + commandTextBox.Text = getFinalCommand(); + } + + private void addressTextBox_TextChanged(object sender, EventArgs e) + { + UpdateInfo(); + } + + private void portTextBox_TextChanged(object sender, EventArgs e) + { + UpdateInfo(); + } + + private void CustomAppsRunForm_Load(object sender, EventArgs e) + { + UpdateInfo(); + } + + private void okButton_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.OK; + } + + private void cancelButton_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + } + } +} diff --git a/CustomAppsRunForm.resx b/CustomAppsRunForm.resx new file mode 100644 index 0000000..b93e49a --- /dev/null +++ b/CustomAppsRunForm.resx @@ -0,0 +1,1815 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAA0AMDAQAAEABABoBgAA1gAAACAgEAABAAQA6AIAAD4HAAAYGBAAAQAEAOgBAAAmCgAAEBAQAAEA + BAAoAQAADgwAADAwAAABAAgAqA4AADYNAAAgIAAAAQAIAKgIAADeGwAAGBgAAAEACADIBgAAhiQAABAQ + AAABAAgAaAUAAE4rAAAAAAAAAQAgAPgWAQC2MAAAMDAAAAEAIACoJQAArkcBACAgAAABACAAqBAAAFZt + AQAYGAAAAQAgAIgJAAD+fQEAEBAAAAEAIABoBAAAhocBACgAAAAwAAAAYAAAAAEABAAAAAAAgAQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/ + /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAczEwNwAAAAAAAAAAAAAAAId3cAAAAAAzc4 + N7gzAAAAAAAAAAAACHd3d4hwAABzeIt7c4tzcAAAAAAAAAh3d3d6p4j4cAN7iLeTOTiYcAAAAAAACHd3 + d3d4t3+Ih3OLeDODg4t7cAAAAAAAB3d3eHh4doj4+Ie3v4s5M4t7gAAAAAAAB3eHhnZ2d4iPiIOIeDl7 + c4iTAAAAAAAAB4d2VlZ3dYiI+Ie5v4t4O5t3gAAAAAAAB4ZXd3d3doj4iIOIiLczl4g7gAAAAAAAB4d3 + ZyV3d4iI+Ie7iIOLe4txAAAAAAAAB4dhdXd3doiIiIOIj7OXM3sbAAAAAAAAB3d3d2dndYiPiIOIuIuL + iJhzAAAAAAAAB4dlY3V3doiIiIi4e3e3k3M3AAAAAAAAB4d3d3d3d3iIiINzgTd7c4cAAAAAAAAAB4d3 + ZWdndoiIiIiDg4iAAIMAAAAAAAAAB3dDd3d3dYiIiIiDt4eAADsAAAAAAAAAB4d3dnV3doiIiIiDd4iA + AHMAAAAAAAAAB4d0NDZ3d3iIiIiDOIeAADkAAAAAAAAAB4Z3d3d3doiIiIeDeYiICDcAAAAAAAAAB4d3 + dldndXiHh4iDN4eIAzMAAAAAAAAAB4d0d3d3doiIiHh3M3iIA3kAAAAAAAAAB4d3d3d3d3h4eIeHMzN3 + MTAAAAAAAAAAB4d2FkNndniHh4h4c3ezE4AAAAAAAAAAB3d3d3d3dYeIeHh4d7lzdwAAAAAAAAAAB4h3 + Z3V3doh4eH54eHiIAAAAAAAAAAAAB3dnd4iIiHh4h4eHh4d4AAAAAAAAAAAAB4iIiIiIiHh3h4d4d3h4 + AAAAAAAAAAAAB/+IiIiIiHh4d3h3h3eIAAAAAAAAAAAAB/j4h4eIhoeHh4eHeHd4AAAAAAAAAAAAB4dn + R2dnd3d4d3d3d3h4AAAAAAAAAAAAB4iHd3d3Z3h3h4aHh3d4AAAAAAAAAAAAB4h3d3Z3dXh3d3h3d3d4 + AAAAAAAAAAAAB3d3d3d3doeHhod3d4Z4AAAAAAAAAAAAB/iId3d3dnd3eHd3d3d4AAAAAAAAAAAAB4h3 + dnR2dYd4d3d3d3d4AAAAAAAAAAAAB4eHd3d3d3d3d3d353d3AAAAAAAAAAAAB4+Ih3d3dnh3d4aHd3d4 + AAAAAAAAAAAAB4dnZ3d3d3d3hnd3d3doAAAAAAAAAAAAB4iIiIiIiHeHd3d3dnd3AAAAAAAAAAAAB/// + +IiIh3d3d3d3d3d3AAAAAAAAAAAAB/j4+PiIiHd3d3d2d3Z3AAAAAAAAAAAAB//4+I+Ijnh3d3d3d3d3 + AAAAAAAAAAAAB/j/j4iIh3d3d3Z3d2d3AAAAAAAAAAAAB/+Pj4+IiHd3d3d3Z3d3AAAAAAAAAAAAB/eH + d4iIh4d4aHd3d3d3AAAAAAAAAAAAB3ZmZCeIiGh3d2d3d3ZXAAAAAAAAAAAAB3h3d4eIiHd3d3d3d3d3 + AAAAAAAAAAAAAIiPiIiIh4iIiIAAAAAAAAAAAAAA/////4B/AAD//4P+AD8AAP/4AfAAHwAA/4AAYAAf + AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAD8AAP4A + AAAAPwAA/gAAAAA/AAD+AAAAAP8AAP4AAAAc/wAA/gAAABz/AAD+AAAAHP8AAP4AAAAc/wAA/gAAAAj/ + AAD+AAAACP8AAP4AAAAI/wAA/gAAAAH/AAD+AAAAAf8AAP4AAAAD/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA// + AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP8AAB///wAAKAAAACAA + AABAAAAAAQAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA + AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAzMzMzMzMwAAAAAAAA + AAAAuLe4t7m4kAAAAAAIh3eHAHubObMzMzAAAAh3d3o2/4C3uLiLe5swAAAIeHd4t4/4e3k7k5NzMAAA + CIh4d3b4j7e4uLizuDAAAAh3dnd3j4h7e5ezOTOQAAAIdnd3dviIt7i4uLe4MAAACIiHh4eIiDlzeTlz + eTAAAAh3d3Z2+IiIe3gAe3AAAAAId3d3dYiIiHg4ADeQAAAACIiHh4b4iIg4OAB7cAAAAAiHd2d3iIiI + e3gAe3AAAAAId3eHdoiHh3iHg7lwAAAACIiIeHeIiHhzi4e3AAAAAAh3Z2d2iHh4h3OXcAAAAAAIiIiI + hYh4h4eIAAAAAAAACP+PiIeHh3h3hwAAAAAAAAj/j4+GiHh3h3gAAAAAAAAI+PiIh4eHd3h4AAAAAAAA + CHd3d3aHd4d3dwAAAAAAAAiIiIh3h4d3d3gAAAAAAAAI+Ijnhod3d4Z3AAAAAAAACHd3d3eHeHZ3eAAA + AAAAAAiIiIeEh3d3d3cAAAAAAAAI+IiId4d3d3d3AAAAAAAACId2d4aHd3d3dwAAAAAAAAj4+PiGh3d2 + d2cAAAAAAAAI//+Ih3d3d3d3AAAAAAAACIh4j4aHd3d3dwAAAAAAAAh2QniHd3d3Z3cAAAAAAAAIiIiI + h4h4iIiAAAAAAP//wAH//8AB/4DAAfgAQAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAMf4AADH+AAAx/gA + AMf4AAAH+AAAD/gAAB/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gA + AP/4AAD/+AAA//gAAP/4AAH/KAAAABgAAAAwAAAAAQAEAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP// + /wAAAAAAAAADMzMzMzAAAACHd4ALi4t7mzAAd3dyp/iDubOTczAAiHh3to/4uIuLOTAAiHd3d/iDk7M5 + NzAAiHeHd4iLi4t7OzAAiId3d/iDc3k3dTAAh3d4Z4iIe3ADtwAAiIh3eIiIeDAHlwAAiHfnd4iIODAH + twAAiIh4d4h4e4eLNwAAiGd3h4h4d4t5eAAAiPj4hoeHdzc4gAAAiP+Ih4eHh4AAAAAAiIiIh4d3eHAA + AAAAiId3d4eHd3AAAAAAiIiIdod3d3AAAAAAiHhod4d3d3AAAAAAiIiId3d3d3AAAAAAiId4d4d3Z3AA + AAAAj4+IhoZ3d3AAAAAAj/j4h3d3d3AAAAAAiGdoh4d3dnAAAAAAiIeIh4eIiIAAAAD/+AEA/BgBAMAA + AQDAAAEAwAABAMAAAQDAAAEAwABjAMAAYwDAAGMAwAADAMAAAwDAAAcAwAB/AMAAfwDAAH8AwAB/AMAA + fwDAAH8AwAB/AMAAfwDAAH8AwAB/AMAAfwAoAAAAEAAAACAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A + /wD//wAA////AAB3d3MzMzMwAIeHiLi3uTAAiHhzt5M7MACIiIi4u3eQAIeHgzsXmzAAiIiIdwA3AACI + johzADcAAIiIh3e3NwAAh3Z3d3NwAACP/4+HAAAAAI+Pj/cAAAAAh3d3dwAAAACP+PiHAAAAAI//j4gA + AAAAiGYGiAAAAACIiIh4AAAAwAEAAMABAADAAQAAwAEAAMABAADAMwAAwDMAAMADAADABwAAwD8AAMA/ + AADAPwAAwD8AAMA/AADAPwAAwD8AACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAB + AAAAAAAAPj46AEA9PABBQT4ADDtRAA9BVQANRFwADUhgAABIagAYSWAAC1FvAB1UbwAHVnYAElt6ACZP + YgATYH8AM2J2AEhFQwBRTk0AV1NNAFVSUQBZVVIAXFhVAF5bWQBgWU8AZV5VAHRoRQBpYFUAZWFdAGtk + WwBxal8AZWNgAGllYgBuaWQAbWpoAHJsZwB6cWYAdXNrAHp0awB3eG8AeHhvAHVzcAB8dXAAe3tzAHx8 + egCFe2wAg3tzAIl/cQCCf3oAin95AH+AdgAO8U4ADexdAI2AbwCRh20AgIB3AI2BcwCDg3wAi4J7AJCE + cgCQhXsAk4l8AJmOfwAKX4EAE2KEAB9ohgASZ4kAFWmLABdukQAUcpUAG3KVABx3mgAcep4AIGeFACdu + jwAlcI4AJXOTACF3mgAkepsAKXyeADFzkAA8d5IAP3iQACR+oABId4wAW3WCACWAowArg6QAJoesAC6I + qgAyhKQAMYeoADOKqwA5jKwANI6yADqPsQAskroANJCzAD2StAA9mbsAXYqcAHiDhwBhhpcAZomYAHaU + nQB/kpwAToqiAFyNoQBLkKsAXZGmAEKUtQBBmLcASpi2AEGWuABEmrsAUZq3AHSWowBUoL8Ac6C1AH2n + uAB2qb4AZ/S4AEKdwQBKn8AARqHEAEyixABNqcoAUKXFAF2pxgBTqssAWK3OAE+u0ABYr9EAUrPXAFux + 0QBbtdgAWbncAGGqxwBgrswAca7FAHO0zQBgtdUAbbXRAGO41gBjutoAarzcAHK61QA98tUAc8DeAGbE + 5QBtwuIAccXlAHzG4AB2yOcAe8rmAHTK6QB6yukAhoWAAImGgQCLi4MAjo2JAJKLgwCajoQAkI6KAI+Q + hwCTkYYAnpOFAJOSjACblYsAnZiMAIWXmwCVlZEAmZaQAJqakwCTnJwAnp2YAKCThwCgmYQAoZaNAKWf + jwChnZcAo6GWAKqilACjo5wAqqOeALSsmwCNo6oAmqWmAI6wvgCZsbYAq6qkALGqowCwragAqbCtALOy + qwC5tasAqrW2ALW1sQC7tbEAt7ixALu7tACwvLoAvby7AMG1rwDBvLYAtsG/AMXEugDRzLkA1dC9AI6w + wACcvcsAtcfPAITO6gCP0+wAmtftAJrY7QCD1fQAkNv3AKjd8gCU4fwAoeL7ALfl9wC55fUAs+r9AMXF + wgDJxsAAzMvDAMTOygDNzMoA0M3FANTRwgDZ1cQA29jGANPTywDY1s0A29nMANLR0ADb29IA4N3PAOHe + 1QDf4NcA5OHUAOzo1ADk49oA6OnfAPLw3wDC6/sAzvH/AOfp4ADq7OIA7e/oAO/x5gDy8+oA6/v/APT2 + 8QD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdlELCQQFB2kAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAADGPRu3pwAAAAAAAAAAAFBMU2F6fGGHg0AQAAAAAAAAAAAAAAAAAAAAAAAAAMM9PKam + phvI7SwAAAAAAFRAXdaZfYF9elqBkX5gZgAAAAAAAAAAAAAAAAAAyKGhODg9PS40Mx3A7fm3KQAASYSR + ld+AXFdGQj9ihl2FdAAAAAAAAAAAAAAAAMalMTwxOz0+PSp5kx3A7e306SllYpmEftaAXGJ7e2KUnHpY + ZwAAAAAAAAAAAAAAAJ06MaGiPD6mprCiphvC7e3t7fS7Yn2GlveOel1XTkN6f1qIvAAAAAAAAAAAAAAA + AJ2sobCwsDocFiAqoR3C7e3t6u3jXZaRh9p1TlxcXVySnFdFAAAAAAAAAAAAAAAAAKO/oSkgFQMSHSY4 + OxvC7ent6em7eoKCkfaSfYF9YlqBj2J80gAAAAAAAAAAAAAAAKO4EhYqKjE4oT0wPB3C6enp6enJXJvY + 1fZ1Tk9ORkaKkUNh0gAAAAAAAAAAAAAAAKW4LjwxIRcVFiAmOh3C6enp6eKuf5aIiN6SfYGBf3+amWJF + AAAAAAAAAAAAAAAAAKO4KRQREyExNTg7PBvC6eXl4uXNWZnU3v2AXFpPTE59gUVeAAAAAAAAAAAAAAAA + AKO4KS4xPC4cFxwjOh3A4uTl5eGuY9nc29+cgZGWm49cf31IAAAAAAAAAAAAAAAAAKO4KiAWFBUbIy04 + OxvC4uLi4uLEkdiManuNgYSBfQxVDk5iAAAAAAAAAAAAAAAAAKO0KSouNTg7oaE6oRvC4uLizs7NYWIN + dwhcYn2BYgzTbQAAAAAAAAAAAAAAAAAAAKO/MTEqHBYWHCAqOhvC4ODgzs7Ozr1amFC6wb4AAACLYgAA + AAAAAAAAAAAAAAAAAKW4IBMUHCotNTs7OxvC4MzMzs3IyMhOg2mvr8gAAABiXAAAAAAAAAAAAAAAAAAA + AKO4MTE8OCojISMmOh3AzMzMyMzMx8hHYnTCwcIAAABaVwAAAAAAAAAAAAAAAAAAAKDAMSMUAhIWISo1 + OBvAzMzIyMfHx8dGV3THwsIAAABMUwAAAAAAAAAAAAAAAAAAAKC4KioqNTg4Ozw8PRu+yMjIx8fHwsIN + WWvCwsLpANFORgAAAAAAAAAAAAAAAAAAAKDDsjEqIBwcGyMmOhvAx8fHwsHCwsINU13CwL7kAEpORAAA + AAAAAAAAAAAAAAAAADyvHyAgIyQtLTg4NRu+wsLBwsLAwMBMQVlrvr7lAApMTwAAAAAAAAAAAAAAAAAA + AJ/GtKIxMTgqKiouMRu+wcLCwr7Avr6qDEtXUqprQAZHAAAAAAAAAAAAAAAAAAAAAJ/MoyoWERETFiMu + OBu+wr6+vr6+vr6+akVcX2xTCkBzAAAAAAAAAAAAAAAAAAAAAJ+jMTAxLjg4ODg4OBe4vr6+vre3t7W1 + t2taf3BBQHgAAAAAAAAAAAAAAAAAAAAAAJ3GuKMjFiAcICoxsB6+vr6+t7e3t7W3ra21ta3gAAAAAAAA + AAAAAAAAAAAAAAAAAJ8xIiMwo7TDzOXl5bi3t761vrW1ta6tta2tra3IAAAAAAAAAAAAAAAAAAAAAAAA + AJ/p6+XOzs7Ozs/P4bW3t7W3ta61ra2tra2trazIAAAAAAAAAAAAAAAAAAAAAAAAAJ318efPzs/Pz+Xi + 5bW3tbetta2trKysrKynrKfHAAAAAAAAAAAAAAAAAAAAAAAAAJ318u7OubWsrLS4wqa3ra2vraysrKyn + p6enpKTFAAAAAAAAAAAAAAAAAAAAAAAAAJ3gsCUcEhMWICktMRe1ra2traynp6ekp6SkpKTEAAAAAAAA + AAAAAAAAAAAAAAAAAKPCwLi1PDs4NTY2NRi3ra2sp6enpKekpKSkpKC+AAAAAAAAAAAAAAAAAAAAAAAA + AKPixrShKiMjIykuMRutraesp6ekpKSfn5+fnzDAAAAAAAAAAAAAAAAAAAAAAAAAAKCnPJ0xMCYkKjU1 + NRetsK2kpKSkn5+fn52fnZ2+AAAAAAAAAAAAAAAAAAAAAAAAAKDt5cjAtqI7ODg6NRutpKekpKSkn5+d + nZ2dnTK+AAAAAAAAAAAAAAAAAAAAAAAAAJ3gwKMxKSAXHCEqOhetp6eko5+fn52dnZ0ynTK3AAAAAAAA + AAAAAAAAAAAAAAAAAKC3r6+vp6E4LS04NRutp6SjoJ8wn52dMp0yMjK3AAAAAAAAAAAAAAAAAAAAAAAA + AJ3t7eXMwKY9LjE1LRinpKSgnZ+fOTkyMjIyMjKtAAAAAAAAAAAAAAAAAAAAAAAAAJ3AnSkiICMpMKCm + rR6npKCdoJ05OTKdMjIyMiutAAAAAAAAAAAAAAAAAAAAAAAAAJ3gyODi5eXPz8/Pz7OnoKCfnTkynTIy + MjIyKyurAAAAAAAAAAAAAAAAAAAAAAAAADD+/vz59Ovr5+fPz62koJ+dnZ05MjIyKzInKyWkAAAAAAAA + AAAAAAAAAAAAAAAAAJ38/Pr09Ovr58/Qz6akoJ+fOTk5MjIyJycrJSegAAAAAAAAAAAAAAAAAAAAAAAA + ADD+/Pz59O3r59DQz6ikoJ2dOTk5MjIrMicnKyWgAAAAAAAAAAAAAAAAAAAAAAAAADD+/Pz69PTr6Ofn + z6akoJ+dnTkyMjIrJysnJSWgAAAAAAAAAAAAAAAAAAAAAAAAADD+/vr07fTx7ufPz6WnnZ+dOTk5MjIr + KycnJyWfAAAAAAAAAAAAAAAAAAAAAAAAAJ36ubGxpqe+5fHrz62lpJ+fnTk5MjIyKysrJSWgAAAAAAAA + AAAAAAAAAAAAAAAAADA4GhgRAQEDHL7v562loJ2fOTkvMjIrJycnJyU5AAAAAAAAAAAAAAAAAAAAAAAA + ADCxs6Slo6Snr8DgzrWloJ+fn52dOTedMJ85nZ+uAAAAAAAAAAAAAAAAAAAAAAAAAADq7OXs5ePjysjG + wsC3wMHHyM7iAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////4B/AAD//4P+AD8AAP/4AfAAHwAA/4AAYAAf + AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAB8AAP4AAAAAHwAA/gAAAAA/AAD+AAAAAD8AAP4A + AAAAPwAA/gAAAAA/AAD+AAAAAP8AAP4AAAAc/wAA/gAAABz/AAD+AAAAHP8AAP4AAAAc/wAA/gAAAAj/ + AAD+AAAACP8AAP4AAAAI/wAA/gAAAAH/AAD+AAAAAf8AAP4AAAAD/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA// + AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP4A + AAAP/wAA/gAAAA//AAD+AAAAD/8AAP4AAAAP/wAA/gAAAA//AAD+AAAAD/8AAP8AAB///wAAKAAAACAA + AABAAAAAAQAIAAAAAAAABAAAAAAAAAAAAAAAAQAAAAEAAAAAAAA+PjwAQUA9AFNOQwBjW1EAYV9aAH1w + TgBkYVsAaWJYAGpkWgBsZVsAa2RcAGxkXABrZmEAaWlnAG1qZgBxcWcAcnJoAHRxaQB1cm0AdnduAHhz + bwB6dG0Ad3hvAHt3cgB5eXEAfnhxAHx8cgB8eHUAfX11AIF7cwCDfHMAgXt1AIJ8dACEfnUAgX55AIR/ + eAAAzEYAE+5RAICAdgCBgnkAhoB5AIGBfgCGgn0AhYV9AImCeACIg34Ai4V+AI2FfQCIin4AkYd7AJCH + fQCQiX0AlYl+AJaMfwA+epsAAXimAEdzjwBTdo8ARXSSAE59lwBEe5sAVXeQAFJ6kgBWeJEAUXyXAFN9 + mABbfpgAF4y5AByRvgBWgJgAXYObAGKFmgBIiakAWZOuAGyQpwB7l6oAdZmuACzTuABV0pwAEJ3YACCV + wgAil8QAJJnGACmdygArn8wALKDNADCk0QAzp9QAM6vXADWq1gAzrNkAOa7aADSx3AA7sNwANLThAD+0 + 4ABOsNIAbbHJAEO45ABFuuUAR7znAEm+6QBrwt4AS8DrAEzB7ABRxfAAVsv1AF7T/QBtx+MAZMjmAGTI + 6ABzy+QAYNX/AGTV/wBo1v8AhYaBAIiGgACHiIEAiYmBAI2IgQCMjIMAjYmFAI2NhQCOj4oAkYqBAJGN + hQCYjoAAn4+FAJCPiACPkYoAm5GCAJyRggCbkYUAnZKEAJOTjACYlIwAnZmPAJeXkACZl5MAmpqTAJ6d + mgCglYYAopiJAKSajAClnI4AoZqSAKadkQChnpYAqZ+SAKCfmQCpoJIAqaGVAK6klwChoJoAoqOcAKWl + nQCqopgAraWZAK2omwCwp5oAta+bALGpnQCUn6IAl6KlAKWloQCrqqQArq6qALGqoQCwrKMAtq2hALCs + pQCyr6kAr7CoALiwpQCxsaoAtrGoALCwrgC1s60As7SvALW1rgC7tKgAvrisALW0sgC4t7AAubmyAL65 + sgC5ubQAvLy0ALy8uQDAuq8AwLqwAMS8sgDDvrcAxb60AMC/vADHw7cAzMaxAMHBuQDGwbkAwsG8AMTE + vQDJxLoAzcq9ANDLtwDExMEAyMfHAMjIwADNysEAysnGAM7LxADOzMQAzM3KANHOxgDQzskAztDGANXS + xgDb1cMA09HIANXRyADS0s4A09TMANfXzwDe28wA1dbSANjY0ADd2tEA29zSAN/c0QDY2tQA3d7WAN3d + 2QDi388A4t/RAOXi0wDo5dYA5ODZAOXm2wDi4dwA5uXcAOvn2QDr6dkA8e7eAOXl4ADn5+QA6erkAOrs + 5gDu7uQA9fLiAPj15QDw8eoA9vjxAPv58AD///cA///6AP///wAAAAAAAAAAAAAAAAAAAAAAAAA4ODg4 + ODg4ODg4ODg4AAAAAAAAAAAAAAAAAAAAAAAAAGhoZmRkZGxgVlZWYDgAAAAAAAAAAAAAx556NAT6KgAA + WFhTU1JRWkQ4ODhFOAAAAAAAAMGYMjI0gCUmCvv9mgBoaGhmZGRxYFZWVmA4AAAAAAAAwXqShYV/T04K + 9e/971hYVlVVU1xEODg4RTgAAAAAAAC+taKYj4WFNAj14uHWaGhqaGZmcWBWVlZgOAAAAAAAAMGSMBoW + EhotCvPh3sdYWFhXVlVeRDg4OEU4AAAAAAAAvg8WIS00f4AI793dvGhoa2poaHNgVlZWYDgAAAAAAADB + vrWekY6EhAjv09evODg8PDw4ODhAQDs4OAAAAAAAAMGokn0hISEtCufTz8+vmkFvQNMAADtbPQAAAAAA + AAAAxBoVITAyNIQI4s/Dx8/HQW9A0wAAO1s3AAAAAAAAAADTxL6omJGOhAjhw7y8u7xBb0DPAAA7WzcA + AAAAAAAAANOoiDAhISEhCuG8u7uvt0ZuR8cAAElfQwAAAAAAAAAA0xV1en2FhYUK3Luvr6+vSG1iTUxK + XVBLAAAAAAAAAADa0MG1opWPhQjWr6+tpqakQWdwZ2FQQQAAAAAAAAAAANN9FRYVFSF9CNOnpqWlpaWk + SEA6QEsAAAAAAAAAAAAA06zHxMrZ08oIz6aapaWUlJSWrwAAAAAAAAAAAAAAAADQ+fjx6OHZyg3DmqWU + lJSMjIymAAAAAAAAAAAAAAAAAN35+PHo6NjLDbyalIyMioqKiqYAAAAAAAAAAAAAAAAA0Pn48uvh2csN + vJSMioqHgoKBmgAAAAAAAAAAAAAAAADQjC4qMCoqNAi8jIqCgoKCeoKUAAAAAAAAAAAAAAAAANCvwa+o + opiRCLuKgoGCNDF6LIkAAAAAAAAAAAAAAAAA3eLaxMK1oJcKu4KCeiwxMSosigAAAAAAAAAAAAAAAADT + i4h6KTAwfQi3gnqCLDEqKieHAAAAAAAAAAAAAAAAANOspqisqJ6SCLd6MSwsKicnG4EAAAAAAAAAAAAA + AAAA2uzi2sTBqKANrzF6LCgbKhsbggAAAAAAAAAAAAAAAADQm3wuKjCIiQinMSwqKicbGxQsAAAAAAAA + AAAAAAAAANr05+fi2dnFBacxLigbGxsUFSwAAAAAAAAAAAAAAAAA2v//+vro2cUFpjEuKCgbGxkRLAAA + AAAAAAAAAAAAAADQ6KKirNnvzAWnMS4oKBsZFBEsAAAAAAAAAAAAAAAAAN0GAwIBDtrZCKYxMSgZGxQU + FCwAAAAAAAAAAAAAAAAA0cHBw723t7eNo6WlscPDz9bPAAAAAAAAAAAA///AAf//wAH/gMAB+ABAAfgA + AAH4AAAB+AAAAfgAAAH4AAAB+AAAx/gAAMf4AADH+AAAx/gAAAf4AAAP+AAAH/gAAP/4AAD/+AAA//gA + AP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAf8oAAAAGAAAADAA + AAABAAgAAAAAAEACAAAAAAAAAAAAAAABAAAAAQAAAAAAAGNfWABcclcAa2VeAFprYQBycmkAc3FtAHV1 + bQB5eG4Af3ltAHp6cQB6enQAfn51AINtYwCCemUAg3pvAIF7cgCFenAAg310AIR9dACBfngAhH94AA66 + LAAA/z4AgIB3AIGBeQCFgnkAhIR7AIWBfQCFhH0AiYF5AIiEewCNhXkAiIF8AImFfQCOh34AiIh+AI6I + fwCRh3oAlYt7AJCJfQAaYoMAGmiKABpxlgAadp0APnqbAAF4pgAaeKAAR3OPAEV0kgBOfZcARHubAFV3 + kABSepIAVniRAFF8lwBTfZgAW36YABqCqwAahK0AGoq1ABqLuAAajboAVoCYAFmAmABdg5sASImpAFmT + rgBgh6AAe5agAHWZrgAA1LIAQ8mLABqUwwAQndgAIpzKACSezAAqo9IALabVADOr1wAwqtgAM6zZADSx + 3AA0tOEAPbfkAE6w0gBtsckAQrzpAEW/7ABrw98ARsDtAEjC7wBNyPQAUMr2AG3H4wBkyOYAZMjoAHPL + 5ABn4v8AaOP/AI2HgACJiYEAjYiCAI6JhQCNjIUAkIqCAJGMhQCVjocAkY+IAJuQgQCRkYkAl5CIAJWR + jgCVlY0AmpOJAJyTiACclIkAnJaNAJiYjwCfmY8Am5eRAJiYkQCamZYAnJqWAJ2dlgCdnpgAnZycAKWP + hQCli48AoJaJAKGYiwChm48ApZuOAKadjwCgkZAAoZqQAKSbkACinZIApJ+ZAKqhlwChoJoApKObAKKi + ngClpZ4Ar6edAICbpQCjo6MApqagAKmnoQCqqaMArqmgAKqqpACtraYAra2qALGqoQC1raIAsq2lALCv + qwCvsKkAr7OtALizogCxsKgAtrCoALS0qwCzsqwAtbStALy2qwC4tK4Av7esALOxsAC2tbEAubmyAL26 + sgC+u7UAvr62ALm5uAC9vbkAxL6pAMS+rQDAurEAxL2zAMO+tADEv7UAwL+9AMbAtgDDw7sAxsK4AMfE + ugDDw7wAxMO9AMXFvADLxbsAysW8AMzHvQDPyrkAyci9AM3LvwDRzbwArcjVAMTGwgDKx8AAysjBAM3K + wgDJycQAy8zEAM7PyQDQzcAA0M3EANTPyADP0MoA09DHANPRyQDU1c0A2NTJAN/czgDT1dEA19XRANnZ + 0gDb29YA4N3PAObY0ADt2tMA5OHVAOvm0wDg4NoA5OPbAOfn3wDq6N0A5+bhAOno4ADs7OIA9vTjAP7+ + 7gD49fMA+fjzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAuLi4uLi4uLi4uAAAA + AAAAAKx1EQLHAABdXFxjWFBQPUsuAAAAdXV1CQ0WFwTp5Y5NS0xUSTo6KiwuAAAAs4p1g39IRwPh5eVa + WltiWE1QPUsuAAAAs5xpEREfEWbh2aw9PD1NOi8vKSwuAAAAwJZpd4mDbSXZ1KVaWltjWE1QPUsuAAAA + urOciSggDyDZzK4uMjIyLi41MjAuAAAAwJwfZGl1JiDXuse6N2A2AAAxTzMAAAAAuMCmkIltIGTNsKur + N2A1AAAxUC0AAAAAuqVkaWt1IB/LqqWlP19BAABCUzkAAAAAuLqlnIuDKB+6npaYP15WRkNSSkQAAAAA + uqZkIGSGgCCwl5eOkTdZYVVKN8YAAAAAs83Z2dzDnhyrjn19d5E1NjVExgAAAAAAs97o593DnyCqd313 + eXF9AAAAAAAAAAAAuNXc1MW6nxyYeXlxcXFxAAAAAAAAAAAAuKVxbGtrIByWeXFoaBxxAAAAAAAAAAAA + s9LSwKacbR+ScWhoHGhoAAAAAAAAAAAAwKx3eWZrZByOaB8dGwwkAAAAAAAAAAAAwMy3t7ObghF9aBsb + GwsfAAAAAAAAAAAAzMCdiniJdRl9HxsbCwsMAAAAAAAAAAAAz9jX1MPFoAt9HxsLCwcLAAAAAAAAAAAA + 0uTp5ePfsQt9HxkLCwcLAAAAAAAAAAAA1LEOAQfIxQt3HQsLBwUHAAAAAAAAAAAA1KyUkn2qrHeSkp6q + r7C6AAAAAAAAAP/4AQD8GAEAwAABAMAAAQDAAAEAwAABAMAAAQDAAGMAwABjAMAAYwDAAAMAwAADAMAA + BwDAAH8AwAB/AMAAfwDAAH8AwAB/AMAAfwDAAH8AwAB/AMAAfwDAAH8AwAB/ACgAAAAQAAAAIAAAAAEA + CAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAMzMxAFxOJgB3cWoAeHJpAHhzbwB9dm4Ah31uAIJ7 + cgCFfnYAiH9yAIF/egCKgXYAjIN3AI+EdQCOhnwAlIl6AJqPfwAad58AAXimABZ9pAAaeKAATXCKAE5y + jABKdI8AX3aEAFh+lwAagqsAHoOoABqErQAai7gAGo26ADmdvQBuhZQARJKsAEmftgBQobcAGpTDACWf + zQAqo9IALabVADCq2AA9t+QAQrzpAEW/7ABGwO0ASMLvAE3I9ABQyvYAZ+L/AGjj/wCKhoEAlIyDAJ+W + hgCmnI0Aop6YAKqhkwCto5YAraSXAKqimACwp5kAsqiaALSqmwCzqpwAtqyeALSsogC4r6EAtrCmALqw + ogC8s6UAvbSmALqzqgC/tqgAu7WtALy3rwC/urMAwbepAMK5qwDEuqwAxr2vAMG8twDIvrAAwb24AMnB + sgDEwLsAxsO/ANPNuQDGw8AAyMbCAMrIxgDMysgA4NvKAOHcywDk384A6OXUAOrn2gDs6N0A7ergAO7s + 4ADw7eMA9fPpAPX16gD29OwA+PfuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAPDAoHBxMTExMTExMTAAAAOz48OTkwMDEsKSkp + EwAAAENCPj45JyYqJRsbGxMAAABHRkY+Pi0uMSwnKScTAAAAR01HRkIeHicbFRUVEwAAAEtLTk1GRhcg + AAAUFwAAAABSU05OTUYXIAAAFBgAAAAAVFNTU05OISIkIxsaAAAAAFcRDAQECAsZFxYaAAAAAABXY2Nj + YWBgDAAAAAAAAAAAWmNjY2NgXxAAAAAAAAAAAFo3MwUECAwRAAAAAAAAAABaZmZjX11dNQAAAAAAAAAA + WmdnZGFeWzYAAAAAAAAAAFpWAgIBAVY5AAAAAAAAAABaWlpUS0dBOQAAAAAAAMABAADAAQAAwAEAAMAB + AADAAQAAwDMAAMAzAADAAwAAwAcAAMA/AADAPwAAwD8AAMA/AADAPwAAwD8AAMA/AACJUE5HDQoaCgAA + AA1JSERSAAABAAAAAQAIBgAAAFxyqGYAACAASURBVHic7L3Zs25Jdh/0W5l7728659yxqrumrmoNLXVI + tiwjuZlC4LABITDyA0IEb4QimATBHwRv8ED4gUABxgQ4ZIXAskTY6ja2JHer1dU13HvrVt35DN+0MxcP + a8p97pVU95Z8mkBfVtQ953zf3rkzc+da67fGJPwA2rf+8T/NKVFOKbF9xmAqY+lrrQQABDAAFOZca80E + IOdMkC+ZKw9jGTvoB4kIKWd67fat2WazmRElJiLpGUj73X7JXHuAGNILc+W+lLIAkFJKlFJKRDSOpVwr + ZbxJIGYZCwACEa7XWm4AVGBdEzIz3wCwBMgGzwB6Zr5GwACAQQRCQuXCn332gMexICdC7rrTRLSW59Ap + CE8BTgDtUkr3K1dGRe2H4WHKdFbGkojSNnd5XcdClNN+PgwXAEpKiT786ONzIiq1VqREY0ppZwuWUhpT + ogoQuq4vw9CXUgrduH69/OWf/qn6z/m1H9r/Bxtd5cMeP35y87vfe/9fLqXczikdUUpVB8AMDLWU2wB6 + AEVv4cq8YOYlAUgpE8AEogrma6WWI5tGIgKI6Ozs7AYzHzEzy/SYiShV5ptceUGEIrSLysxzZj4CkFNK + nCgRCMzMmQhgJshPWamcEpiNZylbIICZkZLOhBKIAf1HvqMEECOnHvtxjw8//AD7/R5D36Hre/RdD0oE + rnIfs/xPlFBrAZiEIzKXcRwTgdaV+WwsYwJjk3N6BKCUUtK1a9fud12/rrUkIjojoqcAMddSKKVTBkYw + kHP3pOvS+TiO3Wq5On399duPaq2Uu27f9/0azBWMSokumDECTMMwbH73m99abzZbSinVWzdvrlMWJv7u + u1/Zp0RVXg9VIhqZmUCoX333K+M/z311aK/erpQB3L177+d/8+//1q/dunlzGIYBRAAhyUByAhEhk4pn + u4kBSnAiADNIiF2FsE6CgEQJlBIIABGJ7IfQIhPJfZA+mIAEgLUXIvtL+pbPBIdMST4a2/WA3wMAXIX3 + EBFQWcZKQN/3qJXx6af38ez0FKnLGIYes35ASoTKMppECZWl/6TzrFxRK8DCJVBLERqtFRWEnBPAwH4c + fV3AsgJcWe+vYIYzsVIKxnEPZhSudQ0gMWMPwgUzV+ZaQemcQPtaa0qJTpfL1VOuNRFhXCxXnwJcamW+ + devmMwAjV2YirAF6WrgmANuc6DERjVyZuq573HXdORHlzx48uOi6bptSRiKqSLTmyoWZ0ffdmoj2YynU + d91uNgybUip1XS4/9Rd/suDQ/kxad5UPS4lms2E+zOcLLBYzpJQmBBSEq8SjG5VhG1+JCw2DMArVy6tQ + CYiSEChBfi8FlVmYQtw86cOYiRGPiX8W+I+xVL8+g1CJkVh+MgO1VB1yvdw1EgGr1Qr9MCCnjLP1BUpl + 9H1GJmFaFcrEgpeAEpw5gUm0CwJIx8SqLKVMijQIOSVhHCRMlW3eypimjcDMOaV0lBThENE1gjyrEkDs + qlSsP1fs9nvUWjCOjA8//NDfWdUVJOliTETnAJXKnIjoLFHajmVMR6vVBrPZutYtEdHIwFNmHsHgTaJH + RLQWxpPO+q57WEqlnNP+n/7eHzzo+24/jiOXUi92u91H23H8vX/lGz/77CW246HhihnAWOtut9vi/PwM + 2+1WYTtUwhn0BaiBzw0tiOSqgIIGAMowGKi1qKRjTKlZpJ90oKjAiTukOINdMjLb842QlQBaxqH9EiUw + V9TK8rMYkbFKWwijS4TFcoHbt27JvBJhfXGBi3V1JmjDsrFZS2TTMaIP5MH6jzE6s3sQBF0RMSrCjmEd + p5Qc4VASdET2PhjoclZDjKpXstggAhIaNAVGzoQuD8hdQkoZEJWIKGUQUUfga/aia+Xr9l5rrbi4OEcp + o86IQCn5e0spCTKqjA0Raq0gAGdnZyi1oJSKhw8fjdeunfz2e++++18D+N2X2Y+HdsUMYDeO1M8GUEqo + Cm/7XvRfEEApISEhZwppo7p1zgl1rAqtRUqK4a9DKSPWm41I/pSQU4IYwRJ2mw22261RFlJS7qFqRWVG + Slklqzy3lor9OILZGIoRJ2EsI8pYhJFQHwygVJHEfUGlFGyFgYvNBpvTNfaPH+P09BRvvf4aUBm1VmFc + bq3QZ5HMnegS4mkRkS2qMk5RkbhBC8oyiF3wO7JydqK9kcl7+TOp+sKGwoiAqqoYIGqa6l2k62r9CoKx + cUBsI0TgqgTdqG8pEYgyUga4yjvOuiVJGRFz0nFWiAkIAFX0XcbQdVgu5l0ien0/7uZ/Blv0z127UgbQ + D8PRe+9+BTduXkfqe3Rdh1nfI6eEYehVwiRHBVk3C5v0ValTRScQKdFlbDZbrNdb2TRJoPBMGc1+v0MZ + RwAJOSekBIxjgcldURlIbV4AKKFWxna7QWEG12oyEwxGGQtKrWpFrNiXGhJZiaCaRAahMOPOx3dx/949 + rLdr3L13H6/fvAE4+QUmZ/vLIHejrbDBCSBUE1eLACYGMaNWQzh6n1J/i27MNGFMwp7LajNQFgKOR/mz + CWZPYXClGL3yFembndDteargOdoAWJCEMmRT/0CEZLYbyqp4ULxbtXcM3YC+77DebDAM/QYV+1fblX++ + 25UygNzn1HcJJ8dHWByf4P27n+Kb/+j3sJzNcLJaotQKJjFOzfoeR7OZSGECLs7OsV1fYD6bgxJhHAu4 + 7tHlHkTAfj8CSRx3tRQcHa1ceuecUErFkDO6lND1HZgSSikYugwgNl8pBYMa60otphO7vaKCkQDUyhjm + C6xOjsQQxwBqVSaQwKhIYOTc49HQAaggBioX2eRJobqLfyMYNCpKdQI03b9C5mhynJmA1DKOqkSsuj81 + LMYZR2PzEDHbMCJGEZ4ojKBW/06cFGZaNcOL/B5gzVQpU2uchcnwoF4ScGOfAAASVUfnTk33GcJ07HfK + CbOux3wYsNvucHx0dD4M/foLb9A/h+1KGQAqj9vdDvtxxLxWfPLZY/w3f+t/wmq5wHImlnCB8Bldzui7 + jASgH+bYnD3Fve/8HhIqrh0do8sZlSsSEWZ9rypEFsKoFdvtFvsy4vjoCDklYRDMSDlhGAaUyhjHPYa+ + R5cSUs5AIoy7HcZxxNtvvYUb128gESF3GTlnZMpAUp2cgS+/8y7eePerKONeCIVFPUkJGCsjJ8JyIUzF + bAwiB83mAbj10iiSa+D1BgGI/QIAsQEEh9LsiMENH8L8tH+T5BUm/VXFah/ALmsnNgzASd2RgYxf1TaV + 0c4LILI92ec2IlM9zCAJatCVIBhURSgpyfhN/SEyjCJzqOLxyGrzOD09233/w4+2X2hv/jltV8oARFMV + CJiI8M5rN7CYD3j47Cnq0RESifGp7wfsE2G/I3RdBlJC7jqsz5/h0af3sbv9Go5WS5ceZhwzCUcp4cGj + Ryi14vaNG74VmWNTi0Gp3aQi5bfbDT57/Bh/6eIv4Ifeew8gwmzokXMnDCln1FoxDDN0s1kDbZP/XsGo + tWAxX2I3Vmz3I5wQ9Xnm3mvHpgYODT+KsQFwLyicKFujZOj8woUSnMQVPQSPCVjeqhpA2CEa/gNz0zJX + ZzgVpu2EWmBIoHW/tkNifTY1doxw5AJJDbTm1QAClckkhCEwyYiMiXY542K9xsV6HbrUoX3udqUMgIAL + AJtS6pzBeP3mCf76N34Wf+v/+LuYDwO6LAa8Lmd0XYeOErpOfp8tl3j3R34c+/UF9uMOw3AdOWWB6UCI + JpaN0/c9MleB+zVkU+i8AXnt/i53KMyYzxdYzhdilwDQdR2SMiEAyCnjy2+/gy99+Q2AgL7rvE/RBApy + 32PoOzy5WLsPPucMSllhbnIik7WJOADDCURVITua0dpPUREAmP0PRrbBGG1+0auyAFknRnNd9G9eA1LK + JkUMdr3cLuqLwPqmB4sxgEF5Yxl2n/bdIhZShtY80zUhUxBYkQCz2iDkO3NGVH/Hh/YyLf3pl/zZNWaM + KaWxKvSbDQP+2r/0L+DLN2/h6dmZ+q7Vf21QVF96qRWvvfejeOdHfgy7seDBo0fY7/fIXe9uNvL7VcKm + hC536k5KSKkTBpOy+MpzRs4dOlU5chbJKd4FQmkCaGqt2Gw2GPcjXnvzLXz1a19D1/fhjdBnJwCUEpbz + BfalYDeOAItnIecOu/0epRQEQSrTMGEHJ2Ml1dZI2DIMuAUe1T6X6wNdNBcDoj74fU5mHhzEzagMqoe8 + 1p8ULMW8B41CISGc6q4lrmFcbcbh8yAj/maPNE8z96dFRoY9wR/hn3kk5qG9VLtSBDDMhlv9bFhWldqF + GD/69hv4pb/+r+O//bX/FZv9HseLBXJSDm9ElRKIGTl3+OpP/DT6YcDH3/02Pn30ECdHR1gtVxoEgyZQ + hTGOIy7Wa4xlhEQZinuwKCalhlAs6m67FRvAvhTR3WvFuB8BIhytjvD2V38IP/r1r2N1dIxSCiQAT4Nw + WDwDy25ABeP0YoeihjxANul+v5fYAGVsE0XfDGCAWvZdoCrMbtmBkpx2Tgzvj82oZyK1Tkm5ZQ6GHhxA + aF8wyW6EZ94Y+8qRFMBTdiPfNmM3F6qrPM2XonI0UZtwzWQyYvtdY7WbNZGlZeYrFWb/f2lXGwmYRVab + L76Wiq5P+IV/7Rt4+OwMv/ab/yeGvsPQ9+7PzyThwSkRUPbIswV++C/8DG5/+S18+J3fx+mjh9g8eohh + 6DGfzdF1PZCA1XKJYRxV2sKJE1B0kDM69VXbpsw5YRhmWMznIADnZ6dIlHB8cozbr38JP/y1r+PNr7yN + ruvFfQiIHxtir+JaMXQdKoCn6524C6EGM7VTbNYbDSAyMoLS2SXCILgtwFCQ+NMrwluAJlgJkDwnQqBh + w9ysRE2NpDeiZEXhGhOh4xFvwyUCrUAQJDdWDe2jNiiGY9ytstXCeneANHvEVI14Evn3QvwSfAVTi2Qd + Lwh08AK8QrtaLwALLRjxAECpFavVAv/RL/xVMIC/93//Q5zjAidHRw6rhXiEaLmMoG7Al95+D699+S08 + /vQuHtz9EJvzc5ydPsP67BR9J1AfXSdW/Nx5QEpOGYkSUibknCUIiEhRh9oghh7Hx8e4ee06XnvjTbzx + 9lv48pffxPLoGEjCuACJpgOLmsAVmA09CjOenq+xGffocgJBgl/M4j6WEpIW6g0w46WD6anBT3R9taub + 5d14Q2NKZAQDMZnqEppETzakkxBjqvrT7CKVayAjo0g2yaw9qk4e3oMpIZMT/6XxyTaYXEzyCVjjB/y5 + YPceyBBMJVK1CUCWgT0DcGAAr9CulgHYTmg/YGA3FhwdLfEf/+K/ia++9Sb+9m/+Fp6cPcO1xQJd1yFn + 8RGDIdFotaDstxiGGd7+6tfw3g//GMZxi2dPHmFzdob16TM8efQA2/VaffYFtVaM+z32pWKYzdD3gxgK + U8Lq6AhHx8c4Plrh5NoNnJyc4NqN67h1+zUcXb+O2TBDKUUz8yyEtnrsf0rAbDZgPY44XW8w1irRiCpB + xSVXQzImguVBsvu8SQOIKFx4BoVNigOAQWBqiU4i7SbQHkGETqQJ4CqhtWRELYPARPvW+dkY2F5Ug0Rk + 0BE4VPT6QCDxot2IachnsgdMzut47WNFJf5ciMEv6YDU+mEIypwLh/aS7UoZgEHiJn7M21gr+qHDv/1z + P4Ov/9A7+F9+47fw+9/7Hs7XF1higcUwk1BRk9pJ4HAdd6h9j9lsjnfe+2HkpC4wweQYd1vsdzskKPQn + xtAPmC3m6DoJAZ7NVpgv5jharTBfLNDl5LHytVa53yLYCJ5YRETouwRKGaebNS52ew27JXebGfQ3uD2F + 31Od1wNhWmMXWsIwIm/QAgkBJpOi1qcSygRRQAmboie1szb6OjuM19GDtW8y96GPwH7X8RCc+B32k/Wj + qkMbb2AohSMoyMMUG3diay9ghtpdGFwZnNBwgkN72Xa1cQDMLFbh6caznwWMMu7x7puv4z/5D/4Gvv3+ + x/id/+f38eG9T7DeiO48GyRgqEOnob1J0EGt2G+3QM7o+h5D3yP3HbrjE7Hw952qBoIm+pSRuw65E49D + 1hDiMo6ohdB3OTwSSaRarVIHJBFh6DtQImxKxdnZOcYaer0bq2CSEpKopN+axBeRXBoDXujOIlXZ7HCX + 9AIKHsGiRrgx0CCD+tUTM4o+L0okBGFapONEupsEdwQBTLIzGZAcA3am4MOjWIHJuwf8veuCwJijufcA + PJex2BoIoyd7IPm8Dwjg1dpVqwDVfd2NoGs3MwDsyghKwF/82rv4iR95Bx/c/Qzf/fAT3Pn0Ezx49Bj7 + sWCz26OWgmE2AAAoZySGhAMTg2tBHQHuoroIWBJ1xD4gOmStQvzIGZXEwNTlhFKrWuoruk5chH3ukFJG + ZcZmP2K922NfK4AaGXtKYG7l4NCfuarUcmNbJOoEARthCkOxwMDaGAUcNQBAYYRDX+B9aqQ7QzIPp7EE + fAle4/mXwTC5L9F3Ju9bJmC2BZgsNyt9q5wEk2GiCJc2huJQo+F0AVkmiKRFNIAFMxmDOmCAV2lXHAn4 + fOhJoIAwSsm1wKYUJADvvf06fuidN7De7fHpZw/x6ZNnePDoKZ4+fYrNboftZqvEXOX33GHMGcNMntTl + qrH8GsxKElKaXSIlDaBLLum6rkM/G+SalIEK7OqI880G+1KwV1N7pC7ruHWHTrKWHeITdvudqAdKlB4y + ywprtQMh/pCY1le1FWRWXT5Cfd29CEhsAAFSoSjIxtQSo5rL6oZPgiSI53IEokjtNnagAfRsjECfU6tG + Dba2g+eRAQDPfgyI0lzTDp3jA+MfIHn9OLSXblfsBTBoXBsObz+bN+4CRCLNdmMBQ3zub73xGt5560sg + EE7Xa1xcbHFxfo6z7R7jfsR2t8F6vQMzIfcZnRbKKLWAQOj7Dn3OGIYBQ9chJQk/HoYeRBm5E09DBWEs + Bbtasd3usB+rWPspNYTZZBHCpGxF9Uno3FCdMMIjjwjkaTV8FZKpgRNBbE4BImuTrVvEFDR0KsjBUX9c + R4pGbAwMRtXwv9ZweCmxMKQvBwKxCEQhxMbtZ94NAJNIQI7ZNhwHIRi4MYza87R+AKiJUYjNQ0T3AZzi + 0F66Xa0RcBwFLlbZOJcEULSW4zetMjCOWl6OgKFLmF1b4sb1FYRQlL1UcWWN+6pJNxVFYwISJUnoQQKr + FOZaUbiiloLtbkQZR4xVEAVDdXFojnsjjqpRDWxjW0KQEraF6jqTqzrvqHcQElQj7zjm7W40bhgO4L9V + 1aGFyBvIPbk2xlRVXMpzG0lLNuYm2k7HkJTB1Gac9o60O5kTELUTmvco73iK+AjCXITAZZ1cJQFFxiFH + P38KwB/RaHqH9vnblTKA/X5f61iek/7W2mIVbeKO74MWrjKjQMtwQTdVjdh5UTi0dp72nTvR32ut2JU9 + mMO4VxVyV4PzpoOrvm5JNGGUM6kUOjlZiVO9yHzbZKIsinvKXBM1wtGkGSbC0Xz/bl2niHu3eHp5fhCQ + y1hFJ2TPtNWd/D1lBg34UjuFuiV94t6B02T7aGrGLtMOJuPuy3ihAMT3X/1lxzueqIf2PLUX2DzIdLg/ + jUUc2gvb1YZPihvgeadtoxoa3PVb4l5/6QJvyQlRiF6lF5MbGEc1uNVSUWrFqDH9UiQjNYqzZc+pa46r + Ejx0o4f7jk10NWA+imsgYCupz7qFMcn3vBJ1YxdXy3/MQ/e6roLUGGqKjTCHKsLsUthx9gQRKH4gv8J1 + 9paYiXhyXfE1V5+GLA4sCtBtdvrOgvjJ/yWGlRjy91ubRWqRQ4ALVnUiVA0mRkV19cTfgBlFXoQkD+1P + bVfKAOwcACMQb+0mamnmBTy9lYxWukr+tg3GjUHZ9FDdkCrZGSHRA502mxaxp5g1f74xzkUsixEW3CDG + UMKuVprD7qFmk7IaAOEMTOL1Q30IyQylgki8qQywuid9AAYmGglMCOKNBbQL2LmAMQmPJDQIrvYBz9pT + FGOnOURxEPj1E2q0R5kx4bkXGp+RrSPgUYouFCAoqg0Rdp47fW2H9pLtShmA6O8U++QFzeihcak/92ab + r1wK225gI8bJfjNIbLHosnkb3cKlYeWK4pudpVDFRJpOpd0EsSjxJn/m8xueGoYUBA931dmEJ4Srtxjj + srvNMBigopH3l/zjNu4IsAkuK2qMopyUtJyvEXjDEm0cOgcBURTzMNXGVozgsF2ezfEhBROO8em89Hor + FGsIz9bXVsC9BkQVRAcvwCu0K2UA6/WGrYLuZXTctlYdcKjd7EO3bNvGqAjO4QhY4WJVNsEG45NeGqG5 + BktjK4Y0CqjKnmTDXNEkucqY0IbAWk/RV3tt8JfgdjbHtk6B++ib+ywaXohO6+kxgg1Y5c5LenvLFAz+ + TwyHRpeOdNhJzZANa79hn6FAbzbzCWNv7vO5VX8nJvUnCT+6FmnyN8ESgMSmUBvBD4Dr4//qV//zQ03A + V2hXygDKfuRSK1gTYkJwWkUfV0ldUhslmj4pe1i3JNsGCbeiS0eTMq2e7UKfjYL0BpUyVtYL0N8taCms + 49NS4TGW5JRNmv1nG57i+Sr9TBgmLWlFDZGaNBVi041uUNtjfcklrenkDmZ8PcnKDKKN9LOkGpfApGqX + lQkzJOV/NxibAVBywq0QhJSo3UhNTIS9M4403jAABlJgNIhKpitGWeOUDSO1UvJhd2AwcDgP4BXb1doA + skSqVWYneKCB0IAJvvAzo5HGZNKf5JQcF4utJDJiUniZ2o1W1cAnMLZawouRKrdgGE4kjmPR6MOT8coY + EhjFmVHA5su1KlIKxiNjQRBEYwA04jDibR6pY7FwWlsgwCwPBse56TO46HS9bT7+ShrI3UpoI+jw7/tg + pvzU+wrZ7kynZbpk1xj8oPibAyEYI480Z1MByHhqxqG9UrtSBnB8dMKllNjMLtENtsc+ponUDZgZGJMD + EgJuDTZPQK1iiAvIqvoyGxOCMw3fWCQn41R1B3r9umpQliYIZcq4LIuP9QiuYERThlF90oIwbGyCWpJK + bmhVpEmEq5r6qR2069BKcjYu18n1VpLgIoYe7IGW4E0KG9E3RDipN6DXId5FvL/4Juw3DCRohCUwPQp2 + mijMhhQUgrlLmO0gEthTJ/Yd5iYv4tBeul0pA5gv5tQafdq9bU32rekDAQtts0yKToK1kqyUE7dAHPgT + GFx4QqhskoYMvIe0rT4gq9fHHgwk0i/UibBQSzh+4aoluCk2r0NYmxykLFnj5mglp8vLCWOR3+XYLv1b + EQe5NCV34XkUnXE3GPyHX2uM1o2CZLEEDQyPt+RE75LaxqTi2cOh3DYQrXJzygAZQ7QXbepOm1kY07d3 + ZEOZGBybpTi0V29XygD247gt4zihHt8wDRIgc2o3EWShF7Am1Nj1DWxA85n93vR7GRGYkY1Natca6glr + eKwNzUJ+ja4bJGKIvtWjp3X3SK9LXvI6pxTqCavOzhyE0JTENuJyuA+bB+CD8mPPlFDacwZgn+l9zjc0 + fJljHD5f/YcbZgVDCTDih0J1CldnwyCseGdVKW31Ecyl50zIdB5DH+SsUbu7xBCdhzgDPbCBV2xXWxQU + fFFLmbprXvDqGuO4bARqNsoLpKp2jiAffRo3mWSNVu1dKPMIiWehu3oHtd89x2cgAISc+MLqH5Mi70c+ + awtnTDZ5rBEENyNUBVgsQRj70LoJRS9ontUuD7vV/YVj03FHULM0d2Vy/M62KJM1Il/reEVkAM4NdaTX + ThgFxXjaz035kS8kYEtObqdLL4VBRAVEm8uv5tA+X7vySMDKlSXnPmr1tT//JEjXRMxrd/FNiyBaKOpW + bYjFOvT3uL8dgvvV2dQJ0gvDu9+qMQmaLksNObVQmALiA6FGtPEALp3tBldA7G9qogYblqSqwPOsycN6 + /DIj3kAx5ERpa2tMJNQAUmbpCgDMuBjcIp4Dn5I/UBEJ3FBKHs0znYPzceZLM28iESi6dxMB8xaMcxza + K7WrrqTKZloz6dyqhGZgc2I27ZPj76YrubhGpl0YxIJAlWJl4/KlPpgB1IZ4LQfBbA3ko3iOyPjSH7af + nbjDSu/Q3eba9GfGLSPDQD6NCdAJlrX6cZo+miXvwTP5ALRUaTq2k7HC9JaZhSYfiGRC5zbiRv9u7SFe + MIS9G5lnalgRsxhhuWEabDkVEf1nkt5qCIj6wFFIRec30U4O7ZXa1UYCilKdrNgFgAkh8XO/NIzCiNqC + 4a1N3AhwEWFwtE4gcbt57TZSQq2hd5gUd0K1/IJGUpMqDGTO+RivdDOFyu0QjXhcdlMwDTt27LLKIr2l + KGnezMgMo6YqyDpNl8QCoYITRA/U4AWzWRAlJP9eviEEQrIuIhKRtGyaTtBCmxHvzn6klGLODuX1SWzR + nA3R+4GizSIGZpjaCA7tpdqVMoBa65qZT1GBlPNzxm6a/M6Tv01OuYxXPGin4do13Oi7xgE8ClAlUFsL + n9GEqgMAiyGwMiauyICvAfGtHLjYAALOizBUQrLx2nhixtPJ2xUctQvtKutPEIBY7fnyolk3JhotAcek + cWu0Y2Cy+A3MlspGlgClTLC9H8GAwnofg4gAJZowKoZ27mujP5NF+QW3SnZpipOivX/YmQo2/YY5HNpL + tytlAATaMWNzGbK9iLkz2vr2+j0YIDM2WZ77JSkDI/QguhZBBPAwe8CUEI3RBPinaZ/60Aq4NJa7Wttm + JA250qq9+phsqi4cA9oaU4mxXybgpH23wbwmkfUTbuwAl4wdFlzUjtU9IkggPbaMNOrPbvXXo9Dc4yRU + irsGYHzHxmfRg/5cct5FzRgm42iZb/vuTPm3mIiprDi0l2xXfpoKc2VJ0f389RsmOn7sIZf803x1RQdQ + 4uaqEr5OLdV23p3uID8Gm6fPJIT7KhqpMHMw3NBYAN8XaNBes2BKtCbh9R5S+IuQdGyD1XVo9WooMpjI + YyWm1+tgMgAAIABJREFU2qgbgrB18YKa0abYqq8UjraUqCXhfuqxsPFYl86M1X7SsGQdaiCiZAxMUYsV + KzGPAUjWOI6LixUV9OXhziMRdji0V2pX7QYE0CrS9rk0Mya1RSUuG6IAgFtooDvb6+IzAAvHZWrIMYtB + Sfd+bTalBQtU7y/UjukmFneZqAjsRCbjNFB8uQUzICKpTYBW/Jk1/rL0bNYAWjtQn0lN+QuXnDpmD/9F + MK22Lx9jQ1BtBl/4/VUtSDK+cBNGZ44/GphgHg2D6pInQDHuiYE1SqEHQ23mFfhA16blMs58Txl4+Nyy + H9rnaleLACqPAO2NiLw1Ar4qDG9rwtlmjhDb1s0nHZBBZ3cnwCXexIrPkKJ7+hmDG0Mhe38AfAMCDQRv + pbuL5rbFPeYSNDeXSXHyOGSFujrRaQy8cAg38FFL3DR5rqk7ZoDzBCMS/7ldK4yEJkzCdHUjMA/w8Rko + AmgIz35lxFo7yGdFCxT360SDw0FxOwVhG1OKGIGI+LRkoskKB+894P8v0K6UAXz24MHjlNMnYI4KvJdb + oGqn/jYivi0nxQxJ7qnBUKxSjrvzzEBouQJgdy25OuDqu+wqQxiTM/aAUC0AxHFdL5pAEByoiZpDo28b + ymk2Mhq0w62BjxIMupDOMbRzW51gGGB2SW5wOvqVnwmMlIK5eDVhjl6hB66CrT6iErmvwfOzb20T3Lw5 + aicHRM2Bid7vHSgjVINtMn+EDTC9CEge2iu0K2UAT56ejiDaM1dPtwWCAJ57n2TSLcDwhCbpMgTmJk9f + Yb1KWTtbrJXjtikZ1Y/jssQfGVej23P0SarDPxeX0BBi+xSfjqoJ4XufQnBA0mAlIIejT9U2mExyIoJi + JuCeA2XYs4DJZ2GlT25FN2mbmhU2AieWo88mZcF07S5XGwqjJ7tUD6Sh/9g7a0buTKpFBMaQQtdRTY2i + f0cih/aq7WrTgYkSuKap2EN4s4yoEdLZov8sJWfiz2YtjwWOXeBIPyCnkcJzZa6baj+tbmkbT641ohK7 + QZo8poXhz8/XzAQv+jy8FJoD4NZAQRqsBTAkUKlZF0cdITnRfO//K/ES4KXD2kNZ27F7gI0POMKOGWrx + dzWGIyaSQw0gSo6s2hoAxnQDO7Q5Dw17bN5NywSmtRIUCbSLSpf+PrSXalccByA7zCzhjQ3NC3jEBnAs + qoQRUXJhGQ8CFklX/XeHqiwQ1w6kNfeinehrsD4huddA+jBfuPRUWWBycUnfDq5tLSfiRlSb5KeAtKEZ + NGgidGy5RsnNiFlHaxSTYvK+gG3sQou0/JRiH2aTTaBqQ5zt15Q246ktgBtjHDlpG4JAQHpJqp68M7sm + 0oHh8sDRhb1beaBzV2cg7aq3APHQXrpdcRwAb4noGbO43Vp4/KLGzdttq/NMrmF+jhEA0P6bze6n6zbQ + GnDDY5kY1XS0vvnlOO3KtaloPB1HCKEWmDPIk3SCql390Dk6ITlEV1WDAkQbKpIKPk1YbOgRQhqmniig + QEpug2iluMH+YDRCqCmG2Rzs2dgQGtvCJadgrJ/2ZxI7kYwhpRiHlRyPaMBmzr4e0lmoGlN3oD7rjJkP + FYFesV0pA+hyWi/m84/GsTzvumpp9TJTV6mksXASZsochNr8Dg41Ifo0qc9qDAx0YXlwpIOpl2LqDcAW + iyPQ0YW3oEEDjkoaycgB2yfsTve3E5zrPfo16dmFLTQiSMpx05ml/bpU9aCbMA1ah2Fkk+bogewwZWWO + pgZ4fV4fsvEamIFOf5sM359v0YwOThoXpb/b6vNVN4bSfdgR5Pv0ApMrgUBbIqxxaK/UrpQBnBwvkbvO + 6nD5gVmVoxQHEHDR//YXX+GnZQKxqW3LNMTvdzbwWDatHiSnDCEepF4DE0j6t5cDaYxoke8fEtCMlc/p + oyS5BkYmhlacQajubNe2DEWCZTj0YzMQTlBCLJgRDpowYlsfYzIT5kAmUfWZSQ4aj7MEGfBowMDoIp25 + 4RUxZ7fqkzGB1L69eHbDnO3u5IwVjmga08jzng3h2jLoQ3uldqUnA1V11Oe+x2w2c8lfTYIzAFQ5XU93 + r2fm2W7WevsRmhvEZ/9VDjjMRFrYgyWGvoYU86IbzB5/IIK9lTSkmqwVDGVMafx5uD6R9QwnAvN9C5Rt + mIndRYZgQkKS0KDmKk2JLtQhMgDif4v8Zv18iqg8tsCMKrUKBVVleDYO/Wnrz0qUbqC1s1bb8SPmY8jE + niklySKfoYExdpFZN+A9NcyWMF1dQxbPKyGH9nnblTKAsRSAmS9On+LTe59gNZsj9x2ADOSMlCQQJXVJ + XU8AmBQp6KY1H72eq1dr9eO/xnGU47GZUMY9kJOetlM19kfiAuzILlYvQoUwgARGRQJp2e/q6kVVY1wb + IAxc2o6YEL63iHPn2ujgGq1oUs+kt+jt5IYw96MTEIeaIAJ99Bl2LqIb4PQEIyN2P1IIcCbjEj2pAdQg + vao67cEfwmNcbAcTgjGs5FF9tkKKiQB7dwBAxlhkHJJ8pIZCI3u3T1ADsiLYSQKW2kiIFy78oX2OdqUM + YLfdAVx3dz++g2//s9/HZr0Fc8VsNsfy+Ah932O1XGJ5fAyAMZ/NMF8sUZgxXy4wGwYAhH6YoUsdGFBm + kTxQhVLScwfk98xA1/UotaIoQdn5gKVUT+ipWg4MIHApSGBkIpQipwIDQCl1Iv2FBi0pyWSXEQpFOS8Y + NJcsSB+jqwG6gy8ZGAkEJFNrwvruOrKjH7mHSGwGpDBH2UxD3MI4quvjrltID6RET1pAVAnViJFtaA0C + oQhIcCJP7bWGeqycmxZeBRKodcP6AKGMIWwdgr8qkt7rtQtVjzkwgFdvV3s8eOoBYPfej/04Pnr/e/jm + N7+JD97/AKenT7HZbLC+uAC4Yr5YIqWE4+NjHJ0cgShhtVphPp+BKGE+n6PrOiRKODo5xmw+B4EwWyww + zGaoqFgsVui6AZSAxWqFnDMqgNlihZQzZDNmkSYpaXoygXJG1hTVlDJms8GJyVxyShUNBA+du1UfpPZf + xvJohdlsgXHcyfHjbAauKZ7w4Bc2yWnyUw1uhiBMWpoeLjdPgH5jnTCacinrRjuD9gazue3PxgQ5ZNU9 + D95xwwwjMpEb1UROO9Jx6ViTjt+1+RY4EdAaHgmmPtVAQvpvw4jXwKEi0Ku2q2UAnbiD3njzLbzx5tv4 + 6td+DJ/cu4dPP7mPe3fv4s6dO7h75w6ePH6M9ekp7ty5h4v1BcpuB6IkRJ8IKWekLH0Nwww5Z3Rdxmw2 + QzcMSJQwm8/kupSxXC3R9QNSTlgsFvp5wmyxQNf1SCljsVwgdz1S12G5XIJSQtf1ODo5EWLNGcvlkWxS + IuScQZSQU44zDDIhkTAXA6Y5JTx+8BnuffwB7n78Ee7fuQv+xl9BlwYl4hT2ChbHWXUqYy00ygBXJR4h + VMcbDuurejBEynpWnYwMRJHAZAgi9PtGEjdS3xmKSmF7VAVHNGRb5rw10jX2GxfZYniZMDpnhC7Sw/bg + h6ki3IWkyMcYG5jPKnD6Z7VF/7y1K2UAVuxxP+6xmC/w5ptv4c0338JYCrabHc7Pz/DkyWM8ffQYT548 + xt27d/HZ/fs4ffYMZ6enODs7w/n5OdYXF9jutthuNnjy5Cm22w32u61sECXubLkGidB3PXIW6Z1TFphK + hK7vJCiHgX42IKeMbhhwfHIiI82E2XwOrox+NsN8IUiDmZUBkDCQnEGJ0HUd+n5A7jJm8xlu3byFSoTv + v/8B/vA738ajR49x+/brGOazMGC5Lm7EqYTJZlQDAEJiAieVjFaE1GwHDLC6yVzStzY2hM3AYbnJWbLi + xAHbTUWIAXKgHbPyc0joEO3ty05Sro0jq1Adfo3Ap7A1KKBxBuQETz5J9sHa8w/I/4u2K2UAagwjQFx/ + 1QsEE4bZgGG4iRu3bgA/xChjwXa7wbjfYxwrLi7WOD99hs16jYuLc6zXa1ycX+D8/Aynp6c4e/YM680G + Zb/H2cUFxv0e2+0WpRas12uM+xHMFdvtFoAYyTYbKSabuw7MQKkVdbPFZ+v7YGYMsxlmszlIrzEEMp8v + 0HUdZsOANK9YHh9jtVxitTrCMBvQdQNy12G+XOF8u8e2ANsRoG6O45PrSF0HiZxLAI2wICCu1S3tJlWr + GcrMnuBSPAyK6g4Ld6IRa6OOEBmNshvdQsRGRCBbLrYYFEAIROLog9SlRwR278glv3+jVrQ1CAzb2BxJ + +zVCb42RduyZTwDB2JqogIMN4Au0K2UA+90eRLSGIU7fnxWFCeCicSGyQWezOYbZAiDC8bXrqF96HagV + tVaM4wiujFoLxjJivx8xlgIuFeN+h1orNlsxMu52O9SigTxFgpB2+z02m7Vk1uXsOud+P+Ls7Ay1Vszn + cxwfH4mRkRn7fUHOGbP5HLvdHsgZtTIoqWEPQCmMwhVlrNgB4G6H45MbWK2O5R62MGieEKUf5KeQV1CK + ScnqEjCRuVNbstU10zkIcYpmDrC635q8AfV+CPHpnZeQgTMeldDm8zMmkJN5G0I1EKQRyMWQVlWitlN/ + Lhs7oWtgNQDYR6uGxkTNpRobkDRkOtG0PsShvVS7Wjfgfg8i2pbGKu3mHnNb6aaUgzrYXP9ArSKha3Vi + rvo3Q3yGlZLop/0cVCv63KGUitlsCdSKsejm4Yo0VsyvibQrzHqUWEEuFf3xTTegcUoYVdcdqaAA2O4Y + uz1QtyPGWlHKRogKaLwJQKIM5qKW+mnxUGmNpQ0VhoNdcgJBDk4DjevP5CmRE5cRG7NdoZJ04lJsTvOx + kZjgh1jg3XtgNEtBt20wlInfYGI6Nqd1jlRjRQgpmfFRrkn2+jliCAyEeDxig0xIuyJfkNY3c2gv067W + CAgjjODoRKRuuyl8ZN+4cp2X8NAPWBOKmBn7UrHfjSjjHrv9iP24R6mMcRyxL6yIQT4rpaKUglIKamWM + RZkKK4MxpAAOBsQ1NrGNoTF4MQM5J/cSOIJNxr04JLvPO+ohkLrF9OTNsKIrUzHJTJCx+AMmjNS0gxTM + ww0EHPDfdHKa3ATLlai62KZ2SLxC6ONmN3Ao78yqQQIGNYh9PGRcxBDBpV1hUp4ZyMrILPLR7R06b0M6 + ypQKAePn2HyH9oJ2pQwg4uuhBG/A276Pa2XzC1FYaimxImhEDQ8GgFrDWKT6Zq2Wt9daozk2I1kEov5v + tfpYAn+q/04qpcif6YYvHb5vzIkcIniKo0leQNSRWsE5ByGrzDOfvpYucN3YA4dg0tfGwToMuYGoQVIJ + EtCkur7hBX8PHIQX61PVr6+aNwsBB8FaVF6D1nh6TJgOLN5twyyZrE9zZzY5BMrMkqKLpNGTXLUuIAwt + Qku7+bquGYdcgFdtVx9DrRLVKEckrHwV+0itzk6EajQ0vVS5gIfwsqkGSsgIGOm/W+Qg7BxA4xeqbyrG + Zt/cusF0TBHH3tieTX/2p/iQnVC8PzGAYl/GBlq3uQdRAJNVfBu7lL2eVMoSkocjSHKU+fWNqAzy21Hq + Tu3GSBV9eLCNw4hLSJoitsCLc8ZUfV6TSuzK1JqqAdM2qQRFvlaGCk0ksL7BZCqFM58QGeLkIW7eyKG9 + ZLtaG8A4MhF9zKVONowLDP9IjE1u3GEzgsmmcL0WBGh1YZWhoSawEH2RNLeo/c+GINiLe1YAnIA6so/p + +Z2L0Kkx1cTbkTvsdkYCd8uZHp5IAo+I5Fh7Uy9CMjf3TmWfjyvsYo2LzvR8RTnsSIUcLdhMoM/TNAOH + 88nULxgaEUKujqdsPpMXZhhExoYonlJ1DA3OAyD5FUnfczAaRXkNlGJfwEb1ISAMjS94UYf2uduVMoBS + Ciilc3f1VCOqIGD474BBSLYNx2IYtNBcswF4VK18JLp+LaLTt3C+Vlg5MqpBONK1ZBoaWgCCXpgRRUrd + uhXPnBKWcbTYxEL0TVw+Yi+7+0/lOFETq6eEZcVOrWgJTwiKvC9nIhTMQwqZyB2OYhrmG1GJkoZlcyMo + M7D+WAxxbQ4C23RhiEaXgqxIaLMKOgfSBY1wqVAT3DXoMKOR7J72HOZLX8kDAHjldrVlwUUKhhILOJQ3 + 6cZK5MTiKnNjXGUFAk6JiI3A4KIGPIhKEIY60Yst28/qz1ukGxdjDDocLwhqY3pewlCz6aa2B53Qc1LJ + bA0R0uo176GYhiIgJ/oiJxJLzPFKOcpQpAJvUEBOybEDgx0pCBPS8bXajcETvcYqJMEksasyUzWAgSDW + Zjy2AvEzkIc/zzK92v/tO+UsLYMD2I9S98Hb2qOp0XJoL92uPhDI+Dub+y2ixeRzdqMTQ+roS2gAqYQm + J1j7WUfWBBiaELN8WSPVVz8vLBWAuHLY6ey5jWgT6Tt1mHnorNNJI9FNDEOsDSl1iCJY8r1ZtI1gGOYW + Ezeguf1MoXHyE61HjXamZfCE2Agm0QPe66ARRVOiMchj85UNRVyCoRPAHQFWOFV1b+8jbKIt4eI5ye7G + PlBzslAMSkGhPzf6m4r4lhUkoPA0IOLQXqJduReAiPYM8Iff+z79xt/7dTx98gQ3bt3CyckJlqsVbt2+ + hdkwYDZf4Nr165IenJNC+4pivnywuPaKJO4WZSRM4o4TaVYb9UFViFLUa9BAZqco2VSFAZDGBqBF9OEG + kz0dkF63tYOTZOfdKUFaoQxqro6CHAB8FysmuCSZAZbSFyyMsBG8QUOtpyNW3Z8l76D9DJNrq98UUYY2 + ona+k7XTvpk4TlbRfszI6MZdGFrRfp2Z0kQI2OcpYIozNkKgEBlUegTmiz9p3x3aH9+ulAH8zX/n36r/ + 4//8d/63Uso9ZLz56f37+Lt/52+L334cwQwsj46wOjnB0eoIN2/dwmI+x3y+wHK1QkoJR8dHODk5ASjj + 9mu3sVgsUMaCazduYDabYbfdSIhvyuIKVI1DDF3kLqRaDZpqhSAAYEZBs1ttUzJPNqAxATMKmnHS4Cmp + Fd6NcDB0yw10ngbDyMcK22G+cnIGUu135qZQRwp00GIH/b7FJlMCVkQAYyDko59Y2yf6fhCtrAeFMVBt + BKCGqCHXyDoJ00oNwVsz96qhIWqYpixr9DtdLEWIjB1An/+cuUObtCsOBAJqrbtSavnKu+/iP/0vfxW/ + 8O/9Dfzhd76DP/rud/GdP/gD3L/7Mc6ePMGzhw/xwR99F6WMcVIvSaRd1/XIKeHWa69juVqBmfGV997D + 8fEJttuNxOEvFgAzjk9OkLoeuRtwcnKMyoTUdVitjnB2vsZ+txGCqxVIXUOMQPGSN+SVfKdFSUmD91rn + YANpbfObTxtw4nNU0EhM5ipOPSVuLwdWlU1pf5LTHxl/RidG5FAm0apV9oddnxKhFGMCCu3bg090AgQC + U9RBcEu/SmZ/vl5v9M0xKRlTSmLbMULXG0N1ga81OL5o/AORJahMS5nqwQbwBdqVM4DdbktgJqKE5dER + vv6TP4mf/Kmfwvr8HA8fPsSdjz7Ghx98gHt37uDOnY/wwfe+h4uzM9TKKBbRVwq4Vjy4/4lID2a8/90/ + dMJyHE6EnBJm8zmG+VxUipxxdHSMW7duYb8f0fUdjo6OsN2NODo6xmwxx34/4tr1G0gpYzOOuH79JnZ1 + xH63Qz/M3HaQc+dltJNmGVrsOoFQvPz51AZADaG0hNmW3nJdXhVdYsmLD4PaJUJgbs42JA8NZm4wCpkH + QNSb0DIonsUm8WvA9cmJSM3L1N/NlQjYpeH+rA3NpkQe4ceTzsKO4DcyfMzJGJoKgXbdWpfhob18u3IG + QOQ5Y2CN7x/HESknvPalL+GNN97Ez3zjr2Cz3uD06SmePH6Ix48f4+GDh/jss89w/5N7ePTwMzx78hSn + mh04loIyjtiPI2opqBrqWzRGYLvdYrvd4OnjR4DaBmqt6HKHYT6X9OGc0fU9+r4HJcJ8NkPfz9APPY6O + jtEPPXLucPPWbYzjiK4fcP3GDWy2ewyzGVarI2zHEbPFEhiBzXaDW6+9DlDCk8dC3OnyXmUOl5ysTkTL + NZ9RyFi0brJalRGYi6xRW+IUHXX+ab+OWMg1oLiqhuHRAnyoUXL08YCqVGSly/xzVS9czWdkUNgWOJKD + qJ0rSX9JkwJYH2IIiZszIohT47pybv85d9+hXW5XzgD0rZY4pUZhLgNcCrZcwGBUIhxdO8Hx9RN85b33 + 5FTdWoE64vz8Amdn5zg7O8Pp6TM8ffIUjx8/xLOnT3F+dobHjx7i7PQUTx49AgPYj6O4CWuV3y1ysFp4 + CyF3nWxEVTHW6y22uxH9tsMn9+5hNptjvlziww++D0By/7suI2UpRDIMAwiEo6MjUO4w7nf4xi//MhbX + X8Mn9z95oRWeUnZJ5gFGdl4CaSiN3kdOuGYwi0Aa5tDXpS9oyHQY+8IAJ2vuWX4qkRPX0MWZG8KPKEMz + 1hmzmdQMNOs+IhDIAbyZM+x3hMqStB6hHT/O4bfUZ4YtxCZnc7FxHcj/1duVM4DlclmpcbOHMqhxfLpb + qTIqF5RR/1f3HiVC6gZcuznH7ddfD6irxq1xLNjud9hutnj27Bl2ux3Ozk4x7vbY7Xa4OD+Ta7ZrPHn8 + GLudHC1fawUlwvZiLenAzJjNZpjP59J/ZezHUTwIumlrLVI2bD7HMAxYrlbocoeuH7BcLrE4OpF7OIKO + 2rBVk7TigtT0X8fljWW8gbm2RqxJRh5y7JDaGEYTIOTpw+2TjatYvdAM90OQuiWtDyPISzYGGZDp9Sq1 + /XLSZ1tYEwXx+jAongcDDdEfK0ISIBD5F2ZQ1Y5OwYdkoFdtV84A3n7zbZTaGG0vGdXsM5Yjf+UzSU3z + k4DHMqLsK05PR4zjHmOpGMuIcawYm6OwupxBsyVuLI+QUga4YtbPRBctox4PpkQDkVybzQZnZ2copWA2 + G7BSI+N+P2KzXiN3GcMww263842acwJZaC9LnMFmt8cffP8ezi8uMJaCnLJNOObtBC+xMZct5G6bV4ZQ + LUqwRlhsY9d3nd/uZbMBGI9tCCiEcYQJBzNhH1fjp9T+Wy8ExVQobHd+BBkDlAFUCtuA2SCa505mQqGT + mLrQBmD7X5QAIuaKx7/6X/xnBxDwiu3KGcC+jH5EFAzC1jjTN6rcmhSwABlxhUnsvoC/RIScslYWEqax + 3++x2+5QasG+CHoYS8G+VHcLFi0jnpJKPVOjocdYZU2WuRhBTy68vFipVh58q94JFks6V4ylaLVhZV6I + yLm2hXRUSdoUs3BjfQu19TvPmCaAhar8Oyvj7ULRLzRkZMwETWw9lAAbe4DD9SZgCSZxw4DXzsXtCxRk + 6t9TE97b2DAMBRii4Gbutj5Eob4AVjiFfCw6b6Z0aYEP7aXa1dsAlLB9d5m1u9EnuSEkKwyiFilJ/pkw + DL3XYC6riwsJVBk5KzClglpIEEKVfIHdfidIoEKfxa43u1qiD8pdjs1vvmnA3XmSpZclQk5r1kulodj4 + JtzgEHbKIJKqMh7FZ4TpMJjid26/U0OZW/DhhrPc+uKFpQbSUCYgxMduybchGer2/EqNO7BYBLM7mH0j + tV4DS+N2/yScSbUFTZltbRzHBEgKdglo5R+7xpjooRbIF2tXzgAKF6Sa4pxqosgHdmFIAIqXvrKtYLn5 + ZMRZK2DGRGMEUBVA9ccCDeetzaEauuEykUD3BICTpwzLCJRalQNIKXHEd5cboUE2gKfWKnx34nCqhtNK + zDuIGxYeDAJp5WCJXWpcgQbBIYeheBWf59CAMitMKw77gakEeMbghEErk7LKv837IUNvzRsLs6Hk83sc + gx3rjXZ9J9OeGgeS9aZf2JQTwJWQ4lyxQ/uC7epVgHFETmkvUJYaaW5Go9h40WzrCvyvINRRS4ZZ8QqF + 6MwtP6lOwNV051o98o9hv1RHIB52i+chrUfQEU8OxBBiI0cLJLpEc5dexuTGPlBSyz7QULRudPLrE8hj + HSRqzsQzwkaig0iJnB+aFd+SnxxSV40gbHIcjJitW7bXwRoezIE82B9JDuM5qY+e7TjwYAvtMllWo6EH + YharPwwFGlrRgqn6vlNiNzRYHIB6CIkP5wJ+ofYDKAjC4Gk4nUvsgN1mNVfuz9WDY6JST9FDPgUJeKUg + RQJFLetWo0+wgaEDJTw9AqyR+dJII/s4gnyjLHYj6WysJOLWN+ZlhNAY0ohYDwcxnVZVBjfA0SSJx/QG + s4pL70aF+p0SFtydJhOsBpP96Yg3npJ4M/T5gJwGZHX6/fhuQMp1pZDy3hlLfgI5fUpAD1m1YWWMAROE + obnNIjUefUr+Z6gNdm+MUTOiFMmhcK2bF+yyQ/uc7eoDgYTzEyhhGDKylpwqtaCWijFV8DjCjo22U3Cs + uEfVyr/WmI0xqGzkqtb9qO1HCgvYNpMSrum2LT8SHbkZr/00y3bzRRsiE4jBElkYoFAb/Dp1Jw7DMNnf + gKhCSQnapatKR4Pp3hcrlGCLfmzDbE1fVs0/idvQDGjFPudGy1Fmw80BJK3f3mwSgtLIeA8MKkjosjEC + 09UDVQhbYL+v0XTASG5DcLXFGBrFdcZQyI2RtAXh7E/ccIf2J7YfQCSgbKW7d+7gn3zrWxj6GRarJRbL + JVarJebLJYaul5efshzVlTO6TMjDDGMp2G032O0I4IKxFpWg5iJUsq5mNzBkEITq9QJcSk3U8hirDDhQ + g+vcmOqsL2guo6nJo6eE/bjHkydPcbRceP9W4Z6TFdCMjk3tAVQI1gqk5MU6/AANJ77mLAGTpM4k2mGL + WmWfUlCvq2bPWfVtTknVqkrei8cQ2CCoMUimFIlFLACf/LnyeyVjxC3TQKAAXX+7RHkeJ2rsSYf20u3q + jYClMiV6dHH6DL/567+O3/77/xdOTq5hsVhgNp9huVrh6OQEs2GGxXKF1dERlqsVFssFVqsjzOcL9F2H + ru+xmC+R+w6z2Rxdl9H3A5arJZ6cniONO4xjRaKCfS1ISKjjKIiCACSgjkDlovokHja1AAAgAElEQVS7 + xb43erFSuoLzmIRtxhfYCUyf9b+aZHWLsqulPesu/Pgu5Lm9PohKjv2Cw3P/Dq0aEGqIWfzDe2EWf9PN + W0aD8O9fVvjJVgEe/WepzAxuQoLl99bL42tHl8KGhephGoJV9jMUA1yOYLQRqC3D1KP63As4tJdoP4Bk + oA0notO33nkHv/TL/yG+8u67+OiDD/HBB+/j448/xtMnT5BSwjD06PsBvf7sckbuOuSckZOggpQzhtmA + 1eoI/TCTiLzZDKujYwzzGY6OjpA7ieYb5nNcWx1jHEecnZ8DBHQdgdHLcdyURc0ooyMGkWAq7TiKYJiU + RUNY03z78AiQQnMjfu/PtvklS3p46BrrO4IeW6Pg1GMQmgSxHKkupbaTM7M2cSbsCO08og/wpc+V8VSD + 6YaIuFVV4m+X4dR07HX97EQiRiQrETgrUmA4E7IRM0OPG5P7KgO5ecyhvVq7+nTgsQA5Y7Fa4Sd/+i/h + R3/8x3BxscHDB5/h7p07+PD77+P+/U/kwNB7d/Hs6RM8efwI43704iA5yfl/AEBqzCKS8+nlUM8OSX+6 + fz7JMeJd32NYzLFYLLFYrLA6PsIwm+Hk+g0AElhERJoklDHM5WSi5dEK291OCSmOJIfaMATqkusHDEkx + Nmk3TQEOxgBo5Jxm57UHdDi0DoHqRCzwvjqszg08Nkxh7lLX09mQjHT4POAWAm3LiNls9OkqpZNWSmKz + UTqGYQrbg2HzpHMKVWCqUtmTeIIaYlTClOSsQShy0fJmh0CAL9iu3gaQCETIpEa+2WKBYbHE0bUTvPWV + r+Cnf+ZnJY7/iRwQ+uTJY3z6yX08fPAAjx4/xsOHD3Dno4/w6MEDjPudGNz8OG9lCq5zkx7+aRBaNlrO + cpSXIQpSj0FKhOOTawAY/UyOIF8sV+i6DvPlEl3usFouwURygnCXsZgv0HUzDPMZSinaZw+khNl8gT0D + p6Dn0EIYEB3nqkEwvOlWBFQmhYDV7P/AyN3UFUcggIbbmrHPJDLBLIIGrCMHIF06Zoth1vdIEJLf24NS + 4vvI7JsyEI3oY9aKTUB75LePWRklNJ3aNYUG3pAZP10zmeZTHtrLtStnAGKAo+TGOQudZQm26YnQ5Yxh + NsPN27fBAEqp2G+32O822G422G03WF+s8eTpYzz47CGenD7FoweP8OzpU6zX5zh9doqz01Ocnz3D2bPT + MF5l8ow60iPFcxJVoh8GUO5wfn6K3HUSv991OD87c2nfDwO6rkMZRyRFHimJCa/LWTIE+94PtfiVX/kV + zE9u4Tf+weNmBcjdlAkIq7+qCImUGTmD4IZYk0bhsfcTOfvWO4XObZ+Ygc2MZyC0dO62DjLxb8EEjS4/ + NWxcfqsTFcijGNnQAYebEKa1aPXBVv9pIL+NtKqhU7wAqri4sTJdEPPDz7HtDu2PaVfOAJ49Ox9zzv97 + qeWvpsYPDECCgrTwBymc5yqHd+ZhQGVglgYM8xWOrgNvvPMeiBJyLzH9dRyx222w2+2xvjjHZrvFxdk5 + apUDQi8u5GTh07NTbNYbXFyc4/zsDAzGbruTcuE5w04R7nInRKM4Pms127lm/yWSNOJhGLBYLHD9+nUs + l2KwHPoB165fw4Nnp1IOXSbkcFrsAREK25jZYD9E6Jn/PwhZ6DJCiwmESrUx1DXEaPxBVYXJISxOfJaN + F6jAvBPGTBjCvFND6MF7XhQbKV9WCLGbni/fsPMWT/7x22IVogwb7NS0WBuWIkPMdPACfIH2g0AAzEx3 + wuVjATVVjW926o/+D8sL0Lz1TKhMkuCzW2NfGNvdDvuxuAGvVCkGmmmO4boc5Z1Vsc26axMBmTJyFkmU + c8LQZxAlMRSenrb0IZBU04CXiyUqgO1+B2bCuC8oLFGIm92Ii90O28r4R9/+QE8onkpQUwEEXbPv/4m7 + z/T1iYUQ8LO5bT1lBZFULzd+wqEnO8yX5BxNrlJbQWgT5IvulYli8qLH+9mHZqyYIgG5PsD/JK3XDISG + axpG5BGWOs1EklHZul1bFOEHI7Hzi0N7xfaDKQhCNJuEwKoO6755UfxgxCEhvEWgqTEDiFSrXJSgpGDI + ZrvFbpSjwscaR4Z5RKD9NKmq1vq+60TCt63ZYa19ofIDOZ7c9W4lMpeO7PfklOQZejSRb3ZlGAHTgaQf + WJkxO4PQhbVQGFqznEN6cNg7wOJBAAVD0Gd5/H4D7SVYqgnbJdLiw9wcH2aGO7ghzmv0IUwS7sVwhKAH + kxoaMXbXqD1uMaBYn+SWCRtTHIF2KZD00L5A+wFkAwIAkh13HRtAk3ugSTAqZMZaFQVoPH9AAwC6/zTK + r/XLEylkZwBUHUqHr1ubPtMKg0yaSiVP623cea6vmm5LHIdkKuF6chBDD8MI0rUtbJZxdupTHTrZqckK + 94FJqa3wJgihVSsQ4irEJUI3ZgBlCyl79GSiNmbfJPUUtTDgzHJimIRJ5DiT0XoyfmXHhPnzKewUcXXz + G4UBkJt/RSWssBiEg/D/4u3KcwGUfM/A7FCWq6kBmBzuWbR0d6ADOQNAaJ4bqRaHVpju7DkCbAQXunej + ZTqEblvLREz/FzejnDeQKEm0qj6szQtwMWi73/Y0N0E5vs8t9DVpDH1zD5v89nXTXH4RpZSMlKnJCWoI + y3mRzcWM5+TfG4FXMDz8lkiSe0xnJxIvizKGFrrDeDdEPWBVk9rnJ4ja5XNFMJB4N81amErkzIen95GN + X0yNfEgG+kLtyhHA9evXa0rpH+/3FcNcJNc0xj75Ud2eXOoMwnTFONizTSSSnIKmVoDuUoPotlv9MApA + oG8jt6by2SlRPw0m00rzuNZ6CAIw67vdZkxA5mhuOvbxKmpWHiKwN+kR3nXCEgJiG7G0DIgUGgQkjwg/ + UpXL6xo4YbMztrasOJj9RCJ7pD+jWS1DQG3QlAVUESAJSIgJEkl2I/k7hLgiAY9wnDCDFvqLTrEmxjMc + 2iu3K2cAr7/2GgD0zIxxHLHf7UMNUElvCUAgix33Yz0CDUDRgqIGtsxflgxAl8LKMKDFRaw5ITYSxp4H + BD4wmG8SNgR0uxmhFarkmtZ45/e3jeH6vaALg7nsTMvutRh9H0JMIJgYIJ47aoH+dJwtqpFEIRlzqB5i + RwnWF+MAgpGALQZgmhyV7J3BAoGCuRgTNQmfDGmAPbQ4pbA1eP/+d/A5YQ4yPgJdMPgJDu2V29UjgNu3 + dMNW/O7v/A6+/e1/huOTE9y+9RpOrl3DbDagMqPrei2UJ1ux1hGtH0hJB4BBSAQcr1o8o2pacLH8t9An + AZOKTTQ+t8TSfBeisPm3adR+Pc0F8EtMlWCSGAI0BI5gRjamqBeuhHvJ8GUnGRnijwo9UF5KgOc3yDXm + AjREYd170pCPRXlnbewDhiJUD7ebo8g7LjEqYdZO2K46KPE3jDYlW2fy92Bl1F1hI0kcqjYnuSdBI4IP + 7dXalTOAYbGQzb7f485HH+J/+O//O1ycn+P6zRu4du0mjo+PMQwDVkcrXL9xA7duv4aTkxMkIgzDHMNs + wGyxRNcNGEvRTSdElSFBRGMucsCf1K5GSgmjqxFsdBpSCPKByc1QGMLq3G5Qa610dRNEnAYm16gtwA1q + JsVSkmKiSm3Sf2qkthKjjbfVoaEFM2tD4HaCp6KAYiijUUXc09f2x7pOqhIE1K9+v9kvQhLH5z4hIGJ+ + W6bVEL6vrPMpLSZAhNSoYraILeqJt2PqjjGTz7PrDu2Pa1fOADbrNYiA5TDgF3/p38eb776Hf/jb/wD/ + 5Fvfwr27d3Dng/dxcXGB7WaDyozFcoHZfIH5YoHFYoHVaoWTa9dx6+YtUCL0wwyLxRJHx8eYL5bIwxy7 + cZRIv2FAoiyHixp0V1sCqYOAlVFYoZHQdxuPgo49gmYbwm+pvd2M1PxsPjcpLxqOSl5RkGEZia2uzYoG + 7Mgw+UbCaK2mPjM8RgEsaCCBo5CowgRPs0cTgWczMSnvowwFP5KZ4Mhksj5e+ktDfs0qqchEXD4cZxg0 + z4R/lxzme7FQY+7Nmlu/yQf8HB47tJdoV84AxnEUcNr3+PIbX8bf/MV/F//Gz/88PvnkE3z3D/8Q3/3O + t/G973wH7//Rd/HowUOcnT7Dxfk5nj5+hIefmr1A37vu0QRgvlxisVzh+OQE89kc88VcsgKHAf0wQ9cP + mK8k8aefzbFcHQNE2JeCvu8ly1DDePeleNYda+CMbGYgJF5Y9cXN1QS8TKSSWfoDBRAB+32RuHt31+m1 + 3KgGdJnQVPJZBQFXF2JBtIiWEImTcxPh16ALE9Ze3kyDsKIk+CUzp6sLtbkGynRCnYGlBCP4n1UIpgbW + h/4S/RsCa8fRVg6W4iP+7i+x10N72fYDqQosr42w3xdsuYJywlvvvI23330b/+LP/ZwkAN27j0/u3sEH + 3/sj3L97B3c//hj3793DxfkFNusLnJ6dYr/dYRxHNSbusNtt8fTRQ1hVXmMWpRZ0XYfjk2uYz+eYzedY + LpfohgF9P2CxXGK5WmF1dCLZfymh73r084Uk93QDhvkcZRzFkp2zxvuzW8SBgMbukuQquQcpotccGJhG + 0CrnqpJYEAypNJdMQbV6KFNwutfrwvAgXMK8AABUOgtphSVNCFk+JUUkWfzsjhg09RiBGqRWP3ntf7/X + Xq8WLKDaMA8Kap0Y85SZ+nl/auNpwyeMoZKfQEhtuvEOwKEk2BdoP4hIwOZXgYSlFPBYUBTyHV+/gRu3 + b+OHf+Lr+MvrfxX79RrPHj3Gg08/xbPHj/Do4QN8/OGHePr4MZ48eoSHDx/i/OwUm+0W280WF+dnuLg4 + x7jbae2ADmDg2dMnOHsWCTz0/7L35sGWZHed3+ecXO6+vK1ebV1LV3VXdXWrW1IjNaLFohEICDDgGQgN + BgbCE+AJhx0Tg+3wMJhweDSGmQlHeMbhPxzhwDb2DGNiNhBYCBDDIjXaUbeoXmuvelVvX+69766ZeY7/ + OFu+6gYktLxQV5/o6vde3ryZ52Se3/b9bcIkIEUyIqlUjCYQx7SaTdK0Qq3RoJKmJJUK9UbTawmVap1q + rU5aqVLYVmIySYiShChKUNrKcMsMlLJuS6VMPr0DwdxOL6myB9B3YcxqIulDpIWVsK6FmIPCgtkgfEJP + 0CywbcTM766oiC9WIkKDzxCya4Ob7PlCgbDBScKF9TjQzt7H0LBjhlY4W4zB9wDxWIa9thTeFeuVOodl + OG3P/jNamTtPIxB9DW8lA30F4+tfFTjLEEJQFFbSOLtVOxpQFLlils3IlSJXoOOEzpEjzC0vg9YU2Yxs + NiOfThmPRgwHA/b7PQaDAfu9Prs72+xsb7G7vc1obDr9jEdDhsMRw+HQJucEIEmpwmgSWY4qFFvjTV+K + zJi0xuZutlpIizskcUySJCbPII7NsSQlThLipIKMYp755meoNDu8cnVMFEVUKxWiSDKdTk0zE7vBpXTl + tYw4VF4salxKjiNk7yZ0EYTCxQ4Y91vIfi6p8V5iOkmscEfKqvuBatv2Nj682TIV6ek6gKWhR6GfZAnQ + c+Ru0pudozF4IkpmjNM1ykLC/9QgHeMy2pbQWivXheWt8VcaX3cGMNzfRwihq3FsgKvCRPcBFgwCtAkQ + UhrIC7Tr8mMbfBZFbuzuOKbablPvtDkanQZlCoaauICC2WzKZDJlMhwynUwYjUbs93uMRiMmkwmDfp/h + cMh4OKK31yMrcttlyGzYoigM+h1F5FnOLJuVAlzMXKI4IU0SA1gVpuSYiCRxBGeOH2HpxCmUUIwG2zTr + CUWh2B8OfRBTiAdQnpiFJf6g5xvAzzEizwy8AY49N0hcby5gtYEDLcKkf9bGzDDnG7U+1ArwPQSsB0AJ + e47z63lpbiMjHVELJ9XNfBUunddqFvb5aqvOa6viC6kJPQQcawiRgWXXoflFCPm6lNK3xpczvv4lwbIc + IYQqVB6CeoSJ//f5AQ68UgTXndbWF2zdcYWiUAXTPLdMQeGLfYKNGdfEaUq7XiOS0rcS04AqCvLMYAiz + LEPNcgpdQKGQMiIvFJPxPpGN8BmPDdNwrjph912SpjQadfJCmapDtuQ3aGrdOaY64/iJZe7dmSebjphM + pkFSmpkCjsCtIuwy/rwUNmdKg+1721pIbOp+qbCoEMEbpy2eUHKrvU7VRtv0YadxBMbiBbG1l2R53rYw + qfsYWSJM3A1stV+HNQhnMFgzwrlpnRkhJMImSflIRIHHdMC2RBevD0R6a/zVxiFUBbY2sK1244JwvL0I + tnGHCnasHUrpUvcbDNiFDVaRAq3MRiqKAq0UhVbMZhn7SqEL7TeMiEzMgIyML544JkpTYiGJhekZiBC0 + 1ZzNEDRmgkvOQYeUWcAk7uhSKjMaVWiG+QwGM4pc+TDl4Ls3RF9upe0ritlr+jBiK+FNUqGwx5ytbdX/ + Eg4gXgcWCtPgQ3nozUQuWvfb/a40X6dQ2XVK+y0rhYW0JGs5kLu0L0tuXo6T3ZTD9Q1rkV5ZcQ1AAiDo + NBEoNw91QUbO9elql2vXDfWt8VcahwACUjbszKay6r4De1zHL0U46GL+jXqvbIdcp46HDRySfcymjWxn + YeKD+0RrTZ7lFNlBVTpkxQU83kvcN1qMxKD0NuXXEYBLwjGVb2wG24GLOBXfifGwBmO/W5PA2/GOVVpP + gSsu4qwE+0+KYEbhsiEd4xPWDMDiAu760j2DoPKb892EonC8BNAp7bSSUL+/dBXrq7dH/XtxHE2GXgOO + hq0pYI0UW9KsjAdIXwxVAhKtCq2z172Wt8aXPL7uDGC0P0QIQdao4yriKIJ09j894Rc+hl9TYgSUIvvc + MUtIzjUF+Bh57Qp0ljajiIK9WSbvsq0pXNceH3jgIgm1Jzrv5otCDb9y5J+fPF7rxtvowknXcI4/0d1S + BQkMB+VpmJaLQXDrCyYBuFoDJQntwEEBPt3YfxYASXNAeSINywneDBc96DUjszqrkQhv2smSt8NFViLC + w9H46R9kJsLpDfbewmhlCCZSirfcgF/B+LoDKN/z3mf0aH9/fzadbVgyDi/b7kJvC2ttMwFVaYuAB6ls + cQ/zibmKIcBSg1AHrFm126eUvsHwUXrmJr74iAvwCenBhGvYzsVuFp7JUDJV7CFLI6W7leZmN72zdgVG + FXZ1A31ab/neOEJz8yvfz87XyXb/t+M/5m9537p8+3D7zxon/r4ulJfS3F3kXuS0A/8zvFdntyMERJHX + Rjym46S9DvP1XlJA2C5LwUOgAArxVmOQr2gcCoKqtZ4pdB+BQYt1iKpXQG5VfS8SwDICJ+xcAI5bgA65 + /9ZccNJZW/972WY++EsYIdS3NNTrjvwF6wpaMu5n+X5ufnZ2Mgh1K2iDSu+Oa4QNkw3pvJ6QKGkplLIU + yjd2+fn2al62+jZj4XRHqOW/ndQWUiIxtQE8c3FMjbAIWVqyIXajrPtaguAZhrmHxGOQWEbniF9IV0Xa + AMCOmUMwqV7/xt4aX8Y4pIpAGrT3YIdDVgw6aaN04Qnfdgn1UXaGyFUp/1+gdeGvZX4G6R3GQeks3oAR + /FWHo/GiUKGIBgRwzhqvUpg+BgbktFa9wLhFgyLOwWw+6dfj0mWd/S60S1oKhbScJuItBBEYhH/qFizw + Oo9V6dEcKPvtahd6rwGWUHWpqrFdSWEmYoJ2gsZvIYkAnGodnr0DLcOD5OAfXssT3txxFYLfGl/ZOBQG + IGQkQcSF1hQEKVKowvytgyqudWFMAI8SKnzAvBNmLj1Vl7azR+rLTKBEXPDnmgJf2XClwEJYr9+zmuDe + t6LMh70qEfr52Yg7KaQvtHUw3Ncv1yzDkb0NHBIOIzGHApNxa7YE63IbnCT1Nrs3N5R/N697UnY+Pk1Z + GOL2df90qcPwdAV2/ozpdBWT3h0Yf2DAJvMx6pyFxtvRcQNk7B+Wk/zGhJMlA+qt8ZWMQ2EAu5ubw067 + vS6FPH0Q8RG2RJBGF4WpJlNSHU3XX0JYrQ+PFeZ3u6+cCVAuw3W/JhA209dmE3mN36BfYR2WIKWUCGVR + fSGQMoS4GiYCaBsH6KRdmalBKXX3gN4Q1HrHIP2KMSHEjlilY5DmcxPsw4EMQudVcVqES3ryBOhu5Bmb + QBR9xOgKtclVqnKP0XDM3mDfMGopiWRcMiMkwns5QG9tw+anKBSkjbPQegLVOAFp160AMD4E6ab61vgr + j0NhAHmWjYo8/z0N77Z7DywAV2iPMUHhNAELBFrpLxxGgI1cw3zfjfKeLEuaA8U8S4j012popV8XGy+E + m9PBSD23ZBCh7km5QYcAoVxdf+ssEw7tD4zCrxUbT6RNq3JhcQQtjUvPaSXuWoZRaO8tQAsKlGk5hgBU + aEYk3PMkzA+NGtxCbvwBc62cC+94P0dO/x3SaptiOuTG5Y9w++ZLIATFbGaau0ynDAZDJtMcISPSKCKt + CCqVCvPdFkL0mex/jGwzp6idID72DLk8bW5p4gF6WuvpV//NPTjjUBjA9/zgf6SFEIPxZGxRXWdIGg3A + 5b07VF54iMsQcdnvjzaBP+W/A6hIWU/+qtr7X8qQTvJ7lD585gA3E/QnPaMT1qh2TMorKTYoJ+L+tblq + w/aA18iDi9DnE9i5GFXdNR/wRgal0j8hPBfs304PcM/RagiqoBi8iF77LLK4w/yRh3jmO3+aI2f+GrOs + QBc5SSPm0nvPcf6J51H5PtNJj+HuFr3dLdbW1ri3tsvN26usrO4wnipqKSzMt3ni4lFOnXwILTR72322 + rvw6iBy9+EPI+dMIkU6A/Gv3Bt/841AYgA3fDnEgYCPlrF1aaBvTX/bxBy3AMQGH/Ad128YCiBCoEuD0 + oO4fNAfuwwW+yut0dreg7GJ0dw4Rbwey6kT4XDjb/IAJgf+fsFI+gH7BJkcfLGpi7hVi8UNkYUD+tWU0 + QmtfdsyDdZZnuKKfIt8kW3kOMXqNbqfC8vKTnL3wzXSOvpPxaESRT+wqEjQzCt1Ai4io1qRbW2b+eM6j + T+bofJ+9nXVWbq3w6T99lc++sMLnX9zmc5c3OHtqjve95yyXLpzl1KmjrKyusbP9b9CjJeTSU6cijh1W + afs3xTiUemo/+3P/IAK+Bcn73W5XmlC2SxVe+wVH6MqhhfeBhOqAb90Z3s5mDsU/g+QKxH8w0sxeIbAD + R0vehhflwwfPOSDhzfnKaTJas7Gxzt7OLkVRcPTIERYX5lG6MNqLcN9yxC/9dV1orBfuIvjHg+IkXL/P + ED3nXA+Ec7wmJUQJ5TdGv3leJc+FtPcVpedhn4FWOdH+S/Re+Td0GgMefvg8l554hjMX3kW1c5Zc1/16 + TOJRTj7dRGdj3EJUkZEryXSWk+salUaXo8cW+aZ3nOfpx5eZm4vZ3d3nlWu7fP6Lq/R6fR45/xCPXXyE + RrvDaLdHb/XV07X920985zcff/4jz61s8db4ssehMICf+bt/L8rz4lukiN4vMH5/hIkBUEVh7VOFsjX/ + lCo80Yd/1i2onPQLotGk+KpA/E6KefvWidn7XYRfXQYQQoQV62vr9PZ2KQrlGQBoMtthyEXOezNbOqOn + bDdwUCOwUt+F+5h0YAuSlVxuIjq4Rs8/3OPA9e8L1C78/UpxB1oj1Ijpjd8m3/0kZ08t8dilpzn96Duo + dk+T0UAVGqEmSKmQsiAWMyQDYjEjjjVRpIllQRRpIqGJZIEQCl0oJtOMPI9odxe5dPEhHj83T60Gq6t7 + XH5li1ev3KXdjnnHUxdYPrKMEJq98c6jRZH/Jz/5Q+2Nf/2728//JVvvrXHfOBT1aXNtzRT5jCM2NjbI + 8pz55WXqrQ5xJG08jPYt4U3KcCA7TVkL0P6gjxi8T9U+IBG/jrCxdEU/S5qG87OX5+YIXVP6zK/NfT8E + S3natyaOYx6eWVimJ6WwxUlKmOd9PbyMKeA0JPDhvx40dTcCqftkd36Dir7Hwxce4ez5x6l3H0KJBoUS + VJKCJNagx0xHqwwGuwwHQ2bjfZTKkXGMUAqlZ2hVoApNlEjSJKXVmSetVLwrVFHl1NlH+LGjR3j45BIf + /tjzfOHFLX75V59jdXWTv/GD3847v+kddK7McePGlbmtLfV//F//+P0P/9Tf//1f+Jq8zDfpOBQGMNrZ + QQjB2qDHv/5X/4rnv/B5Tp95mOWjR6k3m9RrDeaXFjly7BidbpcojqlUazTbLYSUFABaI2VkQ1mNlPPh + w47InLtMiGBYvy455WswlLYZdHCQWoMt7+vclb7mymyBIebQ8cf49111Hlzcg7TBQJZOlRXnLrzW++Xd + TfwFtM82FD7Gv+SZ0O50Zx4IUHtMr/waVTnk/KOXOHXuEmnjOIqYNM5JohmDvU2u37nHjVvX2dzcIpVT + ktjUUihUQZKkuGdfqAItIE1SlFLkhSni2m13OH78KIuLHebmOzRac3zbt72LpaUuv/bhT/KZL6zy7z/y + Cv39KR/8G+/jwqXz1Os1Xn31JXa3Nv+7//MX33tSisF/9pM/98Ib9Hp7a9w/DoUBuC3eaLZ49OJj3Ll9 + i5tXr3D5hS8wmxqvTiQjmu0OrXaber1Oq92mOz/H3PwizVaLdqfN3PwC3YV5Gs0mQkbIOCKOItJqzRTx + yJWvwe8DSJxb0REiHAAIv/JhJbLSJgz2da5Gh12UA5SER+PLjEHgvm7cnUH1dxWAPcxvzrcUbyodu9nY + u1rKltbUep1CVNZQhLABRNbVmvfRN3+VajThwsULnDzzCFF1nkoKkRiwcfc6n/38izx/+RaDfo9uM6Lb + qUKthqgKZJQio7B6ISCKI8sLJHlRMJmMyPt73L19h09++gXiSpWHz5zhiceOcf7hUzz15AXqtSpp9HE+ + +fxdPvbcDQaDKf/pj3+AM2dOkqQpr7z8Ittb2z9FJI7/i194x3/84x/6wuir9FLftONw4gDyAiE1zU6b + D3zf9/HUO5/mlZcuc/mLX+Tm9WsM9weMR2Mm4zGj4fUeaygAACAASURBVL5X4V0VHqUU1VqNeqNFrV6j + 1WqxsLBId36eufl5lo8u02i1kFFMs9Wm0WpRrVUpLAHESYUoiT2FiSgyKrgqAmDotIcvY12qMDa/LGUF + egkupUf9nZSXIkTFKdv9Fq1tg49QkBOh0crhDyFZBm0EunRKjZ2HxzWkTZW2efXl5GZpJbu06cw+6MdB + /QIEEvSU8Wv/lmZlwrlHH+H46fNUG23SeMz6nSt8/Lk/5ROfvsZef5+Hjtd45PQc3bkWcRzzpabqR1FE + rVIDoenOMuZGIza2B/zxJ77AH3z8i5w7vcQz7zrHk5fO8VM/+q1E0XN85s82+Ozle6j/+6P8zE99L0dP + niKKIl5+6UU2NzY/kMv4V4Af+TJe3wM5vmZa8F80/t1vfTSVUv5sd27+lypJSmEBvdGgz71797h18wY3 + b1xj5dZt9nZ3GI6G7PcHKK1Mu21bfVcr7dt9Kxs5WNif9VqN5WPH6XbnWFhaojvXQSuoNeosLC2xtLxM + kqYgJLVG3VQJTlIQZkNGUUyURB41B+tW9NiDwJWj0wrbGuy+x6kN4SuluPzCC1y7cpXZbMbFc+d48onH + KVTOZDbD5fpry5Ccm09iOhv5a4GtEqwCKGdZgi+NZ4ku9O7RzhoisJBwnwORhfa+CNedPUes/ipqsMnZ + c2c4d+48zWab8ajHn/zJ5/jo71/m5t0hRxZinr50hCNHO8QyRqNNzUcR2QKkfznw4s0l9+go6PfH3Ly9 + w4vX+mgleeyRBZ599xkSkfPh37/C9ZUxeTbjPW8/xt/52z9Ac/4om+trvHz5eTbXd6nMV//JT/zsJ/7+ + l7ovH8RxKBrAeDxBSpm1mhnEMcUsI8tzoqTK6bPnOXXmYd71zHvY291ha2uDuysr3LjyGjvbu/QGewz6 + AyajkekxIEwFnziKLFpvm1UrxfraKqt3V1CqoLB2cywj6o0m7U6XSrVKmsY0Gk3anQ7zi4vUmw0azRbN + dptOt0u1XidNU9JKhbRSoVKr4lJw4yhyTfF8YxFlChD4xhVSGiDQVByOEBnM8iJoCFL6FuXOXCiDlh4g + tACdqYYTCoI6Rd6ECIVw6AjXPszcxhOY4wYWP3BFd4SwYb62OkMkJLuv/S5zYpUTJ09x9uxZGrUaN6+9 + zK//f5/isy+sMcvh4rk6Tz22TKfVIlcmOSuKJHPdLlGaMuj1yLL7anYEZ8OB94XQpvaBEAgi5ueadNp1 + lha3ef7yNp+7vMnV67ucPV2nUdG06hH74wqfeWGV+X/7O/zU3/ohFhaPcOHiY2h1mfXV2X/7u//i7Xsf + +PHn//FXeQu/acahMAClTEBroRUFZqNKAbnKmUwNsQoknfkl5heP8Mgjl3j2vd/B/n6fjfU1Njc2WL23 + wub6OsPhiH6/z/5gwGQ8ZjabWPebREpBHEcIaRp+yMglq2p6vV30nos7MLkFMo5oNJukSUq1VqVWq9Fs + t2k1W9QbDdqdDu1Om3qzRa3RoGmPR0mMkBFJaisFJxUKpcizzCT1RBHj8YR+f0Cv1+f0ydM4EnB58h64 + A4wKHnzzRgkJ1YEdeiGcxqCdZ8A1DAnBUAEjsMxFgi7wmo0J/zXIe7lCcDK5QiN/kbnlI5w+c4ZKGvPJ + T36Kf/+Rz3BjZUqaRLz7qQaPnz9KnNbJi5xcKZr1JkePHyONY1bX1sidWWUjEBEFGRIxy9FxxQKROZEW + JFGEEsqvTSmBlBFnTh6h22nw+cub3FwZ8vK1EUlisJ0kFRSiwh995g7Hjn6c7/6e9zO/eIJzj8zIildZ + uy5+6X//+W9/6af/xz/68Ndlc3+DjcNKBxZaa6GVtYht1VoLTqOFwQlmMxMoowrTp65Sa3HukXkuXnob + s9mMLJsyGY3Y2dmh39tl0OuxubnO9tYOo9GQwWCf4XCfQb/PaDQybjmEr/8fJwlJmpLECXFsWohJYeoB + Kq0ZDocMBgM2osjb25GMqFQqNJst02SkUqFSr9JotGi3jeZQqdUYT6bUag2OHj/JTn/Aa6/d4PbtuwyH + I3iqVAfROyhcvz0osHX6S356lwApHTLoAqgIhUAC4Oc6A5lqS+aZhkhDV4DURxw6HNICjkLN2Ln5myx1 + Wpw4cYIoFvz2R/+Q3/rYi+z0Nc1azNsvdnjysaOIqMJsliGjmOWFDidPnUYViqvXrjIa7hOJiIKMXC2i + GouIzjchK4v4GAPtkpM0o/4VqrO7qPFVhJoSRWY+hYK5bpf3vD0hjVe5dmdkYxcEFQS6osnzmA//zgss + Lc3xzHu+hSNHTzMaDrlxbYpK5D/65//F+z79d//XP1j/mm/tb7BxSCCgMi/XIdk+tNfa19bENRtXooWm + KHLGk5zpLAOtEFJSSVIq1TpHT7Y5/fAjpGnCdDZlMhkjUWSTCb1ej63NdfZ2dxmNxvT7fQb9Pr1en/F4 + bBReCywWqkDrHKUKZBRRSVOiKDImRhLjyoMprdjb20NrRZ4bKR/b9mJxFFGtVclmOU+87W08+66n2d3r + s9vrMZ1OzcaV1r2m8W44ZVV3oUNYsKvy4xuE4gp0uAYZTgtwxOtMiKDyuxDh0F3YoIbSewFKpbus5lHc + /j3mainLy0eIU8Fv/tYf8PufuM5wGtGqRzz9WJvHL55Ai4hZlhPFMSePn+Dk6YcYDYZcvXaV8WCAjAVj + 3SZvfxvp/Bmj5VgtxrtnCdGJUecChbgA/DXov0K2/QnidEasIMsLWq0mzzx5jCha5dqdsTX/7DWkZH+k + +K2Pfoazp0+xdOw0xx46zWgyYfXerbeh0g8BP/M139zfYONQGMBkMlFRFPWUKmyBT1PcwzEBhSEOo5qH + VltSCuJIkueK2WzGaH/IrChsO3CFiCPiOKJSrdKsV2m05ljuLHLy3KNUkgSBJM+mzKYT+2/GdDpmMpkw + Ho0YjUYM9weMRmNTcnyamWCkQjOdTaxtakwLISOEgGrVmAooRRTHpGlKtVJBac2Jk6dARr7deRTF5K7X + gJBolRv12JbY1kKbtltgXH2uyKiQ1iUX3Ipm27vK+1g13wGDhAYiSvjPhEEWLfXJUoQkGE8FqNEqevYS + 7cVl2u0Gn/vcK3zs41eZ5Qn1uuDimTqPnjuKiGKyrCCJY06ePMmps2cY9gdcu3KF3v4+Mk0p2s8gW++k + Ijxmia0uYpmP6dysVSh3ClYmtB9DtB8jX/84cvg8MpZkuaLZavKOx5YZjVdZ25ygReS1iTiNuXFnxO98 + 7BP86I92aTQ7HD92gkF/j72G/unnPvzYrzz7Ay8/93Xb6N8A45A0gExrrXqqUB6dFs4cEE4pcK2vTGhw + YV2A2GQgY99LW1AkJ88V+TRnf5iT7+wZ0E8KoigiTUzzDtPNJ6ZWrdCo16m2m9SkCAFFEiIBSZyS5yZa + LYli8iJjf38I4ENwpZAWuJJEsSNsCZE0XYYKRZYXPPf8S+zt7Zny4sLJu+CB9xIcq+JLCBoAPiZA2ur6 + RksPDkrppak9LEPlII8IatdqwKURhyQjX47Lluaa3fkjWrUG3U6HtfUNnvvcq8yKhDSNOXss5W0Xlkmr + NWazKXGc8NCpU5w+e4bJaMq1a9fZHvaoimXGRz5gVH0/Qqi0a0HmO6k7lcUGKbm4LQ2Io99KNjhGtPcJ + mI6JpKLT7fC2RyfsjzfZH2liu/g4ligh+fQXbvL44y/x9NPP0FlY4ujyMaaTq/zZc8f/Cbz83q/ubv7G + HoeaSRXcX9KW11YlUK4c/Gs2g3JAklPbrUDLbb24SEp0HCOkIrJmhZSSIs8ZWkAO3OYySTVSSqSQRn2P + I+I4Jk3MY0ni2GUuojXm+mgvzjSgctO1yLggjSaSFaZDkVPzVSlk2VXqUdh4fWzPO+fWE/ggHxGVWmsD + Ujn3njjwXIR08tSTvG0I4hdrpK2bhTaM1uULCDePyW3ibJNat0mW53zhC1dY25yRxAlLXcHbLhyh1W4z + y3KklDx04iFOnT6NUopbN6+ztbVF1jpLvPA9xEntvmpGlAg8SHt3WDgARJQ7H9vROo9qLJFsfZhRb59W + S3Dy2CKP9ce88HIfDTSbEfsjBSqmN5jxRx//IufPnKY1t8zS4jK7O7uM8u1n/+WHnv2eH/uF5z76lezb + N9M4FAZQKI2QREprhv09hsMRrU6HWrWKUsZNNptOmc0yCmxRT2wVYPBh8q5egCPs4r7CoM5JJmwDDiyo + hJN+uCIkBbkqmGZ495zD2twQwmgT4ZDZ1X6TCjwTcgciaTwPKs+NPV6S/+b6JR+dE+OUqiDpwKwM33l9 + p4Ly7555iHDZ8EuptkBYlC0kYu45XfkEzXZEHEnW1+5y9dYOuZK065qL57osLnbIC1Ou7MjyEY6dPgUy + 4d6dG6xvrNDonEYv/YBRyz3uIErrs09Ml3MQzJpCoEIwaUqGC1p2Ucs/hFAfYTzdo1lNOf/wEutbI26v + 5VQrgrlmzI3VGUjJa9c3eeHyK7z3WxdotLssLC4yGA0ZZeN/ArzFAOw4nFBg09hDaa24euUav/kbv47Q + mpNnzjI3P8/8/CLzCwt0u/Oms68QVJKYSpwwyXJmTMkwmYPawvPadqgppwpjw2btXUsS0iHnxk/vQ2r9 + We6vkGgDjgG4z8P5DkATQobONYCrWSys98CcT6BCK4nBFdcsAXWiXBDFMivh72TXair2uNJpzpbWpVuE + RYeaAfjb6zCfYkTKBkKkzLIp99Z77PVz0ljw0PE6p08ugojIZxmtuTanTp0lTWoMejvcu7tCbzxP9cT3 + I0VsGJwwuQxGC7mfWWr7bEvPUZQSprymJvz0TWRkG7n4nUxe+y2SyoRGo8kjZxdY31mj1yt4+PEmSkiu + 3R4zGBU8/8XrXLp0jrmFE8wvLLGzs8N0NnnyV/6H9z/zk//973/6L96lD8Y4NBAwSZLPKaVf7XTnLtTq + dT7/mU9z+Ysv0Gy1qNfrpJUKcWxCeZeOLLN89BgLS0vIKCZNKtSbLbrtJtPpjMl0iihidJ5DliOkCoVC + SzIyDB02n7e/w1midFZIJ/YHAwH5b+oD3wtS1ijj3tB3/0qqhbAgmHYVgkXpOiVKlv561nZWmjKDwZkm + nj3g5+2I3JUWN8xE+nRgpUFtf5IkjomkZDqdcHd1l0wJFrsxjz48T61RYzIpqFYTHjpxnGqzQ55NuXf3 + Nvv7M6oPf5AoqXpAUYNtKFQicMu8XJFh90R8VyVbjMRoS2bIkgKhkBTxIsnJZ5j2/pBECo4d63LySI8b + K2M2t3Pe8fhRtrevs9OHV69v8PJL13jPs8s0O13mOnMMBj32M/0Pge9+3bZ4AMehMICf+6/+S/2L/9P/ + sler1dea9fqFH/uJv8Wz730vL714mddefpk7t2+RzYztmaQJN69dJY4TYmubx0nK0vIycwuL1Ko1KrUa + 3bl52t05YlUQJRVEXEUhTJUhbQuKam2BREvcWiMiWaosedCWBgxdeWnPQeL3Kno45sA1KBGmdlI7FNwA + vLkibOswl4lb2BoHli7stUQpYPC+0mHOqCgH/uhSa64SIFhmJy7sXwqNGlwlSWKEEIxGY1bXp1RSydkT + bZaX5shzs5a5I0t0548g0GxvbbK5uUXWeB9ppWsm6vqHq5BrgC95JvCPxD+fwGDLXYXK2oIvioplaJ3H + iLkyHO2sN1rtOo+cnePexoi1rSlPxzHPvP0Uv/cnN+gPM1586RaPP36J1twC3YUFtrY3ySb9D3zJm/VN + Pg4NBHz7U0+JOE6EVprO3BKXmh0euXCJvZ0t7q7c4dVXXuHmjRus3LpFv98nSRITVmuz+3p7uyYvwIF4 + cYyUglq9QaPdotWeY3FpyfzdalJrtKg3mmSFAR2jKEEJmGUz8rxAFcWBRh0HidodsCq2d10cNAHsASvB + yuq8tBHDpWN+OEketAlZ6hLq1X/w7bed687/tHMshDMNdADWNQ5lw/UWCF4I4/nIey8S6xFQRemC9c0e + 40xxZLHK2dMLSJmSZVPqtRpL8wuIOEVlUzY21+nvH6H+xJP+Zr4voQiVi0pGS3jAJbzDBTm5EXSFcL45 + XZqmsYBqvq+fb/0/eZYnneWleZbnt7mzOebGSp/3fesTvHJtjet3hty4s8XtO3e41O5SazWpt5sMh2N+ + +UNPf+hv/8LnH/jaAYfGAKJImiIRIkLrAiEkUVKlPb9Mq7vExUtvYzzc5+69Fe7eWeHq1avcvnmd/t4e + CJBFQSFdwY0w9gcDtjY3TFutODJ1+W1kXL3RYHH5GN35eTpzczQabaq1Kmm1Rqszh0IyGo9RdgOqwoXn + aoIMwoNV+GOBXRwkfqvkWul2cJub4a7vmYeV7ibv3wYCWUxA6VKTUdsp2UxD+KQb7a7pQE4hbeYf3nwp + S2OtNXrSs+HMoIqcnd0ZUSR5+HiLbrfNLDP3XVqcp9FoEaHZ7e+yuz6gdeH7KUqPxOUWaGnqDdqYJ58z + 4XAO3zvB5z/gJuf7FXgkxtUitMdNHkRTpXL5IwVrP1pNKpw+1WRlY8zdzT4CwbPvvsTdtc+ysTXk6pVb + nH34LElaY77VZXd7l3RSeceXs1/frOPQGECRF2YLHpiBJpKSAkFWFMhKg4fPXeKRRx/nW7/jfYyHQ+7d + u8vKyh1W7tzh+tUrDIdDiizD97cTgDI5Br5asN04k/GYXVuMxNxOE8cx9WaLuYUF6o0mc3PzdLpzdObm + qTYbJtglqaDjGGmDehTY4KMSfqADkQfMIKjmWgfQzTGMUPE4EIEWUQDsnFbvcAMrWQ0T0iWMIPj9Q8CN + nZOH/kPmoI8QtDa3HN4mksYV2t8bsbM3ZrGTcOrUgsUoZjTrVeaPPkx94SL5+A5b21sMigUa6anS+xMB + 1LTLP4C/2Hd0IDcAwnuzz9AlQ7kaBl4bKmEYSEF+8nt/XWz88ntIxZkji/O0G7tsbo5Z3+7zxBOn+ewL + V3jp1S2u315n0Otx5FideqdFrVJhnIy+79d+6ZvPffDnPnXty968b6JxaAxgOB4jpdSNqG5hocK/axMP + AKpQTHKFFuZ3HdV46OwjXLz0JBEF4/GY3qDPyp3b3Lp5k53dXe7duc3mxoZpC44JEXWNLmQUeVNC2p55 + GphOJ6yu3EFjUoHBYAbVSo2FpUVa7Q6dzhzd+TlkFFOpVqnUm9QqVQoNyBgRRRQKL6VdPX5v53stwAGB + hgFIHLrvFABXtKOkF1sV3jTlUJawQluMstQH617T2JwAK3ERtt24U8cVSCimPVS+gU4MU9gbzNifZDx1 + YZFWq8l0WoDKmV84ydyJZ6h0H2P/bp/93W2qZ3/YaySqxIDcpJz5pGWpvLj9aWkYpUvuS5yZgwcChXsW + WrteAObiqkDLSl7M8n+ZifznW806R480uHpjj3ur2zxx8SwXz5/kxu1dbt3ZYuXeKgtLR6hWqtQbDXZ2 + t4m6D5+GtxjAoYyiKBX6xAX5OMDKBgM5EaFMvn+WZ4xGBVvbPbSGNI1pNjo89c538+y3vY9KHDGdTdjc + 2mJ7a5vr165x6+YN7t1docgyxuMxs+nUawCRSwZKEqSMSFLHHCIPOI5HYyajEXfv3EYpRb3eQEpJtVal + 1TaxC9VanWqjQa1ap1qtktSbJJUahS0Cktuf5j8r2r0pbKvvWFwhcjavC5rBqr5eaht9WDjiOWAnOzwh + KNBae5np72foz3ynXkkYphUkGUplDEdDKmnM8WNdlIpQakqaxLTmjhHXltBak89GjIoWSeOYcUHiAEfn + aSjb/aUOtGWAxdUdcSXH7Eeu1IEzV1w86IHKzgZUzQViKnqdf54vjP/rSqVaWZqrcuMOrK5tUgjBI+dP + 8rnnr7K5M2JjbYfZxTFJ1TCAKEo4Np/+JPAfvrKd/I09Dp8BAC66p1w3329ZgWkH5gAjBFEkKZQyGkB/ + QKYKCwhGVKsVFufnOH/hbbz96XfTqFYQUrOzs8Pa2jpra2v0ej32+3129/bY3tqgt7tLkee+mEieF4yG + Q5I0IY4NU2g0W1ZSCZIkpigKtrc2kTIqMS5I0pRKrYZWilqtxg//yI+QRRVuXLvi/dtuKF0iTA/8aY/8 + u2KdsnSu8P/3+rOHELUFKMpVkA+mGQeA0FHcQnyPXJj8Q6Vydnb3ObZYZb7bNWnZUlBt1qjUKig9RRZ9 + +jtrjOuPUilJfKetSyl8OnYABV3ikrD9BkItQilK83Xv3eMu+K7Cfl8ov54ZSo0++I8+svn//rP3/3Gh + 9XcdWepQra6zvZsxHE45eWyRs2eWWN28we2VVUb7Q7rVKs16nVqtxpWXXvgg8JNfzr59s41DYwBKqRI3 + dxtY+TBgsFJRgaZ8PABaAkjiCArjOstmM8bTCRu7u8bdJyW1tEqjUaXVqNOoN3jk8bezMNcljQSzbEo2 + mZAVBfkso9fbo9fvMejvs7OzRZ6ZWnVFUTAejT2ANh6ZUnNRFJWkr6BWq5GmCUJEpqpQHHH0yDK7o6zk + 1grPwP3qbGCX/+AEYvlvNxz5C5wQtcxAB+luQDPtbW6vSWA7AlmGpTXceO1TVFVBksZMRorRRPHY+Tmi + OCGbZUgEjVoTSU7eu8Y0H3H9tds0jz5DZldRTkfWvtFI8I9gYw4c5hH6Gpj377oda7CVjG2ylCivyxK+ + KxpC8N5OE/k7jbz4rlqtRqdRYTLN2Nvts3T+DCeW50mjm6yu99nbG9CZ71Ct1U3MQ1ovtZR6MMehMYA8 + L7zQd3ayFILc1f0rbKYgeLMA7FbWrvKOHRZ5F1ISaWFtRaM6axS9/oDdXt/2CjCbLIkTkiSmWqlQr9Wo + 1yrU0gaLxzqcPJNSSRMq1SqqULTqFQb7I5OAlMRMRqOQq68102mG0kbia2A2m5EXmlxpbqzvsrqxaSSa + tW9VqUiGmT9495yw1Xw8eGclq8UQTBiDteWDn80/H4QjQo+hG5PZ3sYxXCGMjz7LBfXYRCqOJhOqqWRh + oekBujhNaTTbJr26/xo7O5us3+vTPnXeJCI5ZB4PVfjXJey7cbOTohwPoO3U/Cxx2otrhCIwBO+fk8bW + VlRGg7DLH8707y5EChnFLMxVuHZ7wG5vBxmfZ3l5kblOg73BiJ2dbU6dPYEQkkqlQq1Wq9/443/w1Nlv + +8UXvoKt/A09Do0BTKYTHcdx4VRe0xoMD44ZbVaArfnn4S5dtmhLw9mNDmAr2aBRFBFRwtQApTST6YzJ + ZMLu3h66JDGNzWni+CXClPISAikFUWTiDQTCYxSuXZnbwIWrVWjFlFaF9XUbe6Y/GJjqRFZld2CXS95R + StnefVZqhmhmHxGonFrvbG6PHTgb3DGYIJ3dgzL0ZZ5PvdmhGK6hSRmPBnRaFeqNBrlN1TYl2atIa3aN + RjlxI4Q8SzsH/76cieEJ1HgrtHAmjmMMLorRBPpIK+21DV7S/lrSa17CmoP3j//8733sz37tf/vuUVPp + erPdJFc99vtDZCRZmOvSaVfZut1ju7dPnhfIRFCt1YAtPvmHf/D9wFsM4Os9rJTXRV4wy3IvKRQ2114W + iMLH1uGyBD2xqQAeOnX2dcNJIiulXGiv0JookiY3SEelk0s+ebRpXiEExSwHiz1AFja8G3avS1ewFHPP + REZIKckyi2xZiTeb5b5EmXBEX9IoXCafA/BcyC5CmOejwUcPgmcC/sZOEpdWZk4LWoMpjqZopRmjUYTW + MJpkLMy3iGxJdYQpuuKSoFQB+8N9uqfeRq6dgh/MFFkCJJ3tL5Bo6dbgin8Ec8B814ZBu74F2oUNBBPR + eTYcQKjNQf8KpoXaaMfJmXo1RaIYjoz22GxWWVyocfOWZGenz2w6pdZokFYqRFHEUE/mvpT9+mYdh5cO + rE1Y7trqClevvEaj0WBxaZkoToiT1FbolchYILVJETXdwQWQeaZgrmV+BGu3vPWDLiBKG0oc4BhBNxDh + Qtg4VgtECSOVBWZTO7eVU+WFsE1KxEHmQLDD3QdOg9AOBylNodyPLwCfTq3WXlOQWoTG6KIcYIyX/OUS + 52BLgCMsliJIpCKJjLclTRKSKKbVbnoMRkpB1VZFctWaJsNd0hPnKKzdLrQstTJ01YW0X7eyTMC5+s38 + VGm+NjvAuxEtCKickiC8sS+sRmFrGCitQmfgdDS9qVrxmUoaUYkl08Iki6WVKt1OmyiJGPQGZNOMesOV + hUuJZOUNdIoHZxyiF0ChtRbD/R5/8vE/ZuX2LRaXl5nvztHqdJmbm6PRaNLodOm0ulRqNVPQIopI4shE + DhQm995sdnNdrVUIR8UBbKWIM5wF6v4uZ/y5axz8zOkG7iR93+8ums9/64B9bxmVcElB7lvBrBG2B5q2 + czUA6UGTxRC+ROjCBtkIH+Qj3JwcoQvjIjTfo7Q6B7rZ6876DHo7CDSLi0uMxlPGo5E1LzSREMSpyccA + mOUzZJwwGo+g5dJ2pdfLXUivY0gCE3/gLAKfoi1K87FQZrAYzDMgwkcVOkBBgI2OFGjECOj5/UT+Ka3E + dyRRRBIZHGY2mZImCY1qjShO2OvtMh6PaKk2kYxNubc3MicfoHFoDGA6neo0SfZPnT3PX/+RD/Knn/sM + V159hVs3b7C3u8NsOqVSqdKdX6A7N0er3abRaNBstVlcOkJarVOpVEiqdaq1OoXSoBVRnFIoTaGUDaYJ + fm+BKT7qicv7rT0JHRhvxBheV/v/vuGkVOkieJVCB3bi8AILXwY3oLYtuQBE0F78VbR3oB+QojZO1hJK + 6TMdrhCYlRnDwSbZqEe7WaVSrXF0+Qhra+tQGAkthSSJIyvFBSorkCJlmk2ohsU6Ge4mGB6EBpd27TQr + m8PklSxtmbdwDMtdJ1y+dD17rql3nmutffsvDbl73CZewuR3VKo1qvUKSQx7+wXTkjkXyQjxl73QN/k4 + NAYwy2aFEPSStMqFx5/k7LlH2Vhf48aNq1y/8hr37t6hv9dje3vL+tuNGimFpFqvUa3VmV9YoN3u0O3O + oYWg0W4zt3CEtFojKwoqm0IT/AAAIABJREFUtTr1epOs1ClYWebgsAQrfzwTcOPgX+5Yaa/43Vr6vj54 + /OD1Qkkwf30VsAEf+GMTfowWbh192pgDYKWnFfbCT9L6453kL4F/xozRlhiDCxABMo4NFiEjqmlKurDA + bm+P2czQVRSZ2ArTnDUwRFOj0IUwl1qN61K0ntdOzNwKfd9cKZthIedBuXu4p+aesV1giYEKD7jYByPv + J2XbJ0JIw6DyTDObZbi6Slor2u12wgM8DrEkmMEA8myGUhqVa5aPneDIsRM8+dTTbG6usXrvLrevX2Vr + c5Pt7W22tzaZTaZMJxOmkwm93V3QptGkEJLuXJdOd45GswkImq0WC0eWSSs1kkqFWrNFWqkj45g0SYmT + BAXkee6rDjmA0ZfxKguIEgFr7/u2BGmlq9Wy/ReCmg9lON/QQqlApv/c+cp1kJQCr/Zbj6lFxEtGggSh + Tb0gQ+fCczFbKsUGXIuQmVgMiUROLCSy2qRWiagkKbPJzJQOx/ELbTMxBbksqFAJ9yixSu2ydsCCjSLw + odK6/RMVLhMiHBXuuwa8IGQyBqYnpbSWQng30t5flniC6RxV+AemFYynI7JZQRxJkiRhMn2we4geIgiI + ACKlFVIrlFaMRiPv515YOs7C4jEee/xJZpMR25ubrN67w9q9e2xubbGzvcPuzjbT6RgZRURCsj/YZ7g/ + RBWF32XVapW0UiU1fl9q9TqVao1arU6t2abZ6dJsdWh02jQaTbK8MO67OEZryIvcSGRVWKTeJeGAV+O9 + SHNqb1hm2eZ12oY7fqACkD2vzHeMeS1Lbjtzf+dSM7RRMikcoynd02gXOjAboaxJLX1noChNESQU+UGi + cpMxPNHMPCIipyBBElqWuxmY30pxiqUgHmuOYe7t3aaUuyJrS8CuBrJECQsiuicgwLoUpOOLbzTM65Eg + XdVgx1/t85KRNwEf5HG4bkCltCq0DfZQqEJRKE1emLDcojDSLEnqnDh9jlNnz5PNpoxH++zt7rB2b4Xt + 7W22trbZ3dlmZ2eXne0t46+XpshnNsuM2jcYYHa+y4k3Ybu1Rp1mo0Wt2aRaqdDsGoYwv7RMvWECYuI0 + pVpvoLStTqyFqTqsAZRXzwFK8Snmbxf9Jp20D/l/xgSRJYjA1AIwZdENSQmpPVMIMfOBiZhfgovTSfyy + lyNIVY20fcu1JbJCmx4NcaVNEiemGKutTuSDtNyNCoPIFyInEa7ZqL2DtvMSwuIUwUQR0qUfiWByCXfM + IX2WhVjG6kukOdehexbKshitlQ5ln7ympf4cgnZ6SviC0Q7eYgCHNLTWU6X0a8YOLh2nBBpphcoV4yxn + sF+gFcSxpFZtcOxkhxOnziFQTCZjstmEQX+Peysr7O/vs76+wb1799jd3mYyGZPnGRGCKEmQkSROUtJq + lTwv2NndRuztoJWmWqtRqVaJZGRag7VaVOsN2t05qvUGaZpSb3eoVOsAxEkFophCFbb7cARo24vQtd3S + 962PYL7abmXCdgd2IGW5sAY6FNrx5r3PHSgBmU64lXNyNcE0URaus8E37kZJHJE0FomTBlEiPHGaYcur + aYkL1Y5ETIg21sa4kBqthFmvFAFdd7q7I2OrubghPZc4yLTc0oUWwasgdPAmCLED7JSmaTUbK+mliUuw + aIFrk4RW4iDhR3+uEvFAjENjAEma5lEU3SqUCm2/MRsEbTi5zxDEqpJCMxlPGA5HdoOYxJwkSanVOix3 + Fjl+5gK1aorKM7LpmP2+ARK3NjdZXV1jr9djf9Bnd3eXwWBgIv2ShERKklqCEII8y5mpGbNsxmQ2Re5u + s3ZvhaRSsT0GUio144Wo1urUmk0q1SpJpUqj2SGppGgZIeKI2Swn02VV2Un/EANQtmRtmQ+j27oKQBZi + LzcK8RGAOK1CUwgsgdvegMIWEbGcw8UQaG0IVKJRAtP1iASlIa1UrBkhiCKBsDGUWhhNjVh4yV/qJG5m + IULQjhfsbn0lF6gsYSFO8ocnoYMioMMNvBkjXLogQzT74dFZxiWMthVJW+vQPSHLQKVWJU1AILOS+vYA + jkNjAE4VViok+micremQLpcsYL7jiCaSptZfkedkWY7SI3b2TGBMFJsmnWma0mzUaS+dYP74KS7ajrro + gmwyZtDfo7fXoz8YsLO7y8b6Gr29PWazjFmWkeUZWpnEH21DUuVoRBzFaK2IInMPKU2ocBwn9l9MlCSk + lSqLS0d4z7e8l95kxsrtG15N9cNTSKiFLyMDVgWbX9i1E2xZr+ofNDekVw8sk1ElfEKLg+CaPUdpRSwl + Mk7BNmERGsuUja1urmXuFWlJQU7ig6LK8QwHwQ+freOChsoAScmFiHa4ysG1YoE+n+RE6HegjHsh3FDr + cENlOiwJaUOM3YS08kJFWHNrPJz4YKIHcRweBqAVQgvpGIBGo22Zb+dFAgKRWM3AAURgGnUYAWEizpQy + vfom0wkK2NjeJYki0wg0iqhXK1QqphlotbHA8YXjnI6MPCvyDCE0cSTJplPfGLTf7zHLMmbTqWkwMhwZ + NDzPGe4PQRiJiMCW59Y0my2kkLTrVS6eO8X1e1u4ENdAE9ITuVfzfc2/IBNd8AxOY3fQvPeLlwOZHLE7 + FDF4Epz54Crw+gAi4XoZWKxBaSspI+txsLJSWtzGMsOguQfTI5huLv3X3fdgpGJ4oeJAVaMD5cPt/w4w + Qh9jYHX8A8NoKw5X0Mode2MVX2GFTjp9/dQeoHGYGADaincZJcRCovXMdNQxrwdVaL+ZnHvOfLmsXgbg + x3S9VcRRHDQJS9x5ZhiDszWFLYEVRxGRjIgiSZImVNLEMo0G9fkGnSMniSPpuwVJNJU0JcszxqOx7+7j + 7l8ohSayzCjn1dtrrG3uelTfk4KhZE/gkTAJSv5jrET3dn9YIxhmE8mAYnuAsBQd6A1pwnEHrLmn5wjW + qB25fbCu6Ig5Xyt9wG532psPVCppFAb0s7UALE27mgRm3i7iosQgwIMe7nruis5A0NaLIBSmasj9mrvJ + uqJw0YauoxMlLUkIH/9hHpUgjt+ANz1A4xA1AK2E1r3pZMKw30NEMd25OSJppiSkQOnMuPS0Nli7sJxd + ODXVXMvZwqEpSMmqts0jy1F9JpDMmhB5ft8usRtc4GP7EaYpqZSR7RYcYt4tQoFG29Zh+GpGSoMu9shV + bqsZlzRWN3MRNFlHEI6O3eleI7Ab2KwrMB5nsx9wMSoNvhwatv6Wt5+9piEBIVMgAj0Lz0FaZqM0Whc4 + 1105N19g34Gw6r0tTuqYjcSk9hYecFRB2BPWWa4faBiSecGynF9szQApXUt0kQghXCZXeHfCmAlSBCZR + TrvWtg2zcvUiH2wI4FAxAC0QRZbN+MLnP8V/+J3fZfnoUY6dPMnxh05xdPkYabVCktZoNtskRMymkGNd + hqog1Mc7cF18pL1Xj0NwrLYglDsuCdF3npGAYRA6qNZFXiBkbtF77bUQ9x1DvCZhKAStGEAqqPN2klr7 + 8yxAb4YUCJsFY3Le8QSHxNZAcPLTWw44kM9M1cYSRMJWz7Wmgv2WJACD2rrCRJwi44Qis5mOukARIQtl + gns0KMtJsjwnqcT+XgcMkJLpYswLiSLkHmA9HQ7cdPaJxjJb7Yg7vCN3YZckpZS9m2Jba913j04XJmPM + rM/0aYQADIJlipH2zE/rAiFrr2MiD9I4xDgALYTQIklSLlx8nHsrd3n15RdZXb3LS5e/SCJjkIK5+UVO + nj5Np9OhXm+yuLxMmlaIZUyUVigUzPLc5ODbXsHO5lRWBy3BQGDOODiZYFngvfRCIkrnOjvUS17hinTq + klQTtty1JQYhvaQUAkTkCFVYjUD633VRGACwMOdILdDWXneeA0rqtrPZHeKOK8UFJZVceMbkpKf7jraU + ZwpwJOaaaoZL7PGMRRlJKbXVbJQiQtrMQvNMvB2v3fLMM5DWzegJDkCXWIQItr051bRJ90y2xDh9cVBh + ApAQeuvH/uYHQyaf1kIF1g9AFJfeuZ2b1EaTKQqLNRVl4+bBG4eYDZhpq6dy/KGz/PDf/AnW1+7y8suX + eeFPP8/O5hZJkjAejVi7t2JdWMKg+80WnU6H+cUjHD1+jGqtTru7QKVSZZqZnHktBLkqLNh4MAkmIOPu + ACUm4MV0kGbioMQ6EOv2RtvHX/f1UYLhHtoH56AU2GrEMnJx90BhgMHC3ttX9sVNxWoiDtewxOho0OU+ + WOvB2udmHqIkfQtr+weGF6AzA70ob16pSCJmM1TZoCmp6eG5eW7g4nRB2W+5+QgZ6geCL1PuL1Vyk3rm + LFw/BHHwyVstx3GEcpl4x7BBUGjbGUpYjjgcvcELfHDGoYKASqtZZtt2y6TK0ZNnOPHQad7zzc9y48Z1 + Xn31Fa6++gqj/X3fFWgyHjEZjdje3OD6tat+Y8soZn5xgWMnHmL56HHmFheRUUKlVqNSb5ErxXSWWazA + 9djCb96gzAZTIST53OeS8xBV2Qgorc3+9JqvMWnfmFmAIQAT+2p5ojB174ST0FB2FXqcw5kPWvvAIRej + 727n8AoIIcSA2fzCxhZo0Hpmu+4I+3/DEZQU6EIb7QXQhVuPs/Ot2WQBDFFiAlqb2AFhg5tcYpLzXHgT + oGyja/dqQl5EyZ9o3kp5HaXHrrQOwCnOAyKI3HOX1rQwVWa9i/NBHofGAP7hz/836kP/9J/1XG0/rQqU + UmQaRKXFY0+8k0tPPEm/t8vKnTtcvfIar778EpPR6EDGmbNxlZ6xsbrKxuqq3diKJE05efo0S8tHaTZN + a7AjR49TbTQZTzOIIgrwBTDMpvUyBIcIHFQUgoZQPqvsr/d0XjItLA2iMS5Ej947E8KJXOlMUhfaZq8r + JcJFvjo73w2vhtsZidK8rdTXXt03c3AIvXmORs0Xhcl38HNTJpIRoVGFJRipTB8Ea0YcfEJBgvs5lXmk + NYvKkZFlMDM8UGcyOIZrzRF7okuMKg+pxVFfZr70LDQ2s1KDVoJCFb64yVvjULMBIVdFUehQBdiU9wJd + FAymU5TSJJU2l554J+98+l3sDwdsrK/x4uXLrNy5zdb6OoXN5FOWOJy6LqUkzzJuXLnC9StXfLfgWr1G + s92l0+lw4qGH6M4vEscJzW4XmVQoEMRxjCYiK5TVAoI7Cg6aAE5L8PHtZYXASTT3p/28vz+iKPJgCyP8 + vIVTp51ajLJQu2nkgWt25MJ57f2N5A8WsIM9HXgnsEAbhnbKFcoNGDhCq7F3+yEVWksvSR1xiaxAxTGx + EEE7clLVXiv0AfALd3cK2hQiRDqWtCM3W/cOy14d4d0k4n76RxG/E6x5UGLCAqPuS6koCsushNdAH3hG + cKgMYDIeq3ajA+jQxstKPSklSmVMplPG4wkAlTTl5KlHeOyxt1EUGTs729y6dYsb167yyuU/Y5ZlFEVO + UdiIL1XqpWdLeM8mU7Yn62xvbnD1tVdN0YhKhXany/zCIu25ORYWFml1u6TVBpVanaRWZ5aZyr9RFNt9 + bOWThtfBSCXjuBwoEyoNldxpWA3BXU/4WBwr6WUJPCxjBAJRWMBMKxfDFxiIxwbsfCxO4IwcoZ2RozGc + JQTXaIza7mCPQmsbpx9UGgfU6ZLKb4jN/8+4Id3apAiNiksyX2M1FATSaV9OejvMxZUaD0tDa31fSW81 + Aceo7H1c00INhXLf1eS5DiXH32IAhzg0QltCBWw4sAv/LamJFlkfjyf0BvsgoF6tMN/p8p5nv53veN/7 + KIqCu3fvcvXKFe6u3OHeyh0219bQGnJVGE2hKEBKKmlquwlLGzxkugTfXbnN6r0VsixDRpK5+UXanTbN + Rss2FF1gbnERIVMyrYiT1BQNVSaE1+xWG4RudtcBCXMgmo2SoiAcQQEo43+3m9V1Cj6gWLgyXM4uVyZA + xtXU90i5/47lSCLwJmmLZWgt0DoPSrzXAPAlud37UMoFLjl8xF1WuEBHjwEENMWdURrW/2lMEjupUtyC + 14T8BhCekchIos1GmRzcTFFNW4APYR6PiIw3xXzbZQMZPUEXxp08+XNwmQdlHCoD0IhRVmQ5QsQacNE9 + 2tYH8Mq2k5zSZK5prRmPp9wZrrKyto6Qkla7yeLcPN/xXd9Lt9Vg0O/R6/XY2dnmzu07rK3eZXdnm62N + Dfp7e2TWdBBxRCJjhEhNye9IeP99USh2tnfY2thE3LxOnCRIIWm2WiwtLdHudKk1mkRJSqPdIa5UQSsU + 0hXyN5tROJeYVdADPZqfpbgEXK68wKj4RtxZyS4QwnYisk1EzSgQsfmuKArKVrXznrgIqgC4mbkVqjAu + SK0phLbmlGncKgubC2BNITCfS8x6lNbBq+DfqTdqgjkiSi2+ZImREbCTYDdoe87BIF4NNrqyoBInw06n + s13eS1GSnFGFsmq94cO6AHWfl98JGykFQhVMi7c0gEMbUjBSebFfqKLrkn7KKpyp6FIuchEkYRRJosgg + 44VS7Ozusba5RfGaopJUaDYaLMx3OfbQWc6ef5S0UqGaROzt9VhbW2Vvd4fN9XVWVu6wub5OXhQUeWHL + YZltnKYxlUrFu6mcdMuLgjt37pBdvw5o2p0O9brpPFSp1ag1mjSbLZARR4+fQNQarJUr1eiyZuCIpFRK + i4PrdS5EQ0hG8kqrzhulIwJhypwdyI+REqEKfw8DLYT7eIVfK3AhspYZKR3Zn8qqy0EbcK48V6obHbKT + DZ8yz8nXNrQMwlUkw5pATgvwZpq1RrQSRK7wiX1eRZ4z6PfZ7w04evTob3/f9373//zvfuPD4q//4A+4 + BzhB67ZfuwIRCaRyppdjLOHZu05TD/I4VAZQqVbQ/z97bxZjWZad5317OMOdY845q7Kquobuqh7YTfZA + NZtsTqIoWbQtCJAA68V+E2TY8IMeBENPth8k27IBWxBs2ZIIwQMEGwIkQqJEkU1SYrOpZld3V3VnVs6Z + ERlTRsSNO5x7pr23H/Y+597MbpoaKKVK1AYyI+LeGzfOueestdf617/+hbPPXpBmN1nJUV0zPvD5so1o + 8+lIK6SSWOcoq5qTszOOTk+4eVsQxZHv409T+v0uO5tbXL3+SmgM8qj8dDrl7OSE05NTppNzsmxOlmXM + ZjOy+ZzFwrcgEyYASymQQmFsTR0cRxYqFEopIh1RlSWffOtPsvPS69y5d9fvguLZgDhU07xBCrDBSppU + ucnhfTCwLLuBaaMD/0YSgcUFOrIARDNZCbHiPVc4EcGAnXAYZ5Bh5lZDxTXGp2fP7MQtjiHalGJVGcz/ + bde8wh+eDNp+rvFlvvzYUIVt87uiiRJEi4fUVU2+WDA+HfP0+BhrHJtbW9f+z7/1t179xje+ca85rqoo + HqU63lkVMHGOZ6YsO8CZJp3xddbf3zSgF+wAjLEoaSU25LpI3x7c1sVCSiCWd9dyg2xyTb9WN1StFQq1 + BJ8QVFXJuCw4HY95uPskGJ6g1+kwGvQZDnp00wGvvnWJfq8HzlKXvoGoKHLqqmq7DRfZAmNqrHVMJude + JEOrNjpppgdXlWHn8nWyRRam/Swpyc9Kb4lne+sbJh0uGMdyl1yepqKV0Gw/E0lji23VoHGn1jsIlPKE + nGZ3tcKH+K72ikd1/czoMruy8zf1NeuWPQXtbh4Ou+EHtH6pwQPF8rycte1sBGhmA7rVcj/GOeq85PTp + CceHx8yzDKUUg+GAKNKf+8qvfPU/++//27/4Z9rP0FbWorGmKVmGz6CJJh24etkOseoMfj+vF4sBWCdM + VYnjw12mszlra5tESYKKIrR+NnnzjTVV+GkFXgro9urOtRomiIDEK6XavHSVG16WJfvHR+wd+E4yJQSR + 1ugoIg6RQ6w1vW5KEsXoqEN/c9DSYnsb28tjcg4lld9RjaU2jvcf7HE+m7fjvtryYWNYwerdinm3pURB + MPMlBditlDuXkURDSWpiJ6CR5Wo+CNn+1/7sCABskFT3VGCzUvZbOU7nHbExlkh4kZAG0xQstQlWmXwN + UNjw8xtnsaT6+vNe1QIQQlAWBedn5xwdHHB6coYQjl5/wNb2FtsXL9AfDmuLazCAJtCQrXZBe2/Idrpw + 6wTwG0+T0vy7KsALXFIIA+7s8YP7o6985ZdZX1tnY3OL/nDEaH2DwWCN/nBIt9tDSE0URQghqWtPGjLP + EGNsm482LLTlWt07aUNsIUAqQaJiRNTkh4QR4TVlWeGY006ykV5LfnW1lFPnQUoZtLt8Kc9bghJB92t5 + AO1huRDhNDv/M0NF8A7N3+H+HNoUoj0H0VKB27yhic3bY3TNRF1fJw/OQOuUqiqoMA1GTl3ZdjAJhPkK + ziJw2LpmkS8YJY182fK0WkZgOObm0eYzWI1flnqAy+NVUlPVJfPxmKODQ/b3DyiKin6vw/bODtsXLzBa + G4HWOFyFc/OVi+s/ktqySlt2rQBIc7FtIJz5mQG1qT3N+vfxeqEOQChZKaWOrr504+W33z7h7u0P+MbX + f4tsNmcwHLK5vcP6xga9Xj9IfF9iMBgSxQn9wZC0m3oVX+d3W+ds4ACYFixrdqMmYXgmd125+IFfjgBU + E96qZxMN0cz+a3Zulmh3C4xJb+xKiHaib+uUWNbXG1KL8H9macT+TZv/ljl3I5YRjs06EAHganZV22Lt + gPDMQeuc7+iTLoTiImRTAuEWLZPSl9UD4Mcq4Ef7ehsmL2e3/gaD0RpWDkg6KU5vUlSg1t9BdXZA9tFx + QllkONnoKKySj5p4xQW+h2M+m3J0cMiT3cdMzqckScLlyxfZvrDNxtY2Ok1wdQ1VhRGq1kotADq9nsyl + xhgr2tkDK7m9DKXSRgEZ51Mx0+BHzzjm33/rxToAIUBIt7F9mZ/62Z/j6OAJ927f4v69uxwdHXLwZJfd + Rw+RUhAnCcPhiF6vT7fXY2Nzi7W1daJOh/XNbXqDEThIkwQjIkxtcAKMXTK+GrsSK07/GQNfDanbDSsY + Yvi9VqyimXnfct1Fa7jfb9jMqpNo3tXr24dRXi1C1qKC/nVBcKSZnNM+DiCbaCecl4fQ8Z1zgPDdizYc + r3MGbafo2V2G0SFz95B9nWCNF2DxO2ZQNgrhlDFVM8odYyqwkBU5nB1i7GPOjUNojY47mL2vIEwGZgEY + ou4W6fAGavAyDD7CsLdJno+pK4sYvAwipSxyjg4O2Xv0hKOjY5CCzc1Nrly7ytaFbbrdXgBfbdvxKKUU + Kty7Uksl4sThjGsblpyfM0GYJemcvw9qh1ebthZjDJUxuFVvy8oH/PtkvVAHYI1FYmVV1zgRs3nhCtsX + LvP2Jz/N0eEejx7cZ/fxLruPHzKbTDg9ecr4zKvreOBN0xsMWFtboz/wMlw7l64wWN8gSTv0R2t+KEic + IOOIqjIUZemJLgDChZudVhMAVmJKmhx9tUVIrKDowQBbws9Krt7+3OAOLI3f5x7P9MArKTCNITueCesb + yo0U1ovhhDdrnIoIf19K0Q4LMdmYYn5GXc2x5YRESa72HtCNZggpSKKUc5NTmwLTpk9+JLg1lqaNt64d + dWgJNsY71TLPSVQHJxJ0ElIi64iiBBEnCNaR2ounRirHnL2LOfxHjK0hGezQ6wxx5w4d9RFxj34E69tT + Zv0Y0XuJjeuv0x1sUpcFtjwGPURITbmY83hvn7W1NTGdn3cB5udTjZy5qtx0URxhbY3nUoCTzkc+YunL + a+eoa2/8xhicKVeuTLv8z1EPhHSU0+fzSX8z/FuwXnAVwAdi1hpsXVHUBiElUdrj+o03uXLtFebTc46P + 9tnf2+XRo8ccPNn1ar4h789mM2aTCY28+P27d+g2wz+6XTqdLmtb2wzXN+gNRgxGa/QGQ5yUoTtQhB3Q + 57i0wNbKTgsB3n8uSiCAjCyNfHX3f5aQszIbR7AEp4Rrpw+rEHlYIVDOf3XWhSlBIXVo9MGbXoCVRNzj + F5bxg6+SFrd46WNfRleW09t/h95og040wjmFE1AUOb/5tXc5Pz/l7Y9JtBBY6T8DZysc1nMBjAlcAo/k + a2n5zfce88XPv0UaR0i1BASllAGnWZKplFLEvT6m0yVNOygZhp9KiZYFtp4x1JrBpqI2GVq+jzn8x5i9 + Bb3OAEufQq6TbHycyxc0n+39Nk/2Dnr30yd/+k/+zMv2D/yBz/zq//i/feWmcvPIudEzKlHtdXO+5OiE + wNYWZ2psHdin5UwlkZRF1XQRrIAVnm38rININhx1Bib/t8IRvOgUoEZw2qC3nuFqWBQ11njKadwZcOP1 + LT7yxjvUVc7To3329nZ5sveEvd1djg8PqKoKrRWRjqnKkrOyxLnTthcgjhPiNKGTdun1+x5DWFtja+cC + Oxcvk3S7aBXR7/eojKU2HlcwjWBp01Pg5DMjwVZ5Cs8HkQ2o9ywAuWwvfqbhnub3lw02iKAJ6DW7/M7P + KploCbz5aUULyrNdjm//Ip9+5zVe/eL/7F84/2V+6d2cg6ePuX7N7+q94ZBE1eztn/D48SFf/pEpG30o + 6ggpCxQ5Siik0sRRSawqtBKUdsbNm7d5tDthNBoRBSJWFEUBOBTEWrfgpBQCrSNUpNvRaxKW0mlCoHWC + MaaV6HIyQvd2wFqkgCKb8JGP/ySbH/tPACju/S/sfeOv8uXPrF/+4z95/b+Zs86Pfeo//Oo33v3aR8q6 + qWCE2M00VQFB7RrhWENlggy9dThjRE8rGSEwUrJIui6KY6dKh51MKZnDqgBzqJSsXNTnEOYP13qxvQD+ + g/WfsHNtbzoBrKmNoawqsrwk0hGdTsKla69x/ZU3sKYkm005Otzn0cNH7O4+5s4HHzCdTtFaE0UarTVC + eKHObDYnm844OT7COIuOIrqdDr1unyiJGIzWuXj1Op1uj07XYwyRUog4BqWpqqpp0PWIeJAxb+rbq7v9 + amzgY3jH0hWEd2ho641qUONHhECH4L7R1xON5VjhyTqIpfAFNcPFt0nEmES9z9bWfbIx2Om3oDzmztcd + EGxLAAAgAElEQVT+GuPJgguXrnByekqSJH482nDIH/ujP8pf/5u/yC/+0jfodkdcuX6FbJaRLRZe+1AI + ZpMEU5TsH5/xwZ09dvfn/JGf+hRrgx618Uehtb+NlGo0E1U7ywBYIu1Nma4p+TX5ejMTAqjLypdsHczz + jOlsSm0j/zlOfot7N/8xRSkoXZffePcxO5tnXLpy+XOeQ2JwToQBqf4NlVRNeSI4Zj9L0ljP48iLUhZl + LSulnRNSSK2cdtZ1bIHoKIp03c1lJPuupppOyKsZ7W3wITb8Zr3wFAAQ1hikVC1NtHHjzaYqnKOqKoqi + 8GFmHJHGMd3BJq9t7PDG258kEpazkxMODw+4f/8B9+7d5ejwiPPxqY8QlG7r+50oQUcxQkjmWYaZGk5P + z9h99IA4ionjmE6vz9rGJr3BkPXNLZIkpTscMRitU1nfYy6koqq9cKl1rqXhNCU0j9ArmuaX1ikI2jl1 + q9z8BnhbNiA3oEDolGuQP/8LgGMQVbx69SMkG5/A5Y8YHn6Lr/7Sz/P4r/4xXF2yf2KI4h765ClpnNBf + 2/Ct0rXgxsuX+FN/4svcubvH137rN5n/esLTp2NsXSCF9I1Od85RSqOpWNvc4NOfeoPXblzFGEAYpJS+ + R0LKQPCRKB0DfrfFOrQQVCwVjaWUrSCrCqVcFRqzGhDU1HUox8Lf+7//K97+4BeZTQ7Z23tC2hny5MkB + RZFR2SGLRYkxJUJommamuindhpuomRFaBwDQGotxBiHl07lxElMhpHKdak5NKaY6cjpJUcawJpDr/Z49 + KXKXV/92jRF4sSCgDxuFsc7veitluecJKMvuNT/iuSxKZvM5QkmU0iRJRKe3zpufuMYnf+jzREpRZDMe + PXrE/v4+T/af8ODefY6ODslmM+rpFCklSbcbMIMklPj8jTKbTSmKAnG4z6N7d4giP/gjTlNG6+vsXLzM + 2sYGWkV+slDSo7IeYDLWYXFouUK84dlza3jByzJemyCEikOIFEKEIdtj8++zHNBtqOePcEITp2us3fhZ + fvRPfon9+1/lyb1vonq/Tl2esz7SxElMnPo8vSxyxqdzyqrg7beu43iZ2cIwmZ5TBUdb1zW1sQyHI/qd + iDTVTKYT8qIiSTtoKYN2QuvMscZQmUU4R+t382DcSnm59DzP27TKOUcURSitPUBrTJvapGlKnhdIrfnq + P/kKcRQjlKIox6Rph0uXLtLr9VBhvFdtXath6KylLo2P3KzBSc8QNNaPm/Phf8XO5vqP/sJf+Ylf/Pf/ + 8//3t21tyMvSoZVTTlgWmbDWWiNgVpeiqMrVHd899/VDuV6sIIipcQjbIOYujG1qPtL2+5X8upmh1zDH + bG2oqposzzk9n7J39JRIKbr9HoNel+1rr/DKR99BO0tV5NRVwdHRMQ8fPmL/YJ/joyOeHj/l7PQpAJGO + fCgb+fQhiiIa8QhjaxbZjDLPOD7YxzrrQcb1dXr9Id1ej8Fog9H6Bk4oagdFbQLzrKnyhcimbXGlzfvb + mR3AsnNmhc8Az6QKOIEzhmp+SDF9wKyakgxvkA6ucu3aq1x79TPI6D+lLiaUZ99mdvJtstMHVNPHiGSE + kpqyKCnjDhcvbXGlm7D36BF15UVWjalJ0xQlJbUx1JWhLA3JZseH+kqhpE9hKhsIOEHfUEsJStGy86zF + BCUkIQRRHPtr7BxFnlMF+fcoiqitpawqEF4D8o033qKq/cBYZ/0A2bSTkMZJm3IssgXoLrW1oRs7THS2 + SzKQc3jjd/6aWOswRfHDdf7k7/z8n39nfzAYnmWl/PkHD/d/9c/+DzfvKueccVaoNLYCz+5kmVCs3Kkf + 3vViQUBEKXBPXMgDm375JXtraTTL4OA57EUsu72Nc9jakFU1s0XO4dMTtFTEcUQU+c6+QbdLb+syn7ny + EmuDHhLIshnT6YSz0zMODg84PDjibDxmkc3Ji4Iiz1ksFjgHWkm0jgIpSLBwGdl85kuaShFFMTqO6Hb7 + pN0OX/rSl9DdEadPD9sBJiKIYTqCUm+o4TcJALiWRNSi2k3VAEErGEiTLdWU+Zzp2QHR+Slp8h10Z0jc + GaHSC8SDV+jufIH+1Z/FVmPy8XepTr7O2f43qRZHlLoiz1KM7TObL0Ld30dftfGDUID2nOu6Jo7jdviJ + qb2x1uUUsKTRGlImKCUxxlDbpVoQUhIJQVEUy6jBObRSOCAvCpSURNrLjuko8j+HlKAdjGItZVkiBPT7 + PYo8I+l3l5EFXsLc9zbUy3IpFtM4ZeHIFhlnZ8cDa+1gOh0zy+afjZ2t/9f/8q1H2cL85np/8PTBcfWX + /vxfv/OoNtnqRJIPvfHDi8YAPNRftCKdPBMo+//dUhBkuQKI1LLsXBsoCOFZeIRowoXdpKxrsmzB2fgc + 8Ah1FGlirUnThEG/x+aVG1y98TqdxDuMqvChrB8RNmGxWDCdTVlkC7JsQV2VTOczr1jTyIEDUinfPITj + xrUrlCKhaX9FwCLPsWbZcBOifH+uIgy+kX6KjgvPNeUsf95NOmARSqGiPtoUaJ1Q17AQFbI6YTE5IUn3 + yI6/iU7XifpXifuvkgxu0L3wRUZvzIi2/i8w56RyzPz0MUWx8PMWrfOTk7RqKdfGGMqioK4qT6ipKpwQ + 9Po98tkpowtvortbTI4+YD47R0exjx7quj3XKs+pQiQgpSRNEqy1/jOxll63SxTHfqc3hqosqYE4TcGY + Vk/RWksUeXAwihrKpl0CjSF89MByI3ziMLX1uI11VGWN0BIhLHmesVjkrK2t8fY7H9eDQf+Vhw/uvfLo + 8SPWu+LP/PyffYXR+pW/UVblXxr1O0++9B//7cPfQ1N4YevFNgP57Uv4dpfao8dOYgnilKbGg2nNhvds + 6TXwZJ41EpowW7QRxLJbTbY7rHEOU5TkRcEkm3N4ctrelIlWxHHio4Y49nMFe+vsbF3ikpREWiIF1LVB + CEc37bShbVUb8qLAOUtV1YwXNQdPny5BQicoihJja3zaQxviEyIB6WeKEyZdtMBYQ9tdLoFwFlcvluQh + KTC19VwCrcjy0uMniyeoyR4q/hZRMkQlGyTD17j0xs8g422cq1hf7FOav8je4/tYV1AsFiysJe12W8qu + CaG+td75aCkpFnOuf+o/YnTjPwDg8T/5c9y+9dt0+1t0u10i7aOv5tpEoWrQaBOUZUm302kdtrM2lHb9 + 7zkhKBaL9qy11m3EuDbs88u//i6Pds954411XwVoupqNCSVd53kT1jdT+eN32Npy7+GcN+Mu1lhGa2v8 + 2Je/zIVLl3h6dIS1giKvGA767B8+oTTln0qS5E9Fao1f/t//6N/X0jyJ4s2//Lk/8dd/6/fUMP41rhcc + ATiURE7Gp3z91k2cc+xcuMhwtMZwOELqCJT0Ov8sY4RntONZlpNWgfNWYEQ8qyzT1O8bqXofeoeW1FDj + L6p6RULc/81GllwGnbvmjyuhAoDXOB2xchwNBG2RiEDica3kVyPCgWw64ghZjWB5gp7005xno8Tbfg7W + Utfn1HXunUYoxfmZABYRWqxBYI2gzheUizlaH7A4/YDo6GtE6Taqc4Vk9Aqv/fhf4DUnGD/8BZ4+uUs5 + +S7l4pzSSGxt/TxCa1CBYjyfjplmJW9f+TQA1eE/4PDxt3Eipj8ccnrylOFgGEqyogUCTTBgKSXDtTWc + tSxCy2/zeOMcFnmOMYY0SVrOAUBVVZR1yXxW8lvfybhyNQ8pk8BYD/jVde3L9k4gZNN+ZDGm5MlRxp3d + gh94R1NbxWQy5ejwiEjHHB4ccnZ6woWLO/R6I75z8xHb21tsrK2zubPNzqXrPx1HmrPjox3gD/8emMML + WS/WAdSVNYJJ0hsgcPyTX/0VkjRB6yiIdG6yfeEi2zsXGAxGDEdrELjrTczctOW0ctTBPFpJqucytaZF + 1a28Rqw8HrZhGh59s7PjlsKX/o38z8bVK+/jb9yW1OO8HoFr5MFCmXAp+eXa93FieezAskNwJb1pR2s1 + Psb6x8rCcj4+oypyoij2I9KjCB1FvkPReifQIPFNG7KxFfVkn3y6j+A9ks4QmWySDq4zuPBZ1m78NJQT + isWE7PA3OHnyHllekHZjtBYsigUIxeT8hL/7l/8Yb739CY6e3OfR3lPW1rY4fPKEbLFgOBh6LMCYMIkY + 4sAY1Fp79iG0xp/nOQIfwTjn6KQpQgjmWeZHkwVnUtU1eV7xI194nV9/d59f+/oZ1y9qFoXB1CXOlvgW + qZq6tlQGskXG8eExdx+e8t6dBZ//9EUuXLzA+WRBlhX8w3/4K1y7coXKGPJiwbCXcOvmHT7+zkf45Cc+ + xbXX3kbHPY737vD47m0W+aIdT/ZhXC90LtpnPvfDFrg+GAx/7iOvv8Ebb72Fc46z01PmQaHn8aMHfPe9 + b/Od977J7Vvvc/b0kCrPSCKJw6CFIEqSFiyzbUWhAdl8B9szDTYrtJzm++dRhmZ9T7ffirRXSwNuog9o + abC4JWgGkM3nnDw9YrFYMBwM+OxnfoCyLJFa0xv0W8nuFuJsCEYNUUiE5wRtPCRwpEmHK1ffojdYw5Qz + L15iHGVVUZVZQMEbHTy/+y5LjwodpQipPepvC+r8jGL6iMXJt8hPvoUpM7TSdC98gc1Xf5KdCzfYuPJR + uoMt4sgRaYiU4tHjPb773fd58PCA2TxjMjmnrmu2treJI+2nLyuNDLu71hHO2WVOvwLyCSEo68r/LARF + WXrOQHAQAu8swPf2x0nKFz99mbOzGfcejzk9KyjLDFGNOT895Lu37vLue0+ZTxdkixn3Hp0yXzh++osX + +dTHXqKoFGDpdvvEETx+csjDvXOcs6ytD/jhH/4in/+Rn+DCtY9x9PSEr/7K3+brX/s1prMZcZJ862/+ + woP/51/SFF7YeqERgFLKSSmpakNpYH3rCj/9h67y+T/wI9z54DY33/+2Z+4pL1Q5Pjnl9OSUb/3217HG + EHdSXn39Da5evUacpAyGa4w2tzBWUAsBSmONac3Fr8YJrMK5S5luVl7b8PZFiCyaCbneCJeil63xt78Z + 3t0L09GIkiCa91m6Gxd48T5vda3Ypk9OGowjCF22qU/oK3ACayvqbJd6scfGxoDN7RG1G1BkU6bTMXl2 + hq1nKCmQShDFqa9UhDy8rmqUVqSdLqYOdfO6QtbnmHJOPTtgJgUy7pF0r9DZeAc1/DisRwyuOqrpB1zI + T3jzU084OfiAs9MzmgAtbghC+MnJZZWHdMxSVQWuLhFSYa0kLwqkUCFSEUglUW364s89jiLyoqC2Lsh8 + eyJSnhdMphk/99Nv8SOfvcjD/ZKjg6ccHE04ODjGGsNPfflj3HjtLdZHCbPT26TinPNJzr2HB1y6dNET + vbqS0aDLjZevsb6+wc6VG2xduIGOu+w+usu3fumvces77zLLDEmqiTu99vg+rOuFKwL5MN3/K+uKPLck + 6Rqf/qEv8MlPfYqDw0M++O53uHf7A+bzmUefjfGhrLF88J33ufnet8E6OoM+Ozs79Hsjdi751EElCZ3e + EBV3qKxFa43B57EeI8Cj+MtNvDk6Wl5+EwU0gQO0xr/qCLygSOgIFEsKw9ItLLsD3QqIIZwn9jSMQdn8 + Tes8zz+MBWsU/gjkKCECJiEDq/F8F2RCHI/p9bYYbn2aqjhlNptRLqbk0yOq2mHKM4oiotvpo7TG4jBB + ZMVLpXvAzjgvgEplEOUZVXZOdvZdoqiD6l8j7lwlWnub3s4XKQ5+ibX8iJ2dC6h4hA2gmxAar7zlqKuF + l1QvC+qiojILbDmnKhZU5RxrapyrcdZRWYeparJFhhQSqWLyxYzaGqIoRlC3E6KquibLMr779JgkSelF + Uz7x0R02N9/h+PgxL73xY3z0p/6C/+yyv8s3/u5f4fbdit39U6J4xpXLF4iSmE6sGG5c4NL1T7C2fY26 + zNm9/x3e/9avcvfWTSbTGZXRnnuAQkn1TPPXh3G98CpAgyivMGJZlHngo2t2Ll7j1VffoCoz7t29w/17 + 93h4/y6LLCNfLKiq0l8IJagWOY8fPMBZx3vf9P3tvf6A7YuXuHj5MoPBgP5wjc5w3Q/8SFJfbRC08wEc + LtThVnbpldz8mZ3frb5sGcK3Bi/E9/x+eCnPtAvLoPMfgEEhZHtcPgJxwTGAw2v+L4/D4fBNMMgU8GO+ + i/kJMj9HSM1odAF6EeVwSFlXGKOpypxFdoSzE5SokLqL0hFxnAC+QxNAyggnvWCIZ9o5jM2I6tuUk1sk + 80eQf5LD27/Awd4jyroOzVd94ighShKiOA4svg5RmiKTLfrdiCgO8K5IEFEfaytcXXjwrphRlxlFmeOq + GWU+Iy9yL3RqC/JsinMlNmgzpokizzV1Zdg/POfkLAPV4exsyk5ZA3egOOLxP/1FdvdOeOedt7n38Axc + xvbmkNHmJTYvvcVg4zp5UXDzW1/j1rd/jYf3bzGZFtROIkQaSo6O2gkkqo2kPqzrRTsA55yrl+KTIVcV + EistVVVycpZzOp4xGvR5+xOf4Qd+8LNMxmP2nuxy++Z3eHj/HotFTr5YsMgycL4OryNPUa2qit2HD3h4 + 766nhFrH+uYGl69cY7S+QX8wZPvCJbpraz501R48a0JuG6KTBl98vhtw5Ww85rCSXKxWKvwvNRo0AZfA + BdXdpkmmqUr435NtWuIBRQ8U2vZ9Pd2hxpbnWJP7iEBJomQrsN5ypBCU8zEEBL6jwKHQmy9TVS9T56dk + 8ynlbJfJeI9Op0+3PyBKUrSOMcZSlRXOCYwxSCExod9eKQk2x5g52WSfvb19Ztnc92sEleZYaz/3VAg/ + d0GGRq0oodNJSdIhSW+NKOqjIk0n7ZB0O0iZ0B1eZ9BZ9+fqCnAGpSOcizG2oszPMcU5xsLxo29zeHCP + oiiZTM9JEk2/H1NXm/zmL/8fvPf1v8/G+honx8fUxlKZgiI/4zOf+RTvfO6PIPWI6eSU7/z2L3HrO19j + 9+5txlkJToPwqYxWPrqralDKUdUFWTbnw7xeqAPwRA4K5wjtoCtIPN4AfZOIYL5YMH04J44jRoMBb775 + Dp/+gR8iW8w4Pj7i0cMHfPDd73B6csJ8NmOR5+RZRl3XAXTSSBGFCcM5t2/dxDnPChuMRvT7fda3NtnZ + uczm1jYyjukP19GdDsY6z3xzwAoJB1Yw+par68/NG+nSJbSlvZU6/lIUdLW+L1qN/ZYg5RVLfFWh/VkE + 4pBExR3ipE89P8SZmrrOEVIhdAS6iytmCJ34gSUiQlhDNXuElJo0SYm7l7Abm5SmS3F+n+nJfQxj0kiQ + dgeoqOv7/i1IJRGhp7+uKuq6JBUSlQyxeAdrcWSLwiP6oeznGZ6NroDE1+WbtCpIhGu/o2oVo1VE2h0Q + xR2ipEMnSUjShDgdECdr6M4anW6fOE4Y9vvoa9cZDiWmdgz7ffprW9x48/NILN/82q/wq1/5h+w9PuaN + t27QSXpIrfjxH/th3vnkZ5lM5rz/zX/E3sP3OT54wizLscanQrKp4LQgMzhrGI/nrA37jEajf0XW8a9n + vVgQMIRPqzmxJ3g8O+gTQmNNQLFPTsecnJ4htWbQ67K1dZkbr77Oj375p8jzBbuPHvD06TEP793jye4u + s/nMM/myIM+tFLHWXn04TACaTM4Zn5/7QaIONjY3Wd/YYGNjk6TTZWNrh7jbQ8cJSafnDUL6Xc4Y6/Nz + tywmggfpQmF/WR1on1safFsxcMvIoQUam+pAW2loSom+jl7lZxwf/RoIhRaG7mCAEClOpjiT4+rc58r1 + DFtLVDKCuI8U67jqHFvXSGWQEpTMGVz9FJvXv0Axu0s2GVNMDyjG95Cqy3Btk6STUNc11PhJxgGDUCLy + 4GJUL8t7gc3nUxpDM9Vo2fpt21kQVVWt1P/nYcZjjZbL9ExriVZRiPAikrhLnESkSZe0kyCVppPEJGmC + wjA+uEnc6XDlykV+/Me/RJlnXLzyEoPNiwgU8/Eh3/7m13n44AEnp4cssoLagJQxUnttSCmhtmBqHwGN + zzOE0PzQD36aj7316vPJ3YduvfB2YEGQug5192aOjd81mlBXtDurRCC1RAj/mvPJhKdnZwghSTsdRqMB + F6+/ykc/8QOIH4d8Medw/wlPHj9m/8kex0dHnJw8ZTadUZQFVeVr0Ena9dTXKPITh5zj6fExB/sHpJ0O + WmuGwwFp2qE/GLC2sUnaGxB1eqgoJul0iKIYGwZZ+nQ+NKGEmYdLUDFM0nHOqxEJWmJSG/+HJaTXDmg2 + odaJhPmATkii7g467fHkzm9QPTlkOBoyHKyTpjEy0iB7OJsGFpxE1gaEBRQOiylzRORz/2r+GKQmjjp0 + Ll9Gyk+Rl4Zieo/x/nucnz0lThRRNKTbi9E6DbTlom0MiqKopf/GcUxd10HmXXpdQQR1bQOI6T+PhinY + 9AfEcUJVKYTwHZZ1XVMsSoSqCCEYjqeBrqxJ0hSlonbeYxxHSKnQ4Zo2TV1Z/gFrJ0ekaYe7d2+zu/uE + ssyxxiFlRKIEBuul2qz/ZyrHyekUqRJef+M13v7oDWxdc3o2bjsRP6zrhWsCNrs+dY3TEq0VQsgg3ugN + xLqgjtP6gQZtl2gtkcrz1edZxng64f7uHkoput0OF7c22Ny5zEuvvkknjZhOJozPzsjmUw7399nbfczZ + 6Smz2ZTxeEyee0adkIoojkm7UeuEZrM583nG0dER0aNHfrJQFDFaW2dtfYO00yVKu/SHI3SaglQopTF2 + ZfdfLSUEDoFn1XkH0UQSTdrQlCJZDQBovvFaAy4/J9IZF668isCRzTNOT08oyymdtMfG9g7d/jZVWWKK + GXr4kp+ZUdc4KqSKsMUcqbSPOKxvoLG5d6zKWYZbr7Jx5Uco53cZP91jcXqTp08eMNqGweWfJOlewtTv + tXX9pp6/qlrsnEXryNfuY+X/RkOoMmZJusI7gqYFXEReFNbVNQba9EMKiQqNWUVREkVeFVoIwWKhfFSj + IrSWQQEIer0uMoiEGOMwdYWpDVEUIaXvNtQIytJjLSfjAmcMb7zxOm+99TJSWA4PDkiShM3NTbR6oVSa + f+n1Qh3A//Tf/df2T/8Xfy5HYMYnT9TdO7dZ29xmbX2Tfn9IlKR+Np9Qrbotziu6tOTgZkcNg0O1ktT4 + 1s3ZfM4H0yniwSOU0nTShEGvx8baiPWLV9m5dI1P/OBnUVIym55zPj4jm80oFhln4zHHh4dMZzMvRlKW + 1FVNUQaxjBDK5kVBtr/P493HCAe9rpcdi5MEoRQf/dg7vP6xd5jPpssyHi70rdilSIajVQheFhWfTSPC + w8DSj/hKSkFeWMbH+yRJSpSOiNYGCHUJW2U82d1FyH2Goz6D0WVsfgZmgpVdVDTEVnOE1KBjhHUIGSFk + 7B2uiEBqqmJCuThAR9tcePkLmGsfp8jBLB4xO/h1Tg7uMp3Omc0WCCnQ0lOSveahDABgo9rjufi1Cc5C + SOraUtc5Wsdt+rDsEg1popTYqsI516LvArDOIIVqNwSlFHVd46GHCmNEyy8QwguYJElCHMdEceLZidLz + /q21FLVjPi8oS8nrr13lnbffCuPozyjLkjRN24ji2fkTH771wmsYAhZSyqJytnv71k3GZ7/B5vYWm5vb + 9Pp9BqN11tY3Wd/cYrS2gdSaSGicA2O8YIW1ZjlIEo+RKSX9aOgwBtw6KPKSLMs5PDoC/I3QSRP6vQ5p + kjAYbLCxc4U0jjDWQGg5rcJ4sGKxYDqdhKEhJWVoac3znDqM/jJVRRnGiGXzOcNeyitXL3Hzzv0l6BeO + 1LkAKuFDfeH8Y80kHa8e7BAWbDMvzwaOgAcGEEhfwpMSJxROaqpyQllWWHuOVpKrL72GUIrp+Jyzk0OE + 9TMMh2s7SBkHg1d4sW0dbupQlsR4KTKlca5HlR9iijEyGRJFKZ3tTxN1L3ClnKAjxWxekJewWJyxmE09 + i68yZNmc2axASoMOFF+Bj960Vt6BR7HX7KuCwrHz8yLryuDKKjh/i1ICoTQNOzOSGuRSlmy1vBzHMc0k + oro2bYehb+92RHFMVhbUZY11lkVRU9eS1157jbc/+irWOg6PjkKEEaG1l4eDkKb+uwjgX25Za0VdGzZ2 + rvIH//Af5YPvvs+jhw94/9vfagU3hsMha+vr9AdDeoMh11+6wWC0ThKn9IYjrBMUVUlZW5z1kk1NSdGX + 7zzDTmqFRgGaRuQjW2TMsnlA1H3DjpKKKLQJdzspSRwTxz0Ggw02r7zkW3Zr027KeZ5jatNiFVJJBIKy + rEjShLuPD/zgULHKESCE9m1hECeaYw6qugHpd1K0AGHTUNQsXwosQWqMqcnzBd20S6cbIxBUdcnR3gO6 + gy5JZ0Ca9hDRZZwpmE3OcGJKnPbRcZckMUiVIqIOKhrgTImtZyA1zkZIlaB0ihBdsBaTZ1j7GIQl6Www + HPSIOz1inSLcBYq6QIkIFfnyp4q2GZ8+Ynp+ymKxYLHImE4XTKYldV36EBxHVZZgoTK0GIGzJWXpEaIk + TTBlhbOOKI5QUiOF9aVKL/vjqz6h9wGElzDDRyVR5Ee+Oecoipw8z4PGo+bK1Su8+fqraCU4Oj5hPp95 + LEHrZ0hojfpxWVX8a1j/omyj3zU8eeEOwDknrbHKWNi58hLbF6/y1skhj+7d5d7dO+w9fsTx0SGnJyeA + Q8cR927fotftESUJ1156mf5gjbWNDYbrm2gpkTqiMEH1xYWCXdCIa2W1WZkAxNJRePDOUJSGRZFzOh63 + Y6SbGyHSKtSFdWvsyxTfly39+wnqswlVVVOUJRL5PUNJVimIIpB8LK4dBPI9mgECcLLtDMRZyjxDRx3S + JMUFfoKzDqQH06RUfpzazAt2wKmXUetfIJKGbFFSLR5TqB467pB0e6i0RgmBUBFCeBKPNX50unM5mBqh + hgjVQYiEKjtkMjlnPiuoA4eiadpx1npDVefEkWZ7cwsde8BOSa8slOdz8i4WAnQAACAASURBVLz0lY0q + Z5Y5ZllNkZ2SL2bkiwVZkZHNa/LCgatAQl3n5CJHRxFaaoSWaECFHoqq8mCkp+w2eEQYmGIt1SInintc + vLjD5cuX6XYSDo98z0ajKA2EsfHLhqWqqsjznDiIpfwerH8VlMLn3/N7HMILdwDGGGudtdZY5tmCSEds + 7lxle/sSb3z0YzzZfciDe/d4cP8+08kEWxtOjo956g6x1rL78AFJmjIcDukPBsSdHjuXrzAYrjEYrdEf + rfv0QCjfc1AVbf15ydzzqwkVG4qpeu55h8carPFgU1lU7Qiy5pUy0EObgqBS2of3Idd3Kx7AORdajD3S + 36x2rGeb/jdgYPAAgZDk6QEKKztM5zBf5GjpMCYiihIQvndea43SGmctSZpQlxVVVTE9vUecdIjTESru + g95E2owin8N8StIbIZMdMMeewJPuIJNtbDGlsnN0LDxTUICQMTqOiRKBDuF3q/IEVFVNVdUs8qJV7WnE + VK0zaKWpjSWJYuIkYWMUs7UhsLYPLS1aoHRKbRyL+YR5NqcsMqq6YpIBpqYu5yBqQLWahrWpcXWJdYZO + 2qHIp+RxjNYR12+8zLWrL6MUPD054eTk2F/7YOhKKd+KnKY07clVVdHppIBg0I3+RW7772fszz/2z+MQ + fqed/vnHxfOPv3AHIIQ4ddYcgntZinDRaovUirS/wZtvb/HWxz7B6ckRDx884PYHH/Dw3t0WUa6qkqoq + mZyf46xF6Yju7VukSUqSpvSHIy5dvcra5g6DtXWGoxE66bIofIeZddYPxrV1I+rT7rjP8vwIO70MxBXx + zLDdVqxTeKJM88tShQA/pBfPXpKG9iRaYlGTGyy5JyH0D63APkIIqYQUSB2xefkjSD1A7L3LYjamMoaq + mlBVhjhSdLt9orTToudKa89NkD73LhYTQKDlLiru+Pw+tlhjMNkBzpTgKsr8DB2v+dfIDlJ4EMO5Gucq + CHr74boGvT6vq1hVVSgHakQA+ZoQ3SP+khiP/s+zOdPZBNsYvfJ8A6ynd0dKoeKI4bCH1mvEUUTS6eFw + 1MXCA6cC6romrxRVlVFkU0xVIuMO3f4Fur2INzYvMJ+PeXr8lMVi8Ux475wLgqKuZYQusgwpoNuNKYqK + JM745s3ftRv4n8Wwm7DUsOzQ/Rd1AP8szqB1BC/cAVhnSlyUw1IFWIgwibaqyIWkkybsXL7B1euv8rnP + /zAPH97n0cOH3Ll9m/29x5iqRmlN7JmFZLMZ89msHQa/+/B+i/oO19bZunCJ9a0tLl29zqA/oLJgSYKA + hMHaOpD2bGj/baB3CBk6328gSNv117D1wqOu4TKsrga0dA0pSAQd0CXI1/QA4AJjjkZByK2MDrNU8yOi + ZEa/Y+l1dhAqpsxryjIjO3/K+HxOMj9DqhTXG5AkoavR+bRGKY2pDbUBU+SIco5VGnRCFPdApyihsS7C + FmfYco6Ujrrsko46KLeFs4baVa1h+3NbXlO1Apa5kNaUVYWslyF6E56niScblVW1fK9mcIgTZHmBW+Tt + ezapnQ6ajFHoQlRaM+go9GCE2xghhCNKevQ3XqUq9hnv73O0f4BxLuT04SqGa5MkMfN5xmIx97iBVhRl + ze7uCePJmLdurPHNW9/X3lYv9vcjCojv87pQ1/3nWs0+9Xyg6la+X/36/PfixTsAa4V1Tlrn9eOXTUEi + 3BiOxWJBZYz39EnMKx95m49/4gfIszkHh/vcunWLhw/uc/O99wDXtruq4MmbPgHnLEeHhzy8d5ckSUg7 + HaRUXH7pZV565VXiJKU/XCNNOyAVBklZlWFWXmOEy0+wDc2biiQr4h3PX5tA3vfAUUlZekJLI2DZUoUb + QBCHDZBh+5o2Gmjkw0O0EHVx1lEspihRotOIXrdHt5My2niLqrLMZzPmkyfMjp4QRzH9fp8o6eKg3anB + YozDWYXVClvmmConSRIqlGcYCoPQMYraT1Eqx3QuXKYyktn5FCtSVDD4RhJc4FmfTXnPWosMIF3DG2jX + ipR64xh8+XAZWWitsc56sFYp6sClaPCSuvZScjbPA+bjtRAQgk6npNPZoyrmZEWOiiJk+B0/m6KpIDim + 0wlKCdbXN5ieTzk8O+XkeMp0ltHrRsRpjzeu69/J2FeNfNVAFd/rAFbJIavre0L2555zPOsAmu/t93mN + eO4r8G9ACmCtE9YYZW2z+9N+bUJhKb1jrKqKqqqZC5jMIrppwrWXPsKrr71JrAV7e7s8ePCAd999lzu3 + P+B8PG4153UUedBO+pu9LEuvT+8c47NTbn/nPS9PNVpj8+JFNjY22b50iW5nQH+0hhOKovItqJ60gmcw + ymbH+H7ONpzDCl8B4UVLPPPMjxIXziGVCDX/cP4rjrABMJetxiEnDs9bp9Da19KdtMjaYuUCYyESkGpN + ur3OxuYGle0wPbnP+PQQxrtEWpB0N0i7HaI4RoigyVd6dNsz+RxQYuo5TkiUzLFKIqOSaONtZDRCpRuU + ZYaVylN9TVMV8X38vi7v78tGI1BrTZqmvjRXVWilkFpTFgVVXbckmwZpX6VTa9lUchxRSCOW91Roaw4s + PSGaEqunHxsjkFKjg5OqAsCntaYOrcVSCtbX15hO59y5+4j5bE62qJDCMRgkXpDGgdLPhHaOpYG3dZ7w + mOR7Df55w/+dwn638nzzvV15zj33vXjuNZLf4QZ94Q7A1HVloyhvDN9HvcvPyt/4zRTcJSpelCVlWXI+ + naFjT+wYbl7kS6+9wR/8mT/EfD7lg1u3uHvnHvfv3+f+vTtMx+NWMy9KEvq9HjqOg2iIAwuTyTnT2YTH + AfHv9vr0B0PWNre4dPkKWxcvYYUAHSO1Ji+rsOM09N4Q3a9chmaHb69ugw9Iz4Z71o17/rnnM3jj99Ri + QRskNPhD0AuQLgcTCDVhEIaQPT/9iCSIq06gromUZvviVXauvsZiUZLPZkyO32MyPqE/6NHt9UH66EhA + S8gxxtOIvaRX7TnzNqea38VM71JN9zFOUVclnU4XI0SgetMSd6IooqwqTF0zz7z6cJ5nAIFco71YZ9Bt + cFHknYL0f7eRVZcNkh/YhibMc9Sh8SiKohbIhWDYZYl1FmEdMu5h80bzsblgMJ/PEUKxtrZBUcy5ffse + B0cTf2Wc55ZE2jthE/AIY54J2yOWDmA1GmgcwPdzEKt3y/POZPVrgxH8biH/qnT56vPfT7nk3wAMwNrz + qjb3gI8tQa8Q8Da7ZvDecuWiNjeBsZaiKMmLktPJhId7h6Rpwub6Gq9+9JN87otfoi5yxmenHB4ec/Pm + TR4+uM/u7mOO9vep65pev+8nzMS65ZY3Lbu1MYzPTplMxjy4cxtnaza2d7h46QrrW1uknS7DtQ2QmtJY + LDLQee1KyW95PRryipCgkDhUAx8G4G9Fi0DQpgFtJtG8n2NFFEQhpRcO6fRSAL+LFgvSvvKiqUUOCLSQ + mGqKqKYkMqKznrJ+6d8DU/F0/33OTo9x+R06vXVGGxeJk4iyqJGyyeObENunKcX0Icn0Lvn8kNmsZHz+ + FFPXngnZ4hzLe1Rpb9TdbgcpJWsbG/S6XaqibJmBZVkGKrgHIpVSlGXpNwjrQDiU8j0bnU6ClJrhYNDO + Kairyo8ra2TDAhYknGeTmmqKECY4NsN8OkVHEevr65Rlwd07Nzk6GmOspZMoP3I9pKNV5UJUWvP0+Cmz + bLBq6AnP7vSKpfH/ThHA8+v75e+rDmLVoFedQvO9fO75lbvnuZvx3wQMQGltpJS1sw4V62Ds4cmApTWO + YbWDrtkNm/C7uceMs0xnGePplHuPBUkc0+12WR+N2Ll6g1def4ON4YD5fMbu3h6PHz3m5q1bPHrwgCyb + +yEg2ZwoSvworThBhkGZMpEIISnynLu3b2K/a+n2uvT6QwaDAetbm/SHayTdPnGnRx1q+UXQ0YdgDEu/ + 1qCAbQXCt0esIAkBDGxyWds6Bx8V1WXByf4Dkk4HhKAyFUoookiRpCOKMkMAUTLAmop8MSWKKlQyRAiN + FTHm/DZSws6l17l4/R1ms4z56S7HB9/AETMYDFA6CTuuj9D8iO/QvYen3Vb1EulvdmdoUrcSKaXvn3cw + HsvAT2h+RxHHKXEc0QmNVUknDTiBack7aZKAEBRVBcH5G5Nzfn7ednpGAW+I45gkNAW5ZjiJtX5rlv46 + ZlnGlevXWSwW3L93l6NDX15OEwlCUdcOKwjVAO9MJtOcOEr4sS++zcFYqPXhQ3U2KRSQsjT2xuBXHUCz + 5MrX1VBe4Pssv9+OvmrEwTp+14jh+yKUq+uFOwBrrRDCCeqM04NjkrTHYLROlKRUVR14/8+20nqD9+fn + Q0zaun5onUc6/xmXVUVxfs75ZMoDEYaBRBGDbpcLm+v80Bde5ss/8RNESjCZTLl7/z5P9p5wdHjI2dkp + hwcHLDJPnRXGex2pvLhF1IlxwGw2YTab8OTJLlpr+oMBw9GItNNltLHJK6+9ycO6XJ5DuDTeiflQUuCd + 11IEJLxUAHIp7b1skW7eS5H21hGu4PDomDjpEEWStNMDFkjlB21WxQwdd9FRhHU1VFMQCq0HyMFVTLWg + nO8DjrR3md7V61y4/jZZdsrTvVtMz/fRqqbbWUfHEUp5Mg0iRugRUbpOr5NQVYai8LXyKPJDQn1N3c9e + 9CIjVTuzrwEgq6oiy+ZMpzVlVeKMb97RkR/qapxFOudVi4I8uO/QHNLr9dnc2iKKNHlW4GXUgphoZZEK + cMZHBnFCXc+ZnC9I0x6XLl7gg1s3OTo6wjpIOwmm9pGEcA6hoC789VgsDPNFzUff/Ag/+IMf5aWrIx7+ + o1uqrk0fb+hdnk0B5MrPXnl0eQc0O/RqBmjxaYTl2Z292d2XBvDsV1be4/9vfU/E8cIdQFXVJHHM+OyE + f/D3/h7GVFy5ep1LV6+xub3NxYtXUTrGC/vKwJ/359qW41Zz4wYpb56Dtk0VIairmrqqmWVz9o6OcM6R + xjHDQZ9hr8fG9mVeee0tumlEbWqy+QxT1ZyenXF0dMTp6Snn52OKvPD9AGVBWVaByup3msn5mLPTE8qy + ZDAc8cd/7o/gcHz9n4ajCwbu7bjRCVwqDoeH/Tm4xsHJNnpoUiEBOOFw1YTucMDOhctYISkWNePJmIgZ + ab9LGscILTD5HCslWkpUlILUFPMHQETS3YF0y0/kzfYxMsbZfZLeZT7yiT9MbQqm4yPOn7zLZHyCjgRp + qtDJ/0fem/1Yll1nfr+995nuGHNERs5DVVaxWJyLIimKLUpqC3IbMrr7pWG/GP1gqP8Awwb8LxgQDD8Z + 0EPLaLXE7tbg1oSmWi0aBilKpMhizWNWVmVWZsx3vveMe28/7HPOPXEzk6S6JbAk78BF3CnuEOestdf6 + 1re+1QG7wOhFKZZRknxMQZalVC3By3QAjJGEYYDWbn6f7/uEYURRuEaflnFCLQhXy5dCQMnZyLOMtExn + jDE8+PBBjVOEUUgURbTbLbrdLq1Wp24T9jxBIDKe+an/Ab93neKl/5N7p+/z/e99m2ojCYMAXeI5SgmS + RLNIDbYwJFpx/eoFPvn8s0S+5uHBAZFKSXMdWuiXJ1+XRyOAptFVO35l7Lpx0hacD+mbz2s6hNXHmoa/ + env1enMJPhoYgNZFUcT7+/t86We+wve++x3uvf8+9z94H2MM7W6X7d0dbt26zd7+RbrdNaJ2F122Axcl + 3bdOAyrfCtUWu9x5XRG9dM/S9XGUINLp2YijkzOEKNlzvofv+fQ6bfqdDu12j+tPb/Fs6BOEEe3Ac+Fr + nhOnCVmaliFtwWw6RWt3Ynd6PaQfMJ5MOR+dsfxMFqphoC4aEGWOvwQQsUuGoq0miFacAwl5njEcniCV + j6ckW1uX8IOA2WTAaBLjq3ndxZbmBaHV+N0uMtqjWBySze8j/TVQLUfvlW2EbKOTEdPsRbxwl976Jv2t + f4zROcPD15iPDsmTGUU8IE0yRpMx87mjx3rKkY2sddx+UUYxlcqRteB5ijw3ZQrg10NDhBAUeYa1znlk + WVqLiyglEEaU/AVFEIhyjJksqxgQxwnz+cKNATcG31MIqcBoMvFr3Lh1i+HJQw4P7hEELXSeoqUlS5Pa + 2eqiIE0LTCHZ2t7jhReeo9MKODw84sF0RrfrqOham0AXul+edR3cptrM1+FRA10Nz03jMV1enuQAmkb+ + wwy++X40Hj93/SfuAMIw1EKoRZLDc5/8LDeeepo3Xn2FN19/jdlkTBIvuH/3fT648x5FkbO1u8PlK9fY + 2Nhm98IF1tY3aXX6aKGc9y5D62rA6ONYGO4IlMegxBGUJ/FKPT5wctlZmjOfzzmwxw2EXqI8hSc991u5 + 6CLwPCxujLmSCisEeq4x8xFv3P82o7Mzx0+H+vSoPqcpy4lu5ucS6MQu9YWqyMFVExxUWJGIKpqsFIoi + S8kRLBbvEfiK3sYl2u2Oq5rkKUkWI7AUeU5oDwk7F/E6+5jkGJ0NkF4X4fWBogxDAhc+J6dk8Rm2WBC0 + ttnYe5qtS8+TpwXSFvi+Ynd7l1M5pCgEukixpnBJrdEYI7E2I88yLC4Vc/qGLjLOsqyUbXPArvAU0ro+ + As/zUVK5Mqd149h02QXqeaqsGlSMQlG3Crvqg081V8FYePjBG9hsxNb2LmHYBs6QXojROUI4kdI0yzBa + sLm7w1M3r3Nhe52T0ZjDg4eAK40abZykupK+FLLr0Bva5eFqlt0q4zUr91XbVMbS6JvGv3qxjb9p4gbN + 131cGmCfcD/wEXAArllFiqLIGU8TWlGXL33l5/nUZ1/g1Zdf5PWXX2Yxm7qpMkoxG094ffCSc5V5zube + Lts7e1y6fIUL+xdZ29ojN5bAC9BYJypSxtSSpkFVqYK7RXmrvi0EnpLnnmehBreM0RRpQVoDkLZWF64i + DolAKIWknOvXxDHqQ1apBVGLZ57fIJatwVX+b4QrEQoBVkik8NAatM4dyl4SboqiYDo8QCnPcf7DCC/q + k84m5HmKni1IFvddtNPq4fstpNAIkWNLAFsoD2EDhBJIA9aL0EWMHr2FUBHh+ifx2/tcuHaPVqQoCg/p + t5nPBsTzKWmWk+mCeGFJkyFWa1cCLDKyXGKKqq26AGsotCNA+UqWWA7uvcuqkJAKpQRK+U68GSc9LqUE + 6cqgAuGA20prQUqMycEK/LCN9ELSNEMpSbfbI0lijMlJtVNs2Nzc5crVS2xurrNYxHx4cExRFLXSUaV2 + 5I6VDYSkiwvhW5zftZulNwPkLB1CXv5NwXknUfCo4duV12ui/fyQ34+cbSv3/+QdwJL+6xpt0iwjH2m6 + nR7/4Kv/FZ994ad4643XeP2VlxkOBmRpCmhnoJ7HdDRmMhzxzptvYExBr7vG0899jOvXbxK2u7R6a4Tt + Lnk5J88K6h22arGFR+HU846hGTWUubmwDWNtvEZZn66AiapcWf2ce7JdvmZd4iudiSsJujulWM4ScB9Z + lpUC18Mwm50hpCBNCxcSa430XIjsdnGJ1gXZfAKTAcoPaEcd8NvYIkObFD3VZMogpIfvJ0TdfYS0SGGx + RmMKgVAWrIcI10DnGDNH52NkvsZ8eJfDh4fMFhleoPCVY2O22222W21UEJDMt2onqq1Bm4A0npGmc+I0 + JUvmLGJBvJiTxnOMdcBgPMtLjYBSc0FrjMlRShFFAUHoRpX7ElTougslCuW5MqBjG7p/rrVuYEnV7BMn + CcPTM5Tvs727x8X9fTY21kmThKOjY2A5hcgYU+oNiJJMlpCkmTTGtnA7uQtrlkZbGXzGeYMvGo+tOoDH + 7fyru3iVKvwog3/cauahP3kMQGu9zIMpQ1kpmC/mzGZz+mtdvvjlr/LCT32J+/c+4PVXXuLBh/cZj0Yk + SQwV7dTzwPpkacJLf/Vd/urbf47vB9y8fZud7R3a3R67+xcJ2z2kHyI9Vx5CuhxyyVsvkXgeV6R19z6i + 83/u0cdUZ0Q5mqzi+ttl6mFK2qkUEi2W8xGgkgEvdYVLhyCrsefls6SnCFtrJIVksThjODwhClvs7F0o + eRKarCjwyglEUnokiwXxfEYQtvF8D+mFSDKsiPD9yHXY5UdImeFFG7Q660hjgBCtp1C4cqhUHlJFbnBH + GXl4/vLbZ2nqmHXzec3stNYSRZET3FSaViCJwj7rwk1cliqgKNwIctcpaChySZKnLCYTFrHj5k9nBVma + kRUL4rggyybkmaEAuq2IIFCEYeh4Aq6U4lihpT6AlJLpZMLw9JS9C/vcvHWTXhkNDAeDcx2AVQm3Al+N + yZnNYizrSCHKI1uHbZqlgVeGX12Kxu/mjt8EBYvGa63m+PyQ609ajwGe6vt/8jwArDXWkq0alZQSK2Ey + mTIez+j3ezz19Mf5xCc+xWg85LVXXuLN119ncHrCdDp1pbpyt3WjvQMslvfeeZt333gDIQRRu836xga7 + Fy6wtb3LxtYOUX+dsNUhCCO0tdgSNdDaYpZV93I1IgBWRnzZCphbeXoNQFIbfVWzdC3A5QPWTQeqlI2E + cBOCXH+/QwOFtU6Ft35PkMKju3WZrWidUGSkRhBPBhwdn+BJQacdoYLIwcuFRngeQRjiZBhdfV6IuZPs + UimFNydodfG8HKFCsnhMPD1ASY9Wb5egvYNUkiKP0UWCzafYYBPlRXihT1C4czcvqb9BSayqBDgqpR5t + LXnsKgdSuDp7U0ew6sjzfB9fWaKoRb8dOJBUSTwvKhmFrh1YFxna+CSJZT47JktjsixhPI5JsgKJQSmw + 1tBtS+J5RKvd5Utf/mn6vTWM0QyGgxqLqMhHFcsTLFlWkKYxUko2NtZIk5T5bGasC8cKnCPIgLT8XV0q + w28af+UAquuifKw6KeBREK96TKw878dZj93TfuIOQHrKSCkToOS6uxOoIvm4UdqWxWLBvSQh8H22Ntf4 + xV/6ZX725/4hBw8/5K03Xuftt95gcHrmhDtnU6oONE95iLIerYuCk6MjDg8O0GWn2c7eHlev32Bze5ve + xjabu3tYSg07z8MaSsdQpipWYMRyonDlrM83BtmVQ7N04kuATzjefe03yobgRhdhxWEv7b9G1avd1J13 + ljyd4ZNhbEo7bLN54wZXZJvh2SGjwYTp6SEon16351RshcSlzH6tcuOILgV5oSmmOQJL0OrQbrewrW2E + NeTJlCwZACFRb4ewvQmAsQlFEaPzgkqJqWr6SdK0buapEP4wDEvAzsPoAt1ouVVC1Jp+UkqM1mVfv65f + 11qL8lKwONlwT+G3enh+gJQK39tx6s5SYESLrNAk8zPSNHFAbHSRvb2LKH3E8eEBw9GQPM9rFmiFn1S0 + YmMMw+EQz/NY66+xiGPeeOMOF7d90lQhpcxBl7kpCecdQGX0lSNohvs555l7POZ6kyvwOMN/nBN4NHh9 + wvqJO4BKDdbVtSsjodSEK79biQ94nkIbzcPDYw6OTljv97hw4Qq3nrrNL/6jX+bD++9zfHjIKy/9gMHZ + GadnZ0zHY9IkqRV8PN8nKtFmC8ymU1568Xvkacr61jZb29t0O1129i+yvXsBL2rT6vad8o/yQDrqrksb + NJQtw+dBRaDhyOq7WCoHOSafXOb1jUYXW5cKzDLaaAzTqHZNIRy4KIuCXGoQkjzPsNMxvj+j3++ztb1F + XjzFZHzG0YM7nJye0GmFdHvrtLudUkI7AARa5wR+iCmbc+LFhCJPEXKMRNLqrhO2NsgLw+TsXYTx2bn2 + RfzuDZTfxaLJC0OrrMdXnX5Vh14VoaVpClD2B7jnLUqNvqrbT9VlQxcZ1CeqUs4p6Kp8WM4fMAa9cCo+ + URigVFkJMANU6BH4Ae0woNVus3nleTAp994+YTKbYoyLOHTpbKoIRErJZDohiRP2dneIk5g7733AwdEI + gWF3ve+cqWABzDkfAVQpQFHernb6ZmhfOQI4zwloriaQ+NfZ8ZvrcQ5BwEfAAbgT2oiKr21tY0qvqP4f + FYnE7bxB5ZXHU05HEwLfY319jd3dyzzzsU/whS//DIvZnHsf3OX+B+/z3p07HB0dMTobMpmO0YVjqamy + Tu/5PiAosoyjhw85MJa7d+7Q6rTZ3tl1TqHXp7uxRbu3Rhi18MMIaxVSeeRFUVJNbUPbfynjVYuBOFxw + +d0b2VldJCjFLCjD/+Whs2XUIEpMoJRGB1Bu1xSU5U9tifMUiOs23LVeyM5nvkSSZhwfHDEbH3B2eky7 + 22Vzc4vAd9z9whQIKco0QVOREbTVJPGIdD5GSku7fxFPSoLtz6DCTQYPXuX4ZEiSFFitkZ5XUnodNhCF + YW1YRVE4B5MkhGVqEJVzAfKiwG+0CsdJ4voByvt8z6Mod+hmpADUziDLC0Sl0QgIrcll7uTjraU3u4dA + Ya0b8FnJhltra9LSYrFgNpuxvr5Ot9vl7bff4cHDAQKXdlkr0EgC38+UFHNghnMA1e5vWBp+FfbDeeN/ + 3O7+X7pWX+eJxg8fAQegyy6uSqNNKlmPyK5EMR+3pJQE1XRYrTk6OeXB4THKk6yvrbGztcXHPvk5vvDT + X3E6+WfHPLj3gdMZfPCAw4cPmcznZHnOYu5y4KjdZn17C88L6nR+NBpycnxEEAa02116/S6dbp+19Q16 + 6xu0++sI5dFqd6EkAlkhnWNzM79Rwg3BcGF8BQQuuQgVZ8Gp/FAav1tLJ7iaVkA9IgyFUm7XE+X/RlKO + MLOWZJGQ5wVFmiC9iOs3LmPFdeJUc/LgDg8PB0S+JgxCOr01PD8gyxKk9FBK1Cq41liEEpi0IE7eI/Qt + Uv0evWv/Dd29Z+kPhvTWOkRhRJ6lTixVa8bjMcdpOTikjDiqfoFlFUjUijxAXXbzfb/u/EyShARqQc7K + YKvXaJZgKyey7BisIk2nihS0IlQ5U6JqUw6CgCRJiOOYTrvNxtWrfHjvHnfevcsi1WW3Iq4TUgmiIKDV + 8q1UIgZi3NFr7vxNsK+i/j6JDLQK9v24669jOpabwgAAIABJREFU8E1H89GIALC2EIixKkPreh4e1DhA + JdAgVb05IsQydK5OLKkcYnt8dsaDo2O8tz26nRZ7O7tc2N3i+c/u8/kvf4X5dMLZyTGjwRkffPABH967 + z3A4ZDgesVgsyNIca13+F7Uiur2+Y6lpzXg8YTQccfjwAe12Gz8M6fX6rG1s0e506ayt0+r0sZ4E6Xa9 + NEsxutLHq8ze1qKk1pxDAZZGb88dqzJCkNRSIWXlBKlLIosg8kMsbty3NhrlKVqdNuDIM1kyJ15MCIOQ + oOVz9dbHeOq5HsPBkNHJh8zGBxTGRVl+GCD9rsvZy9eTVhK0IpeamIJ4co/25D0Wx3d5cHjGcPAuFkG7 + 3abdbpdKTBE7u7tlS24lteWYfUma1m28eZ6TZa5nIooiosgNKJWSMqxX9U5dgYnNaLGpKpTX4J1zBpVc + uECivBaiVIauBUSsZZFleL7P3u42B8fHvPrqK0wmbmZCK1JoIyiKkktiCqazKXlqrRLChVs4VTOWhv+4 + El6zS+9xIf9fZz3J+Feh6PJEWS1PfQSqAEKIXAgx/bGeXNqEkqIkgTy6pJIE0sf3fLR1w0Ems7vcef8e + QRiw1u2w3u+xs7nNrQtXuPmxTyCMIY7nDE9PGI9GnJ6e8ODBQwZnp2R5znwRE89mTkDC8/ACDyEkcZIy + W8yZjMccPHxAGIT0+n3a3V75e412t8fehX0OS5WaCgOQStZ5v8CWgJetT9IqhbClMxC2agYCKragEJjC + MD45ZBH6ZHFKuy2Ium38wCdLlw1IYdSmyF2bbZZmzOOErCjwF3extqC9dpEbt58iM58lnh9xenCXNE6w + ZkorauH5Ek0JSGpbFr4EXtgHqZBBm8BTJRDnQurJZEqWDchzJwTa7nRQynO0Xd9H+QolFKbMtzvtNr21 + NUwJ+qVpymw2L3dvp/HfpAuvRhFBqe1QpQdhEDT0DJw95qagyOdQTgHSReEASaXY3NxkNpvx0ssvcXZ8 + hpUKP/BLh+JGhBXaEicZUkm2dq6wKbpWyger/H44b4yuDulWkyvQfJ7hUXLP40p38HgDr66vqhJVr9Ns + Pqof+4k7AGutMNgfc8BaWYe3lmrUlC3DZVP+rjZFqGYBVFRQ9/zBaMTpYMSdD+7jeYp2q02/26HX7bC2 + d4n9a08hcCeG1Tl5mjAcDBiNhkwnU0aTCbPZlOl0TpYmmHLApZt4A6PxmNOzUwLfJ8sybty4xS/9/D/g + u6+5z+6m4GjSOKXdaddhaWXs50qLmDIKECU+4u6vwUJAeCFSdYjafUaD9xgMz2i1umxs9JHKq40kzzI3 + SCUvaLVb9IOeG5RRFGBDktkJ48EBoa/oru1x+xM/R57MGY9PmI0OiedTPE9g0W4EuR/UCihGWHQ+J9eV + FJiPEwrVJWsvLI3QDfwEy3Sql/JgZQ5foe++77sIIIwIo5BWu+N2eF1greP8VziC1oUDP7OsntMnhKx3 + fM/z3GDZMh1SGITNELblnIKEbrdLHMe88tLLnA3OEIAfBjUYW2SWNC1IEoO2kt3dHT79yad44bM3+dZf + vCfyXHs4w67sqTK4JsK/6hxs4zmwbBSqbj9ui3uSsVf3Sx51GtXjq84A+AikAMZogVHysR/7CWtZCrPn + 7qvvEa6k2ETmq+m70nNGZoQLIaczNznY4qoMnufRbkV02y26nTZh4LO5f5X9608jjHYU4HIntTonTZ2+ + X5rGSCHIioLFbEahC+I44fLly0TtiDzX9WfJi4LReFo7AFc1XMqL2/o7iirfKdMdwFbCoC6Z0AisKAgD + y/b2JtpskMRzhsMxSkmidhtlQYWul16VAy5s6nAJPwhLZluAFClpUTCdHLOYHOKFPdbWLrN98aukiWFy + 9Bqz2RBTzMizGMjwZUXECpwiMuD4+mXfhK9QQlIUWb1TuwggrCspVThfyYIZ7chDk/G4nHBU2o1wI8ei + VkTUjlxJTyparZaby1hGFbZ0REZbcuv0BrQxKCy9rYuIYIv5dFSnAW+//RaHhweEYUC31yVPUxACKSyL + uGA2S7AiYHt3m1s3LnL54gZZVvDg/kMWi7nCCRpHuFbeZvhfUX4p7/c4D/6tMv0et+M/MX9nadirDqD5 + N6z8zbmU4yfuAAqtrVJGN/a0v7HXruGzapcVLnWoyo1SSpSD0Wu5qaLImUwyxuMpVU3eDQPxCDyPIPBL + TbsA3/NB+KgoJGp3XV3aWsK1baBE66XkL196i8Fo5Ay6LG9qU9Q7eQXmNZ3+8jHnBBwngJrKbIWoD6Ww + OZPBMadnAyeCEYZ0+31soSnylMIKKHLSOCaKWkSdNr4foAvHRlV+iBARXghRt4+2Emtck0+6GGGsTxD2 + 2br0MbZNxmI+YT49IZ4eo41HOnnAcDRhPBqwiFMHfCqv1BPMsZ5Ta3bhe6UNWIXlZaOOMRjrKN4Yaq2A + ILAIEdSMUWMN8/mC6WTqVJy1KxGHvldLqYVhRLfbptfpEbRbeH7gmIdkXHzqZ+msX+fgzd9nMHqXl1/6 + AXmu6XS6Ne8g6rTI4pjxZE6mJevbezx96xr7e30WccL9Dw+RUtCLtjEG32rbLQ+bx6N8/yrkr/CBZiRQ + ARWVU2i2CK/iA4+LFpryYtX9j/tb3fib5t//5B2A0TozRj8AGg0Wf/Or2lFrjn1JyRVlDb8uGTXev3Yg + 2pCajDRNEXGJNJcApAPuK8OmBiSrCl4l3lno5Sgx9z5L6WxT2X9jx19u+UDzZl1BWEY9QipU4CGQFHnh + ADs9pRWF+IEbUiqlwEqPJHGCm0HYRZiUoB25Jinr9AyKPHX0Xi8A6yOEh04nJDpB+esYvSCMurT7a2TF + 0wjZBQlh9zK7u/cYjebkOiOOcybTBfF8ilICPwjQhcYikEo4TYKyX0Epp7dnUUjhSnl5ljmLEOUYeSnA + SjyhCEPlZMyNoWKSC2nwfYkxlixLGY0LxtMJOjeuqUhKRw/+1u9w+eotxqd3GZwe0W51yX1HArKmwCrB + yfGQLNNs7+1x88Y1drc2sTbj6PisnhBkjEV6HiClNqzhjKpyAFXNf/U6PL75h8bvVfpvRQ1eNfZm2/Hq + hcZrWJapyCOg40/cAfzub/26/e/++a/MykQepCwZgX8771f9hyoWrqVk1dTgwRKlFyU/XfkKVcpfubLS + ksCjbTWCzLjXqwhCCBAWVY24rgG/OsivP4/zRdVnaBCCKNVsKRuCKrZh6QFcEiiwOnf6BlJirBPUjFot + 11i1WDiALAwJo5YbbqlTTDzBDyKS0QRrCjrdNt1u3zkmqzF5ivT7pZ8z6DwGIRF+B61TdJzhtzbwWjvI + YJP9C68g9U324sKV1rR18udpRpLH6EITxxmLOCGez0jTBYv5jNkiJy8Mgefje05yLAgEnueXhDCPIFBU + pVFryu5JaRHW4vsCXSosa+0cue87LQIlIVAhKnB4AAYefvAKJjmi01snCCOyNAMJRmtmszmjwZz1rW1e + +PzH2dnZAFMwmUyYzReNZiDXZtxqRRiLMm58EbgUoNnp13QAReN3kwKc8yhO0HQCT5oVUGEATaNfDfOb + YGNTUaheP3EHAEA5aKfyT1ZQRwLnNOP/Nt7alv30VHp3bneWuKEZYegTlOIgQkm8Ul9ea01R0mgdmObK + ZO6oCSglvBBqadB26WLqxuOy1ClwoWytdlRHAUtsw3UFlENBcP8nYwvms4zpbM5kNqDd6iJl6LTvKm49 + kGeuF98PQ7AWz7NY4xGGEQhBvEhI4lPnKDp9orCDMDlpnqLCdfywjTEWipxSYwudL0AOUbJFnk7Ik9Rh + Hbn7Hp5SrK/3MMaF19JzPf06z9HWlPwCj/liwXQ0YjqbuPQiNUznGq0zTJGDzTBlB570BKHyCEIfpSAv + XE+Gr9x/xxhKWrMl1xbPl/jCCYVYT6D8FlFnHc8LKAqNVG7u3+nZmG6nxxd++gtcunQRKcrBsdOZI3rZ + 5ZSiiq/giEqpZyzt8hB5OAMPWHYBNrn/BY/2AjRvNy/Vwa8Md9UQHucAmhWEasd/nOHXr/WRcADK9a1S + NdScD5XF37oTOA+1OCPzA48w8Gm12vieYjqZMB0PydMcWxR4vnKThD0Pzw8RfoSSCo3bmUzpzKod3H2v + 5dCPCqCs8AnEKvBXff/V6E2w7AlwVYWdK8/SX9/l4N4rnB58wOnpPVqtiE6nQxi2UdIJa2CdOo8bcV1Q + 5DP8wEcbQxh08HyJED7ZImU6PHGAW7uF781KUCzEWI3J5y46SU7AayFNgTEFhTHk5QjuatzXIo4dy88Y + hFJkJdDnmp0MeZHQChWd/R2uBfuAIghDFklCGi9IkpQsS0l1yHw+YTYes5iOGY8nHA4ysALPE7Rbil5b + EYYSJfxy35RuqIspsFK4ScVli3A17fd0MMZoyxe+8AWuXrnkpMrTObowZGlaRkBiSUpKU6wVFEWGKTRh + FEgliHCGVun5VUzAgPMNQKsOwPJ4QZAmVvC4jkAaZ2zzetMBrOIJdUbbfO5HwgEMz06G3U7fhFEkXbkG + mlZZpcfUZbK/XYcgpSKMQtphiAXeffMtFtOJS8SUwvc9rHUh63w+YzZbIKSl0+vT3dhFRm1XK6cS+xB1 + al8G9nUEcB7zXE78qROEGie0S04ASweBEJDHCD0m8jRPf+xTGOlz/MG7HJ4cosSUTrdHr9vD2GVraxWV + VEzMNJ2RZQIhFVErpNvfRmvDdDZgsUgJ/AlBKyAIOyh/yzkCDcI6w6bU8cvTFNno/nOTkPKaYy+EqCW+ + a+ZeYcmtJc9TBJL5Yl6WBwWtVsT6Wt+pBvt7FNWUZ6tQYcR8OuVsOGAyHjGfjHlwloNOEFmGNQlaZwys + JAhaBIETc823cwbDM46Pj7h+/Saf+9xnKLKU0XhcOy6tHSDZHBIqhCjLjymbm+tITzEcDIW2JsQZWxUB + SJYGrnh016/C/pylWGjTQazqAzSjgKYRN3aF+n7TeIyVv2veBj4iDuAH3/vOW898/FP/zgr+Wa4NvpS1 + E6jbZxG1I/jbCghcGC7xfY8oCMjynLdffplCZ0iU05ovh10KoTg9Pubg8D62ndIJ+ggN09EZa7uX6G9d + qBtglq9e/V5WJZpgn6hDf/fdq52e2vm5VZUMq9ZlW2Rk6YgsjUnTA4Qw7F6+wv61qwzPppye3uP+h/fo + dLqs9XvUmgRlKgPOseVFgS1FONPFEcqXdHqbSCXJc818PGdmz+j2F4TdK0jVwakrWvz2mtPrKwev1GXZ + 0tCrrjqgdgZVMw9Qau4Xy6k+pXNQSjEcjUqNRYWUldwXWFvg+xEb/TYXdjbpdDsEgU+Ra+bxnDRJSbOc + RQqT0YTF/IzI95jNRuzsXuMX/9E/IZ8PODw6dLhQI8dvDh6piESj0YggcErE77x7n7vvvMFwqIWUygPt + 43b8yglURl+F6pVDyBu3V0FDxbJU+DiBkNWwvmnYZuX6j4Oi/eSJQAAPP7z38M/+6Hf+5//pf/lf/fsP + j//pbJ4479tE5MurlfFXbad/c6vcq4XA8ySe7/Pem28wXyT4Sjj+gFi2Jw9Hx5zZN/n0/6jYuNBicDji + /b84YfJ2j+l0zmUr6G7ulCeTu5wDYasduOoZcHc2nNuyKlEh/q77r3rMOQ8hQCiJENUEXYsxMDy+T7vb + YX1jje3tZ9Ciy+DwfY6OB1izIAxCWlELpBPALLLMbVfSqQdJqTBFwXR0ghAKPwgI2l3CznV0OmR48g6e + TOhgCTpXkHj4QYCf2VqFuan2VOhlpaXqtKtYepWmn1KSNE3PUXy11rWTKApDmk4pioKgHPxhDMTxgqI4 + IwiCcn5kWDvPdhiyvhZydX8NKW/Q7rTp77+ALwvuvf0tDo6OSsBxORK8/r+XDjKOY8CytbXJg4cHvPTy + q2RZzvO314nCsGrfWp35V80DaB7QphE3WX9NJeEnpQFNSbDVHb+ZxDbX6n2PbJ0fCQdgrbWz6eR4Ph78 + H3ubvZP1bvvnFml+e7ZInIiFqPTwSpCO1YGa5YlrHWV2CZv95y0pJFkSMxoOynDbq0uUnifJ84LT+V0+ + 9899bn1ih/XOBv1Pr/FX117jm795yId/McKP2rT660jPq3P/GsqzK0fmR4Q0DkNYfueqciCEYDSZcbPX + Q/kGjBvf5fsRXltSpDmTbOAMSIzY3Nnn0s3nGA9OGA3GjIYPwFharRAlXGOM8H10npNZhxWEYYiSiixN + mIzOEOIu/fXL9Nc3KKzC3/wcXvcaD95/jXv3PkQon263W8tu1RLmwjQcnYu0KB/Pyt6Aoijodrt4SpWj + t2zdolsLhHheg9q7jDB6vV7NKNTGuGYgpUiyjCRJUZ5E4FqRW603KPyILHVdoc20qHIEQN3M1Ov1ODkZ + 8P0Xv8t0uqDbbhGsB6yvdTgaF6Ia08ijhl2V4GDZKFSV7yrDbs4NyBqv0az1W85rBVYnU/UPbTYaVc8/ + d/rweJzgo+EAAN69cyf/lX/xK9/qtVvf/fIXv7T18U9/5oWdC/v/1EbBF4uCS9rYUEqkEMsAuGoGWu6Q + pXNYwu3/2ct19ZVqPCwxCGsFKI2/M2X/xgWyTCMinyvebeJ9zTvPHTF8TzM8Pmb38pj+xg6rzmhJI6h4 + CU/+sKspzxJLqO5w+nho0FaUZUeDtQI/DDA4w7LaspieEM8O8f0uF/a3uXTtGuOzI06ODkhT148fBQov + jGi3WjjtQScgopSi19tAG810dMBsekCvt8H6ZR/VvsTOlc8wGJywSCzz+ZyZXfb2S+khSuZl5cwrg4al + yIeUohbdrIy5njIsKi1AU+/SVfRQOZY8z+vXLIqilCdXoEBbl1p6vgdCobwI5TmHIKWso4yl7JchiiKS + NOWVl1/i6PiUKIrY2epQaEsUSsKohVDzFYT23KVJ3qlC/KpaUB3VqsxnWIb/9eFvPNZ0JJUzaL4Xjeeu + YgWrQOJHCwMolwbUdBEX//Fbf372J3/+rT81Sfr/PHPj5vaXfvarv7C3d/Ervc3trxoTbAuBJ4WQS6HM + R3fQWqGH0jn8NT6ItZZuv4+vQjKTuGgbnEQtFjxL1DMYI8jmmkN9RL77beY2IexavG5BfJaQJvHy81RC + oe7DPYLQVJH96lc5xwtq3OcwBFezT5IxQiiyNEUJiQmc/n4YtpZqtrYAFMoLSdKYOJnjeYpWu8czn3ie + ZGGYjM5YxDOKeMHCzN02pBSeHxGEAe5foGh1+xhjSeI5J2/+OrvZMbPTNxiOFsRJWlYfAjfZSWs8r2re + 8bG4kmlejksTwoGuIFFKlOi8wdr8HClLlWSmqouw2fq7mrdXx7+S8/KUoyNrY8hzjbYpIpPowizDfmvd + 4Fjp6MV5nvPBB+/z8MMHbkT4eg8pBHlhMFjyQpMkC0xhEMI2U4DVS30KcB4PWL2v6RiafQTNwaJ25e8e + d1o3G5OaacNjy4EfJQcA5YfVaWL6rUjR7di37r53+tbd934X+IOPf/zjTz3//Kc+v3/l+i931zaficJo + TSrlC4uyLMuFAoGpWmuBcqzQj0YPS0PX1mAKzaVrV/jg7h3HCLYWW4BRoFPLPC2YT2J8343DWkxSptOE + LHEyX0mSUOTLllQpS1EQLBhLUe+G8kenAI1dv36mrSIT6UQ4KBttpIfJMlqtFu1umyx1iLsnqjzaEcvC + IEIqRTybEs/GtDp99nb7FOoGpog5OzohToakacJsfkK33SFstfH8EM+LSJMEI3yk9LE2A6Ew2rBYJOVw + z6J+L8+rDFTW/RbVeHA/jByfocix1hm5M94y9SvpuVmROe6/kCWIaEqikKzxBEcdDs6h9tZasjIyqGr3 + RWoIupIociPGspIf4XuKNM85PnzAwcERWZrS6XbqlMNag8VSZDlaSNbXt9iNrYAPTXnqrhrkk4wUliH+ + qmNo/k0z169uNw15lTz0wy7N3f8jGQFAI6+ZxIkB9Hq3nVPocJpm+rXXXnv7tdde+0BK9YfPPvexp5// + 5Gd+YX1j+xM7OxeeVmG0KaQXCiG8CgVYGn0dyFPLbNYhvV3icrZSoXWdZrsXLjAZDZmMhghhsZVmfiFI + Tzt8+N6Ii9e2EECeakZnc2YDTTqzhK2IIGrViH1R6Pp96lix/HxVxeOH+YFzj1mLNTlCuV25FYV4rYB4 + PsR1vVriJCbPM5TyaHc6+J5D4S0uvC3KudZBGGGMIV4ssFaTJkf4QY8Ll/fBXmKR5kxGp6SzEYvpFOTE + hdJhpS8o0CbGlqG4tU5f0Ml9lQIahWuYUkqRpkltUC6cd4QrKWQtdba2vu46DpXr5PSkh/J9jAeYolT3 + Derd3g0fzUnTlDiOCYOwzr4rZ+D7PkYbNypduFJrkqYYY+l23OCUg8MTDg8P0IUh8H2CUnikEqpJ4pjF + PGdtfZ3bzzzL57/wDKNvvKWsLSrkf3VVhtzk4Vf3r5aHmqvpDB73nOYOvyouWpGLmmIkzVTgHHr+UXMA + cD5h1qPZwgKmE3iZRhZpnmtjtHn91Vfffv3VV+8CwWc/98KndvcvPbt/8cqndy9d+Yz0grby/U7dNEMT + I3Crcq2yLDNW1BxrXHgXpylKSW7efpY7b7zJIp6CNhS5QQqf9eAqb/6nl8m/Ymh3AvJUMzxbMLxrSU4F + u5t9Wp2u26mFXe72lSuSbrxVBe79yOCkGcBUCDsGabNSWx9m8xgppGMuqhCtBUkyZz5304BarYhOr1eD + c0abmtVmjKXINVGrR5FlTE7vorwQL2ixd2EPay+ziGOS6YDpdE48fQCmIIwuEfjrKBUhJI4gRVU6M/V7 + Od3BJdAGoJRf7vjOJRZpynS+YD5flKlBWU0w2vU7eD7WOlHRMPTwvBae78DZIIjqUeFCuOMqpCwVhJ3u + QJakFNqSzs/Ic42QIUJOeXhwwHg8JstSfD/A95clQaVcOnByMqTd7vCZzz7L/t4eXuixmE6YTadOn+X8 + Ll3l602J79Ww/YdFB01baF6etLs/SWm4ut6sFsBHOAJorupDasDOs8L6Wzsmmo3zJMsTYW0ihIisUu3v + f++vvg9/9arvef/h+s1bV67euPmZK9ee+mJ/c2uv0+/vKOWHUinfRd/LiGAp771cTpHLkGU5iZS02y2e + /eQn+ODOHWaTEYXV+MLQ7+5y8v4+b/7pAd39qQv7x4LJOyG+7nH5+k2iVhdjtGuTFRVwuUxT3Le0df7/ + 4xQunCOw+GELrOBsMDNX1kO5SJ3CUJzEzOeabrfr+unD0KnbBi2yZM7swLW9dro9x2IsxTODwLHclJIE + UYS2mjzJWSxO8WZntNp92lGH7t4eW5c2iedPMxkNybL7JJP7JOmMeD5nMZ3Xgime54wxKFuOjSnq3L/u + FDTlbEfhdAg938cWRd2daYxBem56cJoUGGOZzab1Y1iB9DwnKyd91wIdqVJToEOrE9KKIgIvQMmc577w + L2hvP8Pha79Lkhzy/t27xHHmZv35QalXQPnZBaenJywWKbdvP8OVK1cIAp/pZMZkNma9u4sXeFV32A/L + +5vXKwfRlABfReiboF3ToFd7Cp5EI15NC1ZBwXp9lB1AcxnA5GcnMi+/fAA6EyIRRRELZGSFbedFUbzz + 9luLd95+6z3gD5++ffvmjaduf2ZtY+f65WvXn47a3Q3PD3sq8ANrcaPHLRiqZoSlFl9RaOLE8RGiMOD6 + UzcZDEaMz47J0oQgkDx14znee8fn5L0JwtPoWOK3Wzz7wvPsXb62HOklqwTERRuicbgrTs7qehzwV/32 + goA0SXj1xZfi3/71Xxv85q9+/NJsIhieeAgRkWY5SZKQ5xmB5yM9iS40fhCw1l2nyGInaJLFtNsd1jc2 + atVka1zt3WhN1GrjSR9tc4osIYnnKHlGuz8lUopwdwuv9QmE30eLl4i6a6RpTpKmZEVOHDv131YY4Ad+ + WadXWFlq+CkXGeeFRhcGqTWe72E9D1Pm7S6Ed5UEawqyXKOUxfPc/7HIDYUBgSFLF1hgNitlxs0ZSkEU + SPzAR0nD9sU/Z+/SEbPJAePBEGOg3W7V5CQpJWEYUhQFDx8+YHNrmy9+8Ut45ZyAwWAIgO87XUMhhSkP + zeNEbZ7kDFZX0wlUBts06IosVJUDm5cnOYBmxPBY44e/Ow6gWlX+YlMwGCMD0CkmC6RMNGKmtWlJpdpG + 69Y7b7/91jtvv/0u0Hvq1q3LG1u7ly9eufrM9v6lm/31rZ3++vqOUF5Q7frWUGMGRjj5p/kioSgKoiKk + v9ZnfX2NyXhCFi/I84LP7Wwzn84YT6cEgc/W3gVavTV3QpmlMi1Aaf/U3Y7lbm7No8fmcei/UgqpJCdH + R/oPf+//Pv1X//Jfvnnv/r1Tmx187r//pcvXb+5Losgj8wPmmakPuc41GZrZYo4vJnitiG63w/pan0Uc + 8/DDB4RRQBS2MRg86yOAeDFHerIesJkXCYXWTIYn+J4kaicYzyfoX2f/2nP4ypAmjisvlSXNJJPZkNHg + hLOTU8aTKZOpIfQ1gRKVtjlKudZgRyd2bcmVVFqhDWmSISRk2mIKi5SQ5RZdWGw1VFVZwtBzFqKpS8NV + o2eSJHhK8eJ3/oSL+xfYv3jZKRZLVx1QygGM1QwAU+R87oUXuLB3gflsRhzHjl/QKF9KIXAzQetz83Et + uuWRfyQXr+6vjPNJTUKrBp/z+AjANF5nNXV4JPSvrv9dcwDVqj1cWnKrAyWzWWFVJwrjeV7EAgKEaGNt + G9Dv3rkTc+fOXb7z7e/2+t32lcvXbl6+fuu53f2LV/YvXb0atTvrXhj1hJAURmPLsePWapLUUBQGP8sI + Ap+o3abV6ZS5u2VtD/aNrSW2luj/+bAf3KcWonF7NfhrrOrPhHD99EmS8Mp3X1z861//9Q/+6A/+4LU0 + zx8C46/98RuvfO2P3tl7+lrvU//4qzuf/MqnN7rXL3bQoo/wgvp10jQDY8iSmOPZlDAI6G9ssn/pMnGa + kMxj5ospUdQiDCM6Io7OAAAWX0lEQVTXNJTlaKnrvvpqao61hjQe0452EEWGTs+YTwYUWpZGIggUbPV7 + 7G5t0nr+k4hSz288HDKZThiPp0wXmsU8JouHzKYjZosMawRRy7EFo8AjCMrIyYISFs+TFEUpoWrAdf86 + LEUpgafKOlqpziylAKsQUqK8ADwfzw/cTAXfR5XedjKZoPOc28/e5uatp4gXMbPptAYSq5VmmXtNAFVv + /D+OrF0z0Vtt9mn2AaQ8avSP2/kf1zcAj3YQrp5dfycwgB+1zoEjs6wwAvIwiIp5XmSq2/PsbLowEElk + ywjbFoKWMbaYTmb566+/9tLrr7/2Yrvd2nzqqadvrm3uXLzx1O3baxube53++la3t7ZlpZRaGwpdUOiU + vJBkbiR0Wctf0l2XfIRyEnAZSVgrUGoZBYiSepuUwpIOzNNPrFJW02oODw7sH//+7x9/7Td+44033nzz + HeBECHEC4gBrhpY8fffD8e//b//X6Oav/V7n87/wpd2f/Sdf7tx49vZFOq02qBaeUiRpSpFlLqTNcwan + xxwfPqTf26Db6xIEfRZJzHg8RFjhugH9AGs1fom8+0GAMa7nxSIwMi3pwj75otTyr6S2PY9kMnEweDkS + LIoi+r0+W5tbRGEEokwDjMZan/FoyunZIcPBGaenZzw8BSUKpK26DC1+IAkCrx4pbsooKi0sngeeJ8ky + 1+4beCFCQBynZFmOKGdPSCmRQpJmCYvFnK2tbT716U8TBgFnZ2eYoqidfF72SEgpicKwpCVn5Fkm5aNa + fKvh/uN2+SY415QSb44Qa95ezf9XQb5myN983+bvR9bfZQdQrdoRWGAwmRshZSE9Txqlcr/bS8R0tMgM + M4OIpFIttG1ZSYi10WIRD15++eUh8IOXvv+db62vr69vbu9evnjp6rXtC/sXL1y8fLm7tr4rpNcyQlJo + 4ySnhZP8qglHlrJYb8upRu7DlZWqmg4scASVxSJx95fnyeoREsLlmWma8p1vfmv+m//6N979069//Y15 + HN8HTgQcSyUPhbWnhRFD1elORJ4VhU5fHE2mf/Y7X5/++9/5evdTn3724X/7z37xyu1PPx12r1zcpRW2 + 8DwFlrp114984nhGGs+QUtHp9ti7cAltLLPRgNF0gBcoer11wpbC8zsU2QyEh1AhQgt0lpClGWlWnGvm + ybVLg7QxeL6PV5bVimquX35aM/GqCkErCnnq5nW8Z54miiJAMB4NGI4njEZjZjHE85j5bMxsOiJOUtJc + ojyBQtLrekhh8aSzQwc24saFKYkpDLZkH2ZZjJCSn/ril9i/sM94OORocAiUU4FLHMIvh474vs90NiNJ + EqTogRN0elwHXjPsb+b3TcNt7vQJ5w1+VVTkcUj/KrrfvN60jyeuvw8OoFr1F7XG6Gw01HieCbEFiNxT + MgnbrcU8ywOr0xBUKAQh2JZEhAjCyWSaTSbT0b179+//4Pvf++76Wr9/6fLVq+sbm/vXb926dOXarac6 + /f5mu7u2VSAc2Ucbqs4+YSvAT5zrU3AfytY5rzYGrYvzzqOxnMimz/HBQ/79b//2g3/zW7/16tvvvPM2 + cCSkPLHGHEo4wdozG7XGIklSWxS5TlODO5FmwAnM3vzBm7Nv/ODN4Wf2dns/8wsvDL76X3+pv3398ga9 + XocwUBjrk2W6zm2dUOqE+WJKGLVotdrsrW2jKZhMBmRJQdBaEEUtvKBktkoPZAB2OQ69qvVXeoq65gnY + c5Teirjj/kWWrBwCYsZjgJIt6Ep/rajF1s1Noihw9RtrydIMIwMWi4TjkxPGgzOOjgeM5o5ab3WOEgVC + FAjh0pNiaxudF6RZwqUrV7l18yZ5XvDhh/cQlrJ3wn0HryQPeUqRW8twPEYAUavFyekpo/FIyWVLbzMq + Xd2tKzCveclWLqu7f8ajkUNl/GLlPc/ZwBNuP7L+PjmAai2/dFHodDw2QOErhCmK3OZ5EvmeJzwviNMs + wOJbT4ZWm0B6XgutQ2tpgfVG40k2Gr86BF59+Qff6168sL/XW1vbeuZjz9+6eOXK1c3tnQvb69sXDYJ5 + mpOkievus1WZ0TXsConrK7CGLEsx1hIEpcHZqpxFTZc1xvDNb3xj/rXf+FdvfuM//dkr0/nsfeAUOLbG + HAJnBMHYaj01pWyuTeJmC6gFFsCHwAno94+OR9/6zT8e/fbX/uPaF3/64+2f/8Uv79781O217qW9HlHg + FHqNFWhR6e5L0sTRmSfjMa1ORL+3gxSaNJMs4jlirkE8IFr/GIICP4zQ1uEf1tq62QeoDcgr76s4/wBh + OTas0vOvKL3NsdxuWOecxWJOlmSkeVqO/27h+ookly9s8sytywRRG6kks8mE+XzOfL5gNLMsFnNCmaAC + H/wOtz/2SYpkyvHRccUbcp+37GGwWqPL9uSiKEiLgk6rxdlgwGBwxuULG/ieEsLBA816f5WbV4ZbzQps + jgzPVq6vGv/jJgtVTmAVVHyyDfyI9ffRATRX7R1zrWUe67zTahGFYT6bzzOMkZ0o8GwQ+YvpNDBF4QvP + C63Roaf8VpHnIa7HO5rO5ulb7747BLzX33j95a2Njc2t7e3d6zduXLp69ca1y9du3Nzf3LqgvMAvLMxi + N47LltwDXWiMNqz3unzy48/x7DNPl5r8y0nInu9z9OCA3/23/+aDf/dvv/biu+/eeRs4kFKcGDiS1p4h + 1cAYMzXGJFibkedN7988CSs+eRVmLoBDk49f/+YPxl//5g/OPv/UjfWf/Yef3/zE5z++sXv75jrr3RYC + SWF9B7IZg1IOWZ+NJgwHQzrtNp3eJn4QAR5B9xJCBkzOPmQymZGk+bm2Wlhy9T3Pq2XUmiSbSkGoORqs + IuJUK0mSJasv9EG6102SpHYmpkTzKyaiq2y02N7a5uqVFoUpaIcRrY0rhL5hPBpxdHBEp7fUSFBSYsuW + 70JrrBCYcnCISRLuPXzIbDaj3W4TtUL3fHsup2/u+pVRV/MCCx4dHb5q/JWa0ONy/Ca497hc/6+9/r47 + gOYygJjHsW212ybNc7PW7yMhmyWJ6ly4oKIs8aZZ7rPIvKzIQuWFgdVpYCyR5/uByfPQCBEsFvF8sYjH + 9x88vP/aa6+9ura2tr61tb136fLlSx9/7vmnrly9enP/4qVLrd6WLApDmqVMZx6dZ2/TbX+KG9eusLW5 + yXQ2q0kxQRjyzW/8WfzbX/utF//kP3z9pcls9j5wLKU4EYITaRnYKJqAWJAkuS2K6qSDR41fN34rlidj + jJtiewzZW+/ePf7Td++Onv31VviVf/DZ3c9/+VP9W194frt1YTtgvdMhzhS5tgihUEGALHUOR4MDBIrA + F2xe+SJB7xZ+tE6eH6JLduFS1tzVbB0hyLEBm7p6UkoC34dyBmBTb696nQqwqyIC3/dpt9v1vD9wDtSN + HHMDSAHiRcJsOmcwGNQ8h43NdS77Idr3yOMZnU4XXXYfqpI9WI0sC6PInThFwfHxMdPpFGMM7XaHdjtk + oxvQbgW+lEo6sUTHCmdpyAnnDT3lfDSwmg5UJbwmwr+62/+1w/wftp6kOPr3ei3iGMCmaWrDMLSLxcIS + 7WidLnSRxIXVeb7Z66Y2F1lu8wxYGGMWIggStI6DMEy10RmQG2OzRRzPzs7Ojt//4P0Hb7311t0Xv//9 + d996640748HpVGFkrx21dzbW1cWLF9jZ3iolqA2z2YzFIkEJyx/83u/d/d9/9Ve//hff/ovvJGn6NnAf + uG8tD3y840BFo1xnc7SuJmX8qBCwOnGq281csdqVRqDvF0X2V3fuD3/w/35/cvcvXx/L0cyGCLp7Wx6d + CCJPYVBU7dey1A4wFvLJOwQMWUxPOT4+YjqdLSsAYYkLSFlXM4RStdZenuekWUqaZhR5Ue/mVbdfFQVU + bcXAuU5A1wrsBo1UwGNl/E1dwro5SLooq9fp4EcBRa6ZzSZI3P1WiFoDoNPtYq1lPB5zcHhYNxMFgU/g + CfodGC1C/vAvsrPvvnr8l8boKcsS3qK8ZDiHG+OcQbJyPW1cVsk8TWT/Scf3v8j44Udzkf//tVQk0Ymg + fYFQD2WR5kpjZD/ypR9FclgQmNnUFwLfWnyEiKTFt/L/a+/cmuQoyzj+ew99nNPuzu6GzS7BCCQKikoI + oBZXVlmW5YWfwEs/lZeWlheoVQJS4KE8oLGigiTReAhJIASyyWYPMzuH7n7f14u3O9MZJtESCKvOv6qr + d3pnamZ3+jk/z/9RkbNFJAWRdUT4LTFpM20sNprNpfvv37jv0UceeeDYJz758Orq6ura+kYzSVOuX7/B + +XNn+mfPvH7q5Z/85NXd3d1LUnDdOjalEDcDrXbzIOoHcTwotncK44kG7yb4ddypLFVnn6lGTTUQAU3g + CCSPdLvJM099evWJZx7vHn3q0TYfW4tROmZcSIYZ5Xx+QauVsrx2jLcvneFPr51lr7eHUp6qexIKCKIo + QEpFoIOyXi+J44QgDHwi1DIZ5xVgCuO5BHNPn+dHht/LDzAhHBG3kowVd38VQtS3CbebTdaPHCFtpOzt + 9NjZ3iKOY8ZZxng8otFoorVmf3+f7e3tW16GV0CONLIUxZjf/03x3KnB27/9w+WXitH2KWCPiYtfPyrr + P+L2sKAKEyqXf1ZGH+5s+T8QzBXAnSC0xBUCQEsppZJkximskbLdCdJBT/atCLA2QMhQK6WVNZHVOsxN + EWFMJCGwEAsh0jRJWkmaLhxaWek+fuLEQ8eOHX+43+/nzz//3C//ceHCxfFotKmCYAshto112xGul6WN + kdvv50hpnN8t9n5uglkdagGT3nTBRBE0gBWQx5M4+cxDR5ef+vxnlk986YmF6NEHOyx2QsYmpj/Iabea + LK9/mjcv/J4zZ86y3+vhsLdCgWopp8+UTbb6CucISiYiECipiOIAJQMCrUD67UtRFBMEkvE4L9mBcrJs + XCoWSZZlvsEJRxRFPlxRvhIRx3FZQQihLL+2Wi3W19eJ04TxaMzmu+8yzMckUUIaJwwG+2zv7jIaDvz+ + Q6rwRdOOc966lvOj35r8uV++/crmtWunIfsHsIO37DkTt7+y8LOSfPVdANPlvGmB/1AEv8JcAfx7KGt7 + UtBcRwyuSmmNNA4ZKKkW0pba6Y90rgqFsQrnArTWwrnAGVMJVQgESso4CsM0iKIUgevt9XastQOgh9Y9 + aU2vGQbD3jjPnJCF57We6Qa+/7/HY9obUOURlp97AdiA8BNL3YUvPvnYfSe+/PTqAyePSz6+sUDS6tI6 + 9AiXzr/Kn14/Q6+/jyinH2/x6ZVkG5W1NsZ4fqyiIM9yHNbz+ZeNVEJCoCWhDsrZCUmSxERxTBg2SJIQ + ISxCKLSuvAHLaDRiMBiwv+83CidJTJo2iePkVpjQabVY21in0Wxy9crb7OzustxdZjwesbuzzWA4whmD + Cqp1ZppOKhBkvHKu4Hs/7b1x6o8Xfobp/xl4F19yrcf4o6nH9fi+EvhZW4Cmw7R7grkC+M8gARFHEYud + Dps3bihrnYiUUKSptNbKRpGLfetUVhiFcwqQSRQGWeG0M7kuPd5qufFIC8ZpFIz2RvlYClFYz3r6QQt+ + HdNTarJ2riuEsDwawDLII0IlJ088dvSZxx5OTn7z60f53GcfoL97jddeO8fWzR6FVdhyOM5Tgk8WgPql + nWUfgBJ+xVc+YU+21pLlBUUBWvodJMNhNVTlCU+VAKF9XB9HabkPUaCVptPp0O60CcMAmxdkecEw8+Qs + 1gmiQLB+XxsdL6N0hLMZV9+5xnjkG7MmzEKCMNAstxxvbo549lc5P/rF5otbm5d/A+4ysI23+pV1ryx+ + XfCroz7gM2tCr56vuaeYK4D3iY371sSVd9+pJnoFQpSrPl016XtrhbNod2SzGGltLOM8l87CcNIKaoXA + lCUluDc3xKw8wa2SOBMlENTOEdAG1iF+cKG79JUvff7wiZPHF9a2b74jQrHHRteQRpMWOSk0hfHufxBG + WCsp7IShxxSGLBvdRvSZZQJdrv0SAoxzOAvO4he8lp/UOItAMM7A5wpACv+aJAnoLHRYXFii0UxRdp/H + nv4q649/g53zP+DKxbO88cbfb6P/9glLSZooyPuc+ovluz83b7z2+vkfOrP/F2ATn9jL8ApguqxX796r + hL/evFOd77m1n4W5AvhwMGv0U1JOuJVfezUSNJ30+UgsAe/9zHWvoB4eVEnDEEiARRBHQBwFfWSxu9g4 + vLrYbaT6wYDhQ4tNkxw7LFhsGgLtkC6jmRiiwFOv+12QvtyYZ5lPCKLIsxwhHMZCUZR7GMv/jHC+5984 + 0GqiFACs9a9xjnI+wGDL/Y3SDnniySc4+YWvoewNrl65xPbObllJ8Bl+rRRaDtm83uOHpzQ/fuXGCzeu + XXwJeBNv9atkXt3iV8m/evPP9LBPneHnQAg/zBXAR4FZU2MfldDfCfXwoCKkrFcPNBOFIJiECXF5JPiQ + oQFJK2h2VpQKNpTLPru6lDY+fjhqrS7INemypVCOWGlnLLeNp250AgKJdqYkUxIYB9b5MV9Tjmx7mnYw + BgrrFUQ1mJfl/nla+TDC4p9nraGVWg4d6vLk088w2B+weX3T9yJoTRDCoL/DqTMZz/6Gy2fPX/m2y2+e + wVv9ytpPd/HN6tmH91p6xwGy/BX+nxqBDgoOmrDPQv0GrT6vpxWe1KnrCmHE7ay4lZLTMFR5fxjkZWLx + 4h6Ni5dUG+QyiDUVt5YOrSx1G6n+mHbFo3FctDeWbHBkWbSUKCTC0AoNaWxQqiRmluCsxViwpZgZUw5W + iclclrGlwqiJXRSnpM0lqg3PIIg0ODvgbxd6vPA78pf/0Huut3X5WXBXeG+9vp7VrwS+yuLXWX5mJfUO + 3Hc/VwBz3A3Tlqpu1erU1hXF1TQJRt3DlJPrRoCRgDKjLX31ra0qnIggbL8aNJdVEK07Vxxvp+HKxkpz + aakjVyNlHwhkFrZTp1fbRRQGrrTyhkAblARnXRlqlPSvZTJSlOM6QgJSeF6HSBOqjK2bQ359dsyLp935 + v/79+rewW6fw2f16V19Wezw9nHNX1p2DjLkCmONfobqpZ823T2evq2v17TgV132lMOoc9/XQwgf/ZIL8 + pjS5f+7OkHRnS7ZBdkCsotNDC51Wt9lM1xXF8SgSq4upbBxelp1U54uBMirUhnbqaCQWV1hwBi391mbl + chJd0E4Vg50B5y5s8+Jp+q+cy77fu/HWdyC/zGQCrxL+elJvmnKrLvjT3XkHXiHMcwBzvB9M3z/TScTq + XI99q+04097BtBBVHsP0dY2vRpTLOGVbBI0lqaIVAQ9GsVxbbKWLi029FoX2/ki7djuVjW6LZhKasBGN + WV9N+dQnj/KrV7f53s+2T194c+9b5DdeZtJ7X7n2VYKv3qJb/f5OZbx6ou/AY64A5viwMO0xTCc/xdS5 + Ephqtr4WMtx6fV3gphVLdT0EkYJsAAuIqJs0k5UoCLpK2IfCKDy82A6WXbE/vPyOOT3Y7z8L47eYJDbr + mfz6wdR73ZNOvQ8bcwUwx73GrHuuriDqo8z138/qWZgOQepKorpeJ+rUIFrIqIPNMrA38VY+qL3PNF1X + 9fMsy/5fLfwwVwBzHBzc7V68W6gBt3sIszyPSpjF1PWqx6EOw+2hwP+k4Ff4J+n2fxu2jZPXAAAAAElF + TkSuQmCCKAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABKRkIlSkZCQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfWncNBkllICtw + j6glZ4XjHVRv/xhJYP8MO1H/D0FV/w1IYP8QNEaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkYd7AZGH + exSSiHtEjoR5lZGGePxnX1T6oJ6a9E9PTZ4AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKWeGLwpB + Xm4qboz0JnSV/yR/oP81kLH/RJ3A/0ahxP81kbX/WbXZ/0+u0P8RY4T/DERc1ggSGDwAAAAGAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkYd7FJKI + fESKgHKVlIp6/5GHe/+dk4b+mY+E/56Thf9sY1b/vbmz/9jYz/9aWljKAAAAYAAAAAwAAAAAAAAAAC5w + jkcNS2fAEmKF/ziJqf+a2O3/dsbl/0yixf9Tqcr/S6HC/0OZuv8ziKn/VKrK/2a83f9Pqcv/LJK6/xxS + arEAAAA1AAAAJAAAAA8AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkYd7R5GH + e5WViYP/lYqB/42Ddf+LgXP/k4h5/5eMgP+CeXT/Dexd/w7xTv9tZVr/sK2o/9/g1//r7OD/n5+b9xgY + GJoAAAAwDUhjJCBnhf9Yr9H/YbnZ/2bE5f+x6Pv/YarH/zKJqv8tg6T/HHSV/xVpiv8KX4H/QJK0/16z + 0v84jq//UrPX/zFkfa4AAAA9AAAAOgAAACkAAAAXAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABzcW6BdWtiwouAef+Ngnz/i4B3/46Edv+Vi33/l4x9/5OJff9+dXD/Z/S4/z3y1f9rY1j/sK2o/93d + 1f/d3dX/5OPa/9PSy/9dXlzYBxsjikaWtv9wxub/XLLS/0ypyv+a1+3/XKrH/zSLrP9Albb/R5y9/0ec + vf9BmLf/c8De/3rL6v9Fm7z/Joes/xpOZaoAAAA8AAAANwAAACcAAAAbAAAADQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACEg3//fXRu44p/ef+ViYP/louC/5OIe/+Zjn//n5OE/56Thf+flon/nI6F/6CT + h/9pYFT/sa+q/9vc0//b29L/29rR/93d1f/n5tv/mKSl/DqRsv9Ppcb/WbDQ/3DE5P/O8f//bbXR/0CY + uf86j7H/LoSl/yR5m/8SZ4n/QZm6/1KoyP8vhab/Wrjc/z96kpYAAAAgAAAAIAAAABIAAAAJAAAABwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhID/g3pzyZOIgv+dkYr/oZaN/56Vi/+Ignv/ZmJe/1xZ + V/9nZGH/fHZx/5KLgv9vZlv/srGr/9vb0f/Z2tH/2dnR/9jYz//Y2M//xM7K/ziOr/9swuH/ab7f/1y1 + 2P+o3fL/VKC//yd/oP8yh6n/NImq/zeMrv82i67/brzZ/3rK6f8pgKH/FXSX/2WmwmkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjor/kIR7s4+Ff/94cW3/amZl/1ZT + VP9EQkL/T0tI/2tlXf9+dWr/i4Bw/5GFcv9oX1P/tLOt/9jZ0P/Y187/19bO/9fWzf/S0cr/nKam/0Wa + vf9Yrc7/WKzO/2m/3f/C7Pz/dLvV/0ujxP9TqMr/S6HC/z+Vtv8vhKX/Vq3N/2C11f9Blrj/QJ3C/z5+ + mIMAAAANAAAACgAAAAQAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjor/hn15tVJP + T/9dWVf/enJs/4J4a/+LgHH/joN0/5SMgP+PiYD/hoB6/42GgP9tZlz/tLKr/9XVzP/V1c3/1dPL/9XV + zP/R0cr/sLy6/zKKq/90yun/gdPy/4/T7P/D6vr/Up68/yR8nv8nfJ3/Inma/x1zlv8edJf/YK7M/2m5 + 2P8Vao3/MY6y/0mGoYcAAAAQAAAAHwAAABMAAAAJAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACQjon/kIR+u4R5dP+QhH7/iYB6/3BqZf9fXFn/WFRS/1tYVP9rZmH/eXNr/4uDeP9qYVf/s7Gs/9LT + y//T08v/0tLK/9HSyv/MzMT/lZ+e/1Cmxv9tw+L/YLna/1i63f+35ff/cbrV/0qiw/9Vqsv/VarL/1Gm + x/9Oo8T/esnm/3bI5/8/lbb/E3CU/3q51WQAAAAAAAAAAwAAAAcAAAAFAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACPjor/loyDxHVva/9WUlD/SUVE/1ZRTv9yamT/iX9y/4uAcf+Og3T/j4R2/5KH + ef9pYFT/s7Gs/9HRyf/Q0Mn/0NDH/8/Pxv/MzcT/ucK//y6Jqv9wxub/hM7q/7nl9f/r+///XqjF/zGJ + q/8xh6j/KH2e/x91lv8hd5r/S6LE/1SrzP8XbpH/NJCz/6jh+mEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjor/koiCy3Zva/+HfXf/jIF4/5CHfv98dnH/ZGBd/19c + Wv9hXlz/c29q/4yEff9rY1j/s7Gr/87Oxv/Ozsb/zM3E/83NxP/Gxr//kZqb/z2Zu/+Q2/f/oeL7/5Th + /P+27f//fcvn/1Srzf9nu9r/bsPj/3XK6v9juNb/OIyr/0+kw/9Opcf/HHqe/4e/2GUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjon/nJCJz352cf9pZGP/W1hW/1RR + T/9dWVT/aGFb/3hwZv+Eemv/jYFv/4+CcP9nXlP/srGr/83MxP/Ly8P/ysrC/8nKwf/Hx8H/qrW2/2q+ + 3/+G1/f/c7TN/0+LpP9JmLf/XrfY/1WrzP9Zr8//U6jJ/0uixP8FWHn/W3WC/yZPYv8fd5n/PpW3/4i/ + 1mwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOjon/k42H1nNs + af9/dXH/hnpz/4uAcP+Pg3P/j4N0/5KKf/+QiYD/jIV//5SNhP9oYFT/srGr/8nJwf/KycH/x8fB/8bG + v//Fxr//tMC//zePsv87kLL/Flx6/32nuP8ASGr/MIms/z+Vtv9Kn8D/VKrL/zyStf8AV3n/tcfP/12R + pv8FWHkoAExvLG2kvAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACOjon/p5uS3ZGFf/+LgXz/d3Ft/2ZhXv9dWlj/WldU/19cWf9taWT/fXVv/4yDef9pYFb/s7Ks/8bG + v//Gxr//xcW+/8TEvP/Dw7r/wsK6/8LBuv+Zsbb/M4Wl/3zG4P8ydJD/jaOq/6mwrf+qqaX5X2BgVwAA + AAwPQ1tHca7F/z+QsP8AAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACPjor/npWP4mhkYf9RTUz/WVRR/2VeWf99dGj/iX5t/46Ccf+QhHP/kIRz/5GF + dP9oYFb/srGr/8PDvP/Cw7z/wsG5/8DBuf/AwLj/wMC3/76+t/+9vbf/Inia/1Otz/93k5v/nZyY/52c + mP+9vbX9uLm6bQAAAAEYUmxBRZa0/zKLr/8AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOjon/pZyW6IyDfv+Ognz/kIR6/42DeP+AeHH/cmxo/29q + Zv9xbGj/eHNt/4yEfP9pYVf/sK+p/8DAt//AwLn/vr62/769tv+9vbX/vLy0/7q6s/+6urP/HXSW/zyW + t/91lp//t7ev/6+vqP+1s63/nZ2eagAAAAAeXHpANIOi/ymCpf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNjIf/rqSe7YmBff9vamj/VFFQ/0A9 + PP9PTEn/XVlW/29oYP+Ad2v/iX5v/42Bcf9nX1P/sK+q/76+tv+9vbb/vLy0/7q6s/+5ubL/uLiy/7e4 + sf+3t7D/G3GT/yqEpf93l6H/tbWv/7OzrP+zs6z/vLm0dAAAAAAiYH09JXOS/yN9oP8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNjIj/oJqX73hz + cP98dHD/gXdv/4l+b/+NgnP/jYJy/46DdP+Qhnr/kId9/5KJfP9oX1T/r62o/7q6tP+6urP/ubmy/7e3 + sf+2trD/tbWt/7W1r/+0s6z/EVx8/yqGp/9djqL/srKq/7Kyq/+xsan/p6ajgAAAAAAlZ4aEJXiY/xpx + lP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACMiof/vrKr8p2Tjf+Kgn7/d3Ft/2xoZP9jXlv/X1xZ/2djX/9vamX/eXRt/4yDev9oYFb/rKun/7e3 + sP+3trD/trWv/7W1rf+zs6z/srKq/7Kxq/+xsar/EFp5/yeAov8+ja7/rq+n/6+vp/+traX/paWgiAAA + AAAhaoz3JXyf/xlwk/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACKiYb/nZeT9mdjYP9oZGH/bWdj/3FqYf98c2f/g3lq/4Z8av+MgG//j4Jw/46B + b/9mXVL/q6qm/7O0rP+0tK3/s7Kr/7Gyq/+xsKn/r6+o/62vp/+trab/MHOS/xZkhP8viKr/X4ud/6uq + pP+qqqL/paSfjzB1mHoLUW//JXCO/yp8nv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJiIX/u7Ku96Sak/+bjof/koV8/46Dd/+Lgnj/gHly/3l0 + bf98dXH/f3lz/4uDev9pYFb/qqql/7Kyqv+xsar/sLCo/7Cvp/+traf/rKyl/6uqpP+qqaT/g5id/wxX + d/8kc5L/KIKk/z94kP+Hl5n/Q3qT3BNgf/8NRFz/Gneb/yxykXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIT/v7mz95OOi/92cnD/X1xa/0VC + Qf9EQUD/VFBO/2FdWf9ybGf/hH1z/42Cdf9pYVf/qaml/6+vp/+vraf/rKym/6urpP+qqqP/qami/6io + oP+np5//p6eg/06JoP8ZdJX/NIut/zyQsP9LkKv/JIGk/w1Vcf8UYoL/NIam2zBykAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4T/k4+L+oN/ + fP+Gf3z/g3pz/4Z9b/+MgXL/jYFy/42Ccv+OgnL/joJz/4yAcP9lXVL/p6ai/6uspf+rq6T/qqqj/6mo + oP+op5//pqad/6Wlnv+lpZ3/o6Oc/6OjnP9biZv/MYWn/1ClxP9MmLb/H2iG/xVjhf8vfJ2nLnqcAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACGhYL/vbax/qykn/+QiYX/cm1q/2FdWf9lYF3/Y19d/2lmY/93c3D/hoJ+/5qUjP9xal//p6ai/6io + ov+oqaL/p6af/6amn/+kpJz/pKSc/6Kim/+goJr/oqCZ/5+emP+fnpj/n56Y/5+emP+cnJb/nJuYnQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACJiIX/hYF+/2lmY/9xb2n/gH95/46Mhf+joZn/uLar/8bEuP/OzMD/0M7A/9LR + w/+lpJn/pqWg/6amnv+mpp//pKSd/6SjnP+iopr/oJ+Z/5+fmf+dnZf/nJyU/5yclP+cm5P/m5uU/5ub + k/+ZmpP/mpmWpQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIh4T/29jH/9zYxf/U0cD/ysi4/8bEtf/Hxbb/x8S4/8bD + t//OzMD/zcu+/83Lvv+in5X/pqWf/6Ojm/+ko5v/oqKb/6Cgmf+enpj/nZ2W/5yclP+bm5P/mpuS/5qZ + kv+ZmJH/mZmR/5mZkf+Xl5D/mZmTqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIh4P/8vDf/+fj0P/Z1sP/zsu7/8jF + t//Hxbb/zMq8/83Kvf/OzMD/y87B/9HPwv+joZb/oqCc/6Cgmf+gn5n/n5+Z/52dlv+cnJb/m5uU/5mZ + kf+ZmZH/mJiQ/5eXj/+XlpD/lpaP/5aWjv+Tk43/lpaRrwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhIH/8/Di/+zo + 1P/f28n/xsO2/7WzqP+jopn/m5qT/52blf+gn5j/pqSd/7azqf+Xk4j/oKCb/52dlv+enpf/nJyW/5ub + k/+ZmZH/mJiQ/5eXj/+Wlo//lJSN/5KTjP+Skov/kpKL/5OSjP+QkIn/k5OQsQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACEhID/xMG4/5mWjf92c3D/XVpZ/1FOTP9XUk//XllU/2plX/92cGj/hH1y/4uAc/9oYFf/n5+b/5yc + lP+bnJT/mpqT/5iXkP+Xlo//lpaO/5OTjP+Rkoz/kpKK/5CQiv+RkIn/kI+J/5CPif+NjYX/kpKPtQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACNjYr/t7Ot/7GtqP+vqaX/pp2U/5aLff+Og3L/j4Jw/4+Ccf+Qg3H/kYRy/4t/ + bP9lXVP/np6Z/5qZkv+amZL/mJeQ/5aUjv+UlI3/kpKL/5CQif+QkIn/jo6H/46Nhv+Ojob/jY2F/42N + hv+Li4P/kJCMuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMjIj/zcrD/7m1sP+gnJn/j4qF/3x2cf9ybWj/b2ll/3Fs + Z/92cWz/gXp0/4uCd/9nX1b/nJuW/5iYkP+Yl5D/lpaO/5OSjP+Skov/kJCH/46Ph/+Ojob/jIyF/4uL + hP+Li4P/iouD/4qKgv+Hh4D/j46Lvo6NiwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKiob/mZaS/4eEgP+Gg4D/hYF9/4F8 + df98dWz/enNo/392a/+EfG//in9x/4uAcf9lXVP/nJuX/5aUjf+Wlo//k5OM/5CQiv+Qj4f/jo6G/4yM + hf+Li4P/iouD/4mJgf+Jh4D/iYmA/4eGf/+FhX3/jo2Kwo6MiwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKiof/29jQ/9DL + xP/Cvbb/s6yl/6qilP+ZjoD/j4V3/42Ddf+OhHf/j4V3/4uAcf9nX1T/m5qU/5SUjf+UlIz/kZGK/5CP + h/+Ojof/i4yE/4qKgv+JiYH/h4eA/4eHgP+Ghn//hYV+/4aFfv+Dg3r/jIyHxoyLiQMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACKiYT/ycbA/62qpv+Sj4z/g4B9/3Jva/9oZWH/X1xa/2RgXf9vaWb/enVx/4uDef9nX1b/mpmT/5KS + jP+SkYv/kI+H/42Nhv+LjIT/ioqB/4mHgP+Hh4D/hoV//4WFfv+EhH3/g4N6/4ODfP+BgXj/i4uHzI2L + iQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACJiIT/p6Se/5+cmP+fm5f/oJyY/5mUjP+Si4D/i4F0/4Z8bP+HfW3/jYJy/4l9 + bP9lXlT/mJiS/5GQif+Pj4n/jo6G/4yMhP+LioL/iYeA/4aGf/+FhX7/hIR9/4ODev+Cgnr/goJ5/4KC + ef9/gHb/iYmE0YuKhwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4P/3tzV/9nWzf/QzMT/wr63/7CqoP+fl4v/kYl9/4d+ + cf+GfXD/in9x/4V5av9gWU//lpaP/4+Qh/+Oj4f/jIyE/4qLg/+JiYH/h4Z//4WFff+Dg3z/g4N6/4GB + ef+AgHf/gIF4/39/d/99fXT/h4aE1YuKiQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGhoH/sK2p/4aEgf90cnD/bWtp/2xq + aP9wbWr/dnRw/4J/eP+QjYX/m5eO/56Zi/9zb2X/k5OO/46Ohv+NjYX/iouD/4mJgf+Ghn//hIR9/4OE + fP+BgXn/gYF4/4B/dv9/f3b/fX51/319df96enP/hYWB2IqJhwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhID/wcLA/8DB + vf/Hx8L/zMzE/87Nw//QzsD/0M29/9LNuv/Rzbn/0s65/9XPuv+dmY7/kpGM/42Nhf+MjIT/i4uD/4mH + gP+FhX7/g4N6/4KCev+AgHj/f393/35+dv99fXX/fX11/3p6c/95eXH/hYWB3YuKhwoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACDgn7/9Pbw//L06//v8ub/6Onf/+Li2P/f3c//29jJ/9fSwP/W0L3/1c+8/9DLt/+cmIz/kZGM/42N + hP+LjIT/h4eB/4aGf/+FhX3/goJ6/4GBeP+AgHf/fn52/3x8dP98fHT/fHpz/3l6cv93eG//g4OA4YqJ + hwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACCgn7/8/Xt//L06//v8uf/6Org/+Tk2v/f3tH/29jK/9jTwv/W0L7/1c+8/9DL + tv+bl4v/kZCL/4uMhP+MjIT/iYmA/4aGf/+Dg3z/goJ6/4CAeP9/fnb/fX10/3x8dP96eXH/eXlx/3h4 + cP92dmz/goJ/5YmHhg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgX7/8/Tt//L07P/w8uj/6uzk/+Xl3f/g39X/3NrM/9rW + xf/X0sH/1c+9/9DKtv+al4v/kZCK/4uLhP+Li4P/h4eA/4aFfv+Dg3z/goJ6/39/d/9+fnb/fX11/3p8 + cv95eXD/eHhw/3h3b/90dGv/goJ+6YqHhg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgX3/8/Xt//L07P/y9Ov/7/Hn/+fp + 4P/i4tn/3dzP/9rXxv/X08L/1dC9/9DLtv+alor/kI+K/4yMhP+Ki4P/hoaA/4aFf/+Dg3r/gYF5/4B/ + d/9+fnb/fX11/3p6cv96eXH/eHhv/3Z2bf90dGr/goF+7IqHhhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgX3/8/bw//X3 + 8//t7+b/5eXb/+Pi1//m5Nr/5ePY/+Ddz//Z1sT/1tG//9DLt/+alon/kZGL/4uLg/+LjIT/h4eA/4aF + fv+Dg3r/goJ6/4CAeP9+fnb/fX10/3p8cv95eXH/eHhw/3d2b/91dGv/goF+74uJhxYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACCgn7/7e/o/7Ssm/+imYL/oJmF/5eShv+YlIz/raqk/9DNxP/j4Nf/3tvN/9DMuf+bl4v/kJCL/4yM + hP+LjIP/iYmB/4aGf/+FhX3/g4N6/4CAd/9/f3f/fX10/3p6c/95enH/eHhx/3d3cP91dWz/goJ/8omH + hRsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACBgX7/kYdt/3RoRf9fW0v/SUdD/z4+Ov8+Pjr/QUE+/2NjYP+pqKX/4t7V/9nV + xv+dmY3/kI+K/4yMhP+Ki4P/iYmA/4aGfv+Dg3z/goJ5/4CAd/9+fXX/fX10/3l6cv94eHD/eHhv/3d2 + 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 + eP+SiX3/lox//5yRgv9qYlj/5OTg/9PUzP/T08n/vLy0/0vA6/9LwOv/Vsv1/1HF8P9Nwu3/Sr/q/2jW + //8/tOD/LKDN/yygzf8soM3/P7Tg/wF4pv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEvrT/wruw/7iw + pP+vppn/pp2P/6CVhv+ckYL/nJGC/2piWP/i4dz/zs/G/87Qxv+ysav/AXim/wF4pv9OfZf/Tn2X/059 + l/8BeKb/AXim/wF4pv9SepL/Tn2X/0dzj/8BeKb/AXim/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW/ + tf+xq6L/oZuS/5CJgP+FfnX/g3xz/4J7c/+Jgnn/a2Ra/9/f2v/Ly8T/x8fA/8jIwf+3t6//np2a/1F8 + l/9kyOj/V3eQ/8/Ox/8AAAAAAAAAAEV1k/8zq9f/RHub/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAyMO5/3x4df94c2//gXt1/42FfP+Qh33/lox//5mPgf9pYlj/3NzY/8XGv//Cwrr/wsK6/8TE + vf/ExLz/U32Y/2XJ6P9WeJH/zMzE/wAAAAAAAAAARnSS/zOs2f8+epv/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADOysH/ycO4/764rP+1rKD/q6OV/6SajP+ek4T/nJGC/2liWP/Y2dT/wMC5/729 + tv+8vLT/urqz/7q6tP9TfZj/Zcno/1Z4kf/IyMD/AAAAAAAAAABGdJL/M6zZ/z56m/8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Lwv+wrKP/mpSM/4uFfv+Efnb/fXdx/4J8dP+GgHn/a2Rb/9XW + 0v+8vLX/uLiy/7a2sP+2tq//tbSt/1aAmP9kyOb/XYOb/8XEvf8AAAAAAAAAAEiJqf80tOH/W36Y/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzsvE/3p3dP+Hg37/joiA/5ONhP+bkof/m5GE/5yR + gv9pYlj/0tLO/7i3sP+0tK3/srKq/7Gxqv+wsKn/YYSa/23H4/9tscn/dZmu/3uXqv9Zk67/NLHc/xCd + 2P9TfZjZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADSz8f/z8q//8a+tP+7tKj/sqmd/6mf + kv+imIn/m5GC/2liWf/Oz8r/s7Kr/6+wqP+traf/q6ul/6qqpP+XoqX/U32Y/2vD3/9zy+T/a8Ld/06w + 0v8Qndj/U32Y/3uXqmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7LxP+Oiob/dXNv/3Zz + bv91cWv/dnFs/4J+eP+RjYX/aWJZ/8vLx/+urqf/q6qj/6moof+np6D/pqae/6amnv+Un6L/ZIab/1Z4 + kv9Tdo//VHeR/1N9mNl7l6poAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz8zE/7Ov + qP/Hw7j/x8O3/83KvP/X1cf/0M7A/8jGuP9oYlj/x8fE/6qqov+npp7/paSc/6KjnP+ioZr/oJ+Z/6Cf + mf+fnpj/s7Kr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADSz8f/+PXl//Lv3//q6Nj/4t/R/9/czv/W1Mb/zcu9/2tkXP/Cwbz/paSd/6Oim/+gn5n/nZ6X/5qc + lP+bm5P/mpqT/5makv+urab/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANLPx//59ub/9PHi/+3q2//l4tP/39zO/9bUxv/Ny73/bGRc/769uf+goJn/np6X/5ub + lf+ampL/mJmQ/5eXkP+Wl4//lpaO/6moof8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA0s/H//n25v/28+P/8O3d/+jl1v/f3M7/1tTG/83Lvf9qZFv/vLy4/5yc + lf+amZL/l5eP/5aVjv+UlI3/kpKL/5KRiv+RkIj/paSc/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysL/nJqU/4OBff+Fgn3/hoJ9/4eCff+Df3n/i4V+/2hi + Wf+8vbj/mpqR/5aVjv+UlIz/j5GK/4+PiP+OjYf/jo2G/4yMg/+gn5f/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/MxP+yr6r/vrmy/7ayqf+xqqH/raab/66l + mP+lnI7/aGJa/7q6tf+XlY//kpKL/5CQiP+Njob/jIyE/4qKg/+KioL/hoZ+/5ubk/8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0s/H/97a0v/W0cn/zce+/8S8 + sv+5sab/sKea/6edkP9qZFv/uLi0/5KSi/+Pj4f/jI2F/4qKgv+IiID/h4eA/4aFfv+Dg3v/mJeO/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysL/mZeT/5SR + jv+MiIT/gn97/4iDfv+NiIH/kouD/2diW/+1tbL/kI+I/42Nhf+KioL/iIaA/4WFfv+EhHz/goJ6/4CB + dv+Tk4r/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/M + xP+yr6v/raqk/7Cspf+3saj/samf/6qimP+mnpL/ZmJa/7O0r/+NjYX/iouD/4iHgP+EhH3/g4N7/4GB + eP+AgXf/fX1z/5CPh/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA0s/H/+Tg2f/d2dD/1NDH/8vFu//Auq//t6+i/66kl/9rZmH/rq6q/4uLg/+Ih4D/hIR8/4CC + ev+AgHf/f352/319df95eXD/jYyE/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADSz8f/n5+f/46PjP+EhYL/gH97/4uIgP+Yk4r/nZmP/2ZkX/+srKb/ioqC/4aG + f/+Dg3v/gYF4/39+dv98fHT/e3tz/3V3bf+KiYH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAANLPx//n5+T/2dvU/93e1v/f3dL/2tbG/9vVw//MxrH/YWBb/6ur + pv+JiYH/hYV+/4KCe/9/f3f/fX11/3p7cv93d2//c3Np/4eGf/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0s/H//////////r/9vjw/+7u5P/i38//3NbC/8zH + sf9hX1r/q6um/4eIgf+Fg37/goJ5/39/d/99fXX/enpy/3l4cP9ycmj/h4Z+/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS0Mf/39zQ/7Wvm/+tqJv/s6+o/9XS + yP/r59n/0Mu3/2FgWf+rq6b/ioqC/4aEfv+Dg3n/gIB2/3x8c/94eXD/dXdv/3FxZ/+Hhn7/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPQyP99cE7/U05D/0FA + Pf8+Pjz/aWln/9HOyv/c2Mj/ZGJc/6mrpf+Iin7/hYZ9/4CBeP97e3H/fHxy/3d4b/93d27/dHNp/4eG + fv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArquopq2q + o8Crqqm/r66sx6yrqtCpp6fYraup4rCtp+yXlZPtj46L34+QjdCNjYvBkJCNtKCgn6eVlJKdoJ+fk6Cf + noqXlpSEsK+vbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///AAf/hwAH+AEAB+AAAAfgA + AAH4AAAB+AAAAfgAAAH4AAAB+AAAx/gAAMf4AADH+AAAx/gAAAf4AAAH+AAAD/gAAP/4AAD/+AAA//gA + AP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP/4AAD/+AAA//gAAP8oAAAAGAAAADAA + AAABACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACclo0GZWJbTUVGRCwlJiUEAAAAAAF4pv8BeKb/AXim/wF4pv8BeKb/AXim/wF4pv8BeKb/AXim/wF4 + pv8AAAAAAAAAAAAAAAAAAAAAnJaNIJyWjUGclo1vnJaNqJyWjf+EeW/8XHJX/8HDv/EyMzJ5FxcYElDK + 9v9OyfX/Tcj0/2jj//9Fv+z/MKrY/zCq2P8ai7j/IpzK/wF4pv8AAAAAAAAAAAAAAACclo3/nJaN/5yW + jf9/eW3/g21j/w66LP8A/z7/Wmth//j18//p6OD/h4eBwiqj0v8ln83/JZ/N/z235P8alMP/GoKr/xqC + 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 + AADAPwAAwD8AAMA/AADAPwAA + + + \ No newline at end of file diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index a4e9858..587630e 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -136,6 +136,8 @@ this.settingsToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.openMapFileDialog = new System.Windows.Forms.OpenFileDialog(); this.saveMapFileDialog = new System.Windows.Forms.SaveFileDialog(); + this.customAppsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.customAppsToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.panel5.SuspendLayout(); this.mainPanel.SuspendLayout(); this.mainTabControl.SuspendLayout(); @@ -515,7 +517,8 @@ this.sortByNameToolStripMenuItem, this.sortByGroupToolStripMenuItem, this.toolStripMenuItem4, - this.settingsToolStripMenuItem}); + this.settingsToolStripMenuItem, + this.customAppsToolStripMenuItem1}); this.mainContextMenuStrip.Name = "mainContextMenuStrip"; resources.ApplyResources(this.mainContextMenuStrip, "mainContextMenuStrip"); // @@ -928,7 +931,8 @@ this.openMappingsToolStripMenuItem, this.saveMappingsToolStripMenuItem, this.toolStripMenuItem5, - this.settingsToolStripMenuItem1}); + this.settingsToolStripMenuItem1, + this.customAppsToolStripMenuItem}); this.mappingsContextMenuStrip.Name = "mappingsContextMenuStrip"; resources.ApplyResources(this.mappingsContextMenuStrip, "mappingsContextMenuStrip"); // @@ -965,6 +969,18 @@ this.saveMapFileDialog.DefaultExt = "mcrouter"; resources.ApplyResources(this.saveMapFileDialog, "saveMapFileDialog"); // + // customAppsToolStripMenuItem + // + this.customAppsToolStripMenuItem.Name = "customAppsToolStripMenuItem"; + resources.ApplyResources(this.customAppsToolStripMenuItem, "customAppsToolStripMenuItem"); + this.customAppsToolStripMenuItem.Click += new System.EventHandler(this.customAppsToolStripMenuItem_Click); + // + // customAppsToolStripMenuItem1 + // + this.customAppsToolStripMenuItem1.Name = "customAppsToolStripMenuItem1"; + resources.ApplyResources(this.customAppsToolStripMenuItem1, "customAppsToolStripMenuItem1"); + this.customAppsToolStripMenuItem1.Click += new System.EventHandler(this.customAppsToolStripMenuItem_Click); + // // MainForm // resources.ApplyResources(this, "$this"); @@ -1121,6 +1137,8 @@ private System.Windows.Forms.ToolStripMenuItem askConsentToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem privacyBarToolStripMenuItem; private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.ToolStripMenuItem customAppsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem customAppsToolStripMenuItem1; } } diff --git a/MainForm.cs b/MainForm.cs index f2f66eb..3c7d9d0 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -123,7 +123,9 @@ namespace MeshCentralRouter try { installProcess = System.Diagnostics.Process.Start(startInfo); } catch (Exception) { return; } installTimer.Enabled = true; installButton.Visible = false; - } else { + } + else + { hookRouter(); installButton.Visible = !isRouterHooked(); } @@ -145,8 +147,6 @@ namespace MeshCentralRouter return principal.IsInRole(WindowsBuiltInRole.Administrator); } - public void DeleteSubKeyTree(RegistryKey key, string subkey) { if (key.OpenSubKey(subkey) == null) { return; } DeleteSubKeyTree(key, subkey); } - public class DeviceComparer : IComparer { public int Compare(Object a, Object b) @@ -177,7 +177,7 @@ namespace MeshCentralRouter { // Normal certificate check if (chain.Build(new X509Certificate2(certificate)) == true) { meshcentral.certHash = webSocketClient.GetMeshKeyHash(certificate); return true; } - if ((meshcentral.okCertHash != null) && ((meshcentral.okCertHash == certificate.GetCertHashString()) || (meshcentral.okCertHash == webSocketClient.GetMeshKeyHash(certificate)) || (meshcentral.okCertHash == webSocketClient.GetMeshCertHash(certificate)))) { meshcentral.certHash = webSocketClient.GetMeshKeyHash(certificate); return true; } + if ((meshcentral.okCertHash != null) && ((meshcentral.okCertHash == certificate.GetCertHashString()) || (meshcentral.okCertHash == webSocketClient.GetMeshKeyHash(certificate)) || (meshcentral.okCertHash == webSocketClient.GetMeshCertHash(certificate)))) { meshcentral.certHash = webSocketClient.GetMeshKeyHash(certificate); return true; } if ((meshcentral.okCertHash2 != null) && ((meshcentral.okCertHash2 == certificate.GetCertHashString()) || (meshcentral.okCertHash2 == webSocketClient.GetMeshKeyHash(certificate)) || (meshcentral.okCertHash2 == webSocketClient.GetMeshCertHash(certificate)))) { meshcentral.certHash = webSocketClient.GetMeshKeyHash(certificate); return true; } meshcentral.certHash = null; meshcentral.disconnectMsg = "cert"; @@ -214,10 +214,7 @@ namespace MeshCentralRouter versionLabel.Text = "v" + version.Major + "." + version.Minor + "." + version.Build; // Prevent edgecase where the hook priority can be on and the hook disabled causing havoc - if( !Settings.GetRegValue("Exp_KeyboardHook", false) ) - { - Settings.SetRegValue("Exp_KeyboardHookPriority", false); - } + if (!Settings.GetRegValue("Exp_KeyboardHook", false)) { Settings.SetRegValue("Exp_KeyboardHookPriority", false); } serverNameComboBox.Text = Settings.GetRegValue("ServerName", ""); userNameTextBox.Text = Settings.GetRegValue("UserName", ""); @@ -226,7 +223,8 @@ namespace MeshCentralRouter int argflags = 0; string update = null; string delete = null; - foreach (string arg in this.args) { + foreach (string arg in this.args) + { if (arg.ToLower() == "-oldstyle") { deviceListViewMode = false; } if (arg.ToLower() == "-install") { hookRouter(); forceExit = true; return; } if (arg.ToLower() == "-uninstall") { unHookRouter(); forceExit = true; return; } @@ -249,7 +247,8 @@ namespace MeshCentralRouter } autoLogin = (argflags == 7); - if (update != null) { + if (update != null) + { // New args ArrayList args2 = new ArrayList(); foreach (string a in args) { if (a.StartsWith("-update:") == false) { args2.Add(a); } } @@ -267,13 +266,15 @@ namespace MeshCentralRouter if (delete != null) { try { System.Threading.Thread.Sleep(1000); File.Delete(delete); } catch (Exception) { } } // Set automatic port map values - if (authLoginUrl != null) { + if (authLoginUrl != null) + { string autoNodeId = null; string autoRemoteIp = null; int autoRemotePort = 0; int autoLocalPort = 0; int autoProtocol = 0; int autoAppId = 0; + string autoAppIdStr = null; bool autoExit = false; try { @@ -282,13 +283,15 @@ namespace MeshCentralRouter autoRemoteIp = getValueFromQueryString(authLoginUrl.Query, "remoteip"); int.TryParse(getValueFromQueryString(authLoginUrl.Query, "remoteport"), out autoRemotePort); int.TryParse(getValueFromQueryString(authLoginUrl.Query, "protocol"), out autoProtocol); - int.TryParse(getValueFromQueryString(authLoginUrl.Query, "appid"), out autoAppId); autoExit = (getValueFromQueryString(authLoginUrl.Query, "autoexit") == "1"); string localPortStr = getValueFromQueryString(authLoginUrl.Query, "localport"); if (localPortStr != null) { autoLocalPort = int.Parse(localPortStr); } + autoAppIdStr = getValueFromQueryString(authLoginUrl.Query, "appid"); + int.TryParse(autoAppIdStr, out autoAppId); } catch (Exception) { } - if (((autoRemotePort != 0) && (autoProtocol != 0) && (autoNodeId != null)) || ((autoNodeId != null) && ((autoAppId == 6) || (autoAppId == 7)))) { + if (((autoRemotePort != 0) && (autoProtocol != 0) && (autoNodeId != null)) || ((autoNodeId != null) && ((autoAppId == 6) || (autoAppId == 7)))) + { Dictionary map = new Dictionary(); map.Add("nodeId", autoNodeId); if (autoRemoteIp != null) { map.Add("remoteIP", autoRemoteIp); } @@ -296,6 +299,7 @@ namespace MeshCentralRouter map.Add("localPort", autoLocalPort); map.Add("protocol", autoProtocol); map.Add("appId", autoAppId); + map.Add("appIdStr", autoAppIdStr); map.Add("autoExit", autoExit); map.Add("launch", 1); mappingsToSetup = new ArrayList(); @@ -375,10 +379,13 @@ namespace MeshCentralRouter // Load registry settings showGroupNamesToolStripMenuItem.Checked = (Settings.GetRegValue("Show Group Names", "1") == "1"); showOfflineDevicesToolStripMenuItem.Checked = (Settings.GetRegValue("Show Offline Devices", "1") == "1"); - if (Settings.GetRegValue("Device Sort", "Name") == "Name") { + if (Settings.GetRegValue("Device Sort", "Name") == "Name") + { sortByNameToolStripMenuItem.Checked = true; sortByGroupToolStripMenuItem.Checked = false; - } else { + } + else + { sortByNameToolStripMenuItem.Checked = false; sortByGroupToolStripMenuItem.Checked = true; } @@ -525,16 +532,21 @@ namespace MeshCentralRouter if ((twoFactorCookie != null) && (twoFactorCookie != "")) { twoFactorCookie = "cookie=" + twoFactorCookie; } else { twoFactorCookie = null; } Uri serverurl = null; - if (authLoginUrl != null) { - try { + if (authLoginUrl != null) + { + try + { meshcentral.okCertHash2 = getValueFromQueryString(authLoginUrl.Query, "t"); string loginkey = getValueFromQueryString(authLoginUrl.Query, "key"); string urlstring = "wss://" + authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.LocalPath + "?auth=" + getValueFromQueryString(authLoginUrl.Query, "c"); if (loginkey != null) { urlstring += ("&key=" + loginkey); } serverurl = new Uri(urlstring); - } catch (Exception) { } + } + catch (Exception) { } meshcentral.connect(serverurl, null, null, null); - } else { + } + else + { int keyIndex = serverNameComboBox.Text.IndexOf("?key="); if (keyIndex >= 0) { @@ -586,14 +598,17 @@ namespace MeshCentralRouter meshcentral.okCertHash = lastBadConnectCert.GetCertHashString(); Uri serverurl = null; - if (authLoginUrl != null) { + if (authLoginUrl != null) + { meshcentral.okCertHash2 = getValueFromQueryString(authLoginUrl.Query, "t"); string loginkey = getValueFromQueryString(authLoginUrl.Query, "key"); string urlstring = "wss://" + authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.LocalPath + "?auth=" + getValueFromQueryString(authLoginUrl.Query, "c"); if (loginkey != null) { urlstring += ("&key=" + loginkey); } serverurl = new Uri(urlstring); meshcentral.connect(serverurl, null, null, null); - } else { + } + else + { // Load two factor cookie if present string twoFactorCookie = Settings.GetRegValue("TwoFactorCookie", null); if ((twoFactorCookie != null) && (twoFactorCookie != "")) { twoFactorCookie = "cookie=" + twoFactorCookie; } else { twoFactorCookie = null; } @@ -676,16 +691,21 @@ namespace MeshCentralRouter device.SubItems.Add(node.getStateString()); device.Tag = node; node.listitem = device; - } else { + } + else + { device = node.listitem; device.SubItems[0].Text = node.name; device.SubItems[1].Text = node.getStateString(); } if ((node.meshid != null) && meshcentral.meshes.ContainsKey(node.meshid)) { node.mesh = (MeshClass)meshcentral.meshes[node.meshid]; } - if ((showGroupNamesToolStripMenuItem.Checked) && (node.mesh != null)) { + if ((showGroupNamesToolStripMenuItem.Checked) && (node.mesh != null)) + { device.SubItems[0].Text = node.mesh.name + " - " + node.name; - } else { + } + else + { device.SubItems[0].Text = node.name; } @@ -702,7 +722,9 @@ namespace MeshCentralRouter { // Normal search if (connVisible && ((search == "") || (device.SubItems[0].Text.ToLower().IndexOf(search) >= 0))) { controlsToAdd.Add(device); } - } else { + } + else + { // User search bool userSearchMatch = false; if (node.users != null) { foreach (string user in node.users) { if (user.ToLower().IndexOf(userSearch) >= 0) { userSearchMatch = true; } } } @@ -711,7 +733,8 @@ namespace MeshCentralRouter } // Add all controls at once to make it fast. - if (controlsToAdd.Count > 0) { + if (controlsToAdd.Count > 0) + { devicesListView.Items.AddRange((ListViewItem[])controlsToAdd.ToArray(typeof(ListViewItem))); } } @@ -832,31 +855,41 @@ namespace MeshCentralRouter if (meshcentral == null) return; if (this.InvokeRequired) { this.Invoke(new MeshCentralServer.onStateChangedHandler(Meshcentral_onStateChanged), state); return; } - if (state == 0) { - if (meshcentral.disconnectMsg == "tokenrequired") { + if (state == 0) + { + if (meshcentral.disconnectMsg == "tokenrequired") + { emailTokenButton.Visible = (meshcentral.disconnectEmail2FA == true) && (meshcentral.disconnectEmail2FASent == false); tokenEmailSentLabel.Visible = (meshcentral.disconnectEmail2FASent == true) || (meshcentral.disconnectSms2FASent == true); smsTokenButton.Visible = ((meshcentral.disconnectSms2FA == true) && (meshcentral.disconnectSms2FASent == false)); if (meshcentral.disconnectEmail2FASent) { tokenEmailSentLabel.Text = Translate.T(Properties.Resources.EmailSent); } if (meshcentral.disconnectSms2FASent) { tokenEmailSentLabel.Text = Translate.T(Properties.Resources.SmsSent); } - if ((meshcentral.disconnectEmail2FA == true) && (meshcentral.disconnectEmail2FASent == false)) { + if ((meshcentral.disconnectEmail2FA == true) && (meshcentral.disconnectEmail2FASent == false)) + { smsTokenButton.Left = emailTokenButton.Left + emailTokenButton.Width + 5; - } else { + } + else + { smsTokenButton.Left = emailTokenButton.Left; } tokenTextBox.Text = ""; - if (meshcentral.twoFactorCookieDays > 0) { + if (meshcentral.twoFactorCookieDays > 0) + { tokenRememberCheckBox.Visible = true; tokenRememberCheckBox.Text = string.Format(Translate.T(Properties.Resources.DontAskXDays), meshcentral.twoFactorCookieDays); - } else { + } + else + { tokenRememberCheckBox.Visible = false; } setPanel(2); tokenTextBox.Focus(); - } else { setPanel(1); } + } + else { setPanel(1); } - if ((meshcentral.disconnectMsg != null) && meshcentral.disconnectMsg.StartsWith("noauth")) { + if ((meshcentral.disconnectMsg != null) && meshcentral.disconnectMsg.StartsWith("noauth")) + { stateLabel.Text = Translate.T(Properties.Resources.InvalidUsernameOrPassword); stateLabel.Visible = true; stateClearTimer.Enabled = true; @@ -876,7 +909,8 @@ namespace MeshCentralRouter stateClearTimer.Enabled = true; serverNameComboBox.Focus(); } - else if (meshcentral.disconnectMsg == "cert") { + else if (meshcentral.disconnectMsg == "cert") + { lastBadConnectCert = meshcentral.disconnectCert; certDetailsTextBox.Text = "---Issuer---\r\n" + lastBadConnectCert.Issuer.Replace(", ", "\r\n") + "\r\n\r\n---Subject---\r\n" + lastBadConnectCert.Subject.Replace(", ", "\r\n"); setPanel(3); @@ -892,14 +926,16 @@ namespace MeshCentralRouter this.Text = title; // Clean up all mappings - foreach (Control c in mapPanel.Controls) { + foreach (Control c in mapPanel.Controls) + { if (c.GetType() == typeof(MapUserControl)) { ((MapUserControl)c).Dispose(); } } mapPanel.Controls.Clear(); noMapLabel.Visible = true; // Clean up all devices (old style) - foreach (Control c in devicesPanel.Controls) { + foreach (Control c in devicesPanel.Controls) + { if (c.GetType() == typeof(DeviceUserControl)) { ((DeviceUserControl)c).Dispose(); } } remoteAllDeviceControls(); @@ -910,7 +946,8 @@ namespace MeshCentralRouter noDevicesLabel.Visible = true; if ((meshcentral != null) && (meshcentral.nodes != null)) { - foreach (NodeClass n in meshcentral.nodes.Values) { + foreach (NodeClass n in meshcentral.nodes.Values) + { if (n.desktopViewer != null) { n.desktopViewer.Close(); } if (n.fileViewer != null) { n.fileViewer.Close(); } } @@ -925,7 +962,9 @@ namespace MeshCentralRouter meshcentral.onNodesChanged -= Meshcentral_onNodesChanged; meshcentral = null; authLoginUrl = null; - } else if (state == 1) { + } + else if (state == 1) + { stateLabel.Visible = false; //setPanel(1); nextButton1.Enabled = false; @@ -933,7 +972,9 @@ namespace MeshCentralRouter userNameTextBox.Enabled = false; passwordTextBox.Enabled = false; cookieRefreshTimer.Enabled = false; - } else if (state == 2) { + } + else if (state == 2) + { meshcentral.disconnectMsg = "connected"; stateLabel.Visible = false; setPanel(4); @@ -943,9 +984,12 @@ namespace MeshCentralRouter Settings.SetRegValue("ServerName", serverNameComboBox.Text); Settings.SetRegValue("UserName", userNameTextBox.Text); } - if (meshcentral.username != null) { + if (meshcentral.username != null) + { this.Text = title + " - " + meshcentral.username; - } else { + } + else + { this.Text = title + " - " + userNameTextBox.Text; } cookieRefreshTimer.Enabled = true; @@ -954,7 +998,8 @@ namespace MeshCentralRouter if (tokenRememberCheckBox.Checked) { meshcentral.sendCommand("{\"action\":\"twoFactorCookie\"}"); } // Setup single instance pipe server - if (authLoginUrl != null) { + if (authLoginUrl != null) + { string urlstring = "wss://" + authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.LocalPath; localPipeServer = new LocalPipeServer(Convert.ToBase64String(UTF8Encoding.UTF8.GetBytes(urlstring))); // + "" + meshcentral.certHash localPipeServer.onArgs += LocalPipeServer_onArgs; @@ -980,6 +1025,7 @@ namespace MeshCentralRouter int autoLocalPort = 0; int autoProtocol = 0; int autoAppId = 0; + string autoAppIdStr = null; bool autoExit = false; try { @@ -988,7 +1034,8 @@ namespace MeshCentralRouter autoRemoteIp = getValueFromQueryString(authLoginUrl2.Query, "remoteip"); int.TryParse(getValueFromQueryString(authLoginUrl2.Query, "remoteport"), out autoRemotePort); int.TryParse(getValueFromQueryString(authLoginUrl2.Query, "protocol"), out autoProtocol); - int.TryParse(getValueFromQueryString(authLoginUrl2.Query, "appid"), out autoAppId); + autoAppIdStr = getValueFromQueryString(authLoginUrl2.Query, "appid"); + int.TryParse(autoAppIdStr, out autoAppId); autoExit = (getValueFromQueryString(authLoginUrl2.Query, "autoexit") == "1"); string localPortStr = getValueFromQueryString(authLoginUrl.Query, "localport"); if (localPortStr != null) { autoLocalPort = int.Parse(localPortStr); } @@ -1003,6 +1050,7 @@ namespace MeshCentralRouter map.Add("localPort", autoLocalPort); map.Add("protocol", autoProtocol); map.Add("appId", autoAppId); + map.Add("appIdStr", autoAppIdStr); map.Add("autoExit", autoExit); map.Add("launch", 1); mappingsToSetup = new ArrayList(); @@ -1023,7 +1071,8 @@ namespace MeshCentralRouter if ((map.protocol == 2) && (map.mapper.totalConnectCounter == 0)) { // This is an unconnected UDP map, check if the target node is connected. - foreach (NodeClass n in meshcentral.nodes.Values) { + foreach (NodeClass n in meshcentral.nodes.Values) + { if ((map.node == n) && ((n.conn & 1) != 0)) { // Reconnect the UDP map @@ -1087,6 +1136,7 @@ namespace MeshCentralRouter map.localPort = (int)localPort; map.remotePort = (int)remotePort; map.appId = appId; + if (appId == 0) { map.appIdStr = x[3].ToLower(); } map.node = node; if (authLoginUrl != null) { map.host = authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.AbsolutePath.Replace("/control.ashx", ""); } else { map.host = serverNameComboBox.Text; } map.certhash = meshcentral.wshash; @@ -1148,6 +1198,7 @@ namespace MeshCentralRouter map.remoteIP = remoteIp.ToString(); map.remotePort = (int)remotePort; map.appId = appId; + if (appId == 0) { map.appIdStr = x[3].ToLower(); } map.node = node; if (authLoginUrl != null) { map.host = authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.AbsolutePath.Replace("/control.ashx", ""); } else { map.host = serverNameComboBox.Text; } map.certhash = meshcentral.wshash; @@ -1188,6 +1239,7 @@ namespace MeshCentralRouter map.localPort = form.getLocalPort(); map.remotePort = form.getRemotePort(); map.appId = form.getAppId(); + map.appIdStr = form.getAppIdStr(); map.node = form.getNode(); if (authLoginUrl != null) { map.host = authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.AbsolutePath.Replace("/control.ashx", ""); } else { map.host = serverNameComboBox.Text; } map.certhash = meshcentral.wshash; @@ -1221,12 +1273,15 @@ namespace MeshCentralRouter openWebSiteButton.Visible = false; Uri serverurl = null; - if (authLoginUrl != null) { + if (authLoginUrl != null) + { string loginkey = getValueFromQueryString(authLoginUrl.Query, "key"); string urlstring = "wss://" + authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.LocalPath + "?auth=" + getValueFromQueryString(authLoginUrl.Query, "c"); if (loginkey != null) { urlstring += ("&key=" + loginkey); } serverurl = new Uri(urlstring); - } else { + } + else + { int keyIndex = serverNameComboBox.Text.IndexOf("?key="); if (keyIndex >= 0) { @@ -1244,9 +1299,12 @@ namespace MeshCentralRouter meshcentral.debug = debug; meshcentral.tlsdump = tlsdump; meshcentral.ignoreCert = ignoreCert; - if (lastBadConnectCert != null) { + if (lastBadConnectCert != null) + { meshcentral.okCertHash = lastBadConnectCert.GetCertHashString(); - } else { + } + else + { string ignoreCert = Settings.GetRegValue("IgnoreCert", null); if (ignoreCert != null) { meshcentral.okCertHash = ignoreCert; } } @@ -1346,6 +1404,7 @@ namespace MeshCentralRouter map.remotePort = form.getRemotePort(); map.remoteIP = form.getRemoteIP(); map.appId = form.getAppId(); + map.appIdStr = form.getAppIdStr(); map.node = form.getNode(); if (authLoginUrl != null) { map.host = authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.AbsolutePath.Replace("/control.ashx", ""); } else { map.host = serverNameComboBox.Text; } map.certhash = meshcentral.wshash; @@ -1367,13 +1426,17 @@ namespace MeshCentralRouter private void openWebSiteButton_Click(object sender, EventArgs e) { cancelAutoClose(); - if (meshcentral.loginCookie != null) { + if (meshcentral.loginCookie != null) + { Uri serverurl = null; - if (authLoginUrl != null) { + if (authLoginUrl != null) + { string localPath = authLoginUrl.LocalPath; if (localPath.EndsWith("/control.ashx")) { localPath = localPath.Substring(0, localPath.Length - 12); } serverurl = new Uri("https://" + authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + localPath + "?login=" + meshcentral.loginCookie); - } else { + } + else + { serverurl = new Uri("https://" + serverNameComboBox.Text + "?login=" + meshcentral.loginCookie); } System.Diagnostics.Process.Start(serverurl.ToString()); @@ -1413,11 +1476,14 @@ namespace MeshCentralRouter if (f.ShowDialog(this) == DialogResult.OK) { inaddrany = f.BindAllInterfaces; - if (f.ShowSystemTray) { + if (f.ShowSystemTray) + { notifyIcon.Visible = true; this.ShowInTaskbar = false; this.MinimizeBox = false; - } else { + } + else + { notifyIcon.Visible = false; this.ShowInTaskbar = true; this.MinimizeBox = true; @@ -1427,10 +1493,13 @@ namespace MeshCentralRouter private void searchTextBox_TextChanged(object sender, EventArgs e) { - if (deviceListViewMode) { + if (deviceListViewMode) + { // Filter devices updateDeviceList(); - } else { + } + else + { // Filter devices int visibleDevices = 0; int deviceCount = 0; @@ -1464,9 +1533,12 @@ namespace MeshCentralRouter { cancelAutoClose(); searchTextBox.Visible = (devicesTabControl.SelectedIndex == 0); - if (devicesTabControl.SelectedIndex == 0) { + if (devicesTabControl.SelectedIndex == 0) + { menuLabel.ContextMenuStrip = mainContextMenuStrip; - } else { + } + else + { menuLabel.ContextMenuStrip = mappingsContextMenuStrip; } } @@ -1502,6 +1574,44 @@ namespace MeshCentralRouter map.localPort = 0; // Any map.remotePort = port; // HTTP map.appId = appId; // 0 = Custom, 1 = HTTP, 2 = HTTPS, 3 = RDP, 4 = PuTTY, 5 = WinSCP + map.appIdStr = null; + map.node = node; + if (authLoginUrl != null) { map.host = authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.AbsolutePath.Replace("/control.ashx", ""); } else { map.host = serverNameComboBox.Text; } + map.certhash = meshcentral.wshash; + map.parent = this; + map.Dock = DockStyle.Top; + map.Start(); + mapPanel.Controls.Add(map); + noMapLabel.Visible = false; + map.appButton_Click(this, null); + } + + public void QuickMap(int protocol, int port, string appIdStr, NodeClass node) + { + // See if we already have the right port mapping + foreach (Control c in mapPanel.Controls) + { + if (c.GetType() == typeof(MapUserControl)) + { + MapUserControl cc = (MapUserControl)c; + if ((cc.protocol == protocol) && (cc.remotePort == port) && (cc.appIdStr == appIdStr) && (cc.node == node)) + { + // Found a match + cc.appButton_Click(this, null); + return; + } + } + } + + // Add a new port map + MapUserControl map = new MapUserControl(); + map.xdebug = debug; + map.inaddrany = false; // Loopback only + map.protocol = protocol; // 1 = TCP, 2 = UDP + map.localPort = 0; // Any + map.remotePort = port; // HTTP + map.appId = 0; // 0 = Custom, 1 = HTTP, 2 = HTTPS, 3 = RDP, 4 = PuTTY, 5 = WinSCP + map.appIdStr = appIdStr; map.node = node; if (authLoginUrl != null) { map.host = authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.AbsolutePath.Replace("/control.ashx", ""); } else { map.host = serverNameComboBox.Text; } map.certhash = meshcentral.wshash; @@ -1535,7 +1645,7 @@ namespace MeshCentralRouter private void tokenTextBox_KeyUp(object sender, KeyEventArgs e) { - nextButton2.Enabled = (tokenTextBox.Text.Replace(" ","") != ""); + nextButton2.Enabled = (tokenTextBox.Text.Replace(" ", "") != ""); } private void tokenTextBox_TextChanged(object sender, EventArgs e) @@ -1566,7 +1676,7 @@ namespace MeshCentralRouter private void hideOfflineDevicesToolStripMenuItem_Click(object sender, EventArgs e) { showOfflineDevicesToolStripMenuItem.Checked = !showOfflineDevicesToolStripMenuItem.Checked; - Settings.SetRegValue("Show Offline Devices", showOfflineDevicesToolStripMenuItem.Checked?"1":"0"); + Settings.SetRegValue("Show Offline Devices", showOfflineDevicesToolStripMenuItem.Checked ? "1" : "0"); updateDeviceList(); } @@ -1626,7 +1736,8 @@ namespace MeshCentralRouter if (jsonAction["mappings"] != null) { ArrayList mappings = (ArrayList)jsonAction["mappings"]; - if (mappings.Count > 0) { + if (mappings.Count > 0) + { mappingsToSetup = mappings; if (mode == 2) { setupMappings(); } } @@ -1678,9 +1789,10 @@ namespace MeshCentralRouter if (x.ContainsKey("remoteIP")) { map.remoteIP = (string)x["remoteIP"]; } map.remotePort = (int)x["remotePort"]; map.appId = (int)x["appId"]; + if (x["appIdStr"] != null) { map.appIdStr = (string)x["appIdStr"]; } if (x.ContainsKey("autoExit")) { map.autoexit = (bool)x["autoExit"]; } map.node = node; - if (authLoginUrl != null) { map.host = authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.AbsolutePath.Replace("/control.ashx",""); } else { map.host = serverNameComboBox.Text; } + if (authLoginUrl != null) { map.host = authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.AbsolutePath.Replace("/control.ashx", ""); } else { map.host = serverNameComboBox.Text; } map.certhash = meshcentral.wshash; map.parent = this; map.Dock = DockStyle.Top; @@ -1726,6 +1838,7 @@ namespace MeshCentralRouter text += " \"meshId\": \"" + mapCtrl.node.meshid + "\",\r\n"; text += " \"nodeId\": \"" + mapCtrl.node.nodeid + "\",\r\n"; text += " \"appId\": " + mapCtrl.appId + ",\r\n"; + if (mapCtrl.appIdStr != null) { text += " \"appIdStr\": \"" + mapCtrl.appIdStr + "\",\r\n"; } text += " \"protocol\": " + map.protocol + ",\r\n"; text += " \"localPort\": " + map.localport + ",\r\n"; if (map.remoteip != null) { text += " \"remoteIP\": \"" + map.remoteip + "\",\r\n"; } @@ -2003,6 +2116,14 @@ namespace MeshCentralRouter cancelAutoClose(); } + private void customAppsToolStripMenuItem_Click(object sender, EventArgs e) + { + CustomAppsForm f = new CustomAppsForm(Settings.GetApplications()); + if (f.ShowDialog(this) == DialogResult.OK) { + Settings.SetApplications(f.getApplications()); + } + } + /* private delegate void displayMessageHandler(string msg, int buttons, string extra, int progress); private void displayMessage(string msg, int buttons = 0, string extra = "", int progress = 0) diff --git a/MainForm.resx b/MainForm.resx index 8f90901..f067527 100644 --- a/MainForm.resx +++ b/MainForm.resx @@ -129,13 +129,10 @@ - 15, 354 - - - 4, 4, 4, 4 + 11, 286 - 127, 28 + 95, 23 @@ -172,13 +169,10 @@ NoControl - 321, 277 - - - 4, 0, 4, 0 + 241, 225 - 114, 17 + 88, 13 19 @@ -208,13 +202,10 @@ NoControl - 317, 217 - - - 4, 0, 4, 0 + 238, 176 - 69, 17 + 53, 13 18 @@ -241,13 +232,10 @@ NoControl - 317, 166 - - - 4, 0, 4, 0 + 238, 135 - 73, 17 + 55, 13 17 @@ -274,13 +262,10 @@ NoControl - 317, 113 - - - 4, 0, 4, 0 + 238, 92 - 50, 17 + 38, 13 16 @@ -304,16 +289,13 @@ Top, Left, Right - 321, 236 - - - 4, 4, 4, 4 + 241, 192 - 287, 22 + 214, 20 102 @@ -337,13 +319,10 @@ meshcentral.com - 321, 135 - - - 4, 4, 4, 4 + 241, 110 - 287, 24 + 214, 21 100 @@ -364,13 +343,10 @@ Top, Left, Right - 321, 186 - - - 4, 4, 4, 4 + 241, 151 - 287, 22 + 214, 20 101 @@ -394,13 +370,10 @@ NoControl - 235, 323 - - - 4, 0, 4, 0 + 174, 260 - 404, 16 + 303, 13 103 @@ -433,13 +406,10 @@ NoControl - 4, 323 - - - 4, 0, 4, 0 + 3, 260 - 47, 17 + 37, 13 11 @@ -466,13 +436,10 @@ NoControl - 498, 354 - - - 4, 4, 4, 4 + 372, 286 - 127, 28 + 95, 23 105 @@ -499,13 +466,10 @@ NoControl - 0, 343 - - - 4, 4, 4, 4 + 0, 277 - 640, 49 + 478, 40 StretchImage @@ -532,13 +496,10 @@ NoControl - 16, 11 - - - 4, 0, 4, 0 + 12, 9 - 608, 69 + 454, 56 6 @@ -565,13 +526,10 @@ NoControl - 20, 84 - - - 4, 4, 4, 4 + 15, 68 - 292, 212 + 217, 170 Zoom @@ -595,13 +553,10 @@ Fill - 4, 4 - - - 4, 4, 4, 4 + 3, 3 - 640, 392 + 478, 316 6 @@ -619,16 +574,13 @@ 0 - 4, 28 - - - 4, 4, 4, 4 + 4, 25 - 4, 4, 4, 4 + 3, 3, 3, 3 - 648, 400 + 484, 322 0 @@ -655,13 +607,10 @@ NoControl - 321, 272 - - - 4, 4, 4, 4 + 241, 221 - 170, 21 + 131, 17 204 @@ -688,13 +637,10 @@ NoControl - 321, 218 - - - 4, 4, 4, 4 + 241, 177 - 127, 28 + 95, 23 202 @@ -721,13 +667,10 @@ NoControl - 456, 218 - - - 4, 4, 4, 4 + 342, 177 - 127, 28 + 95, 23 203 @@ -757,13 +700,10 @@ NoControl - 317, 224 - - - 4, 0, 4, 0 + 238, 182 - 73, 17 + 55, 13 21 @@ -793,13 +733,10 @@ NoControl - 317, 166 - - - 4, 0, 4, 0 + 238, 135 - 48, 17 + 38, 13 19 @@ -823,13 +760,10 @@ Top, Left, Right - 321, 186 - - - 4, 4, 4, 4 + 241, 151 - 287, 22 + 214, 20 201 @@ -853,13 +787,10 @@ NoControl - 20, 84 - - - 4, 4, 4, 4 + 15, 68 - 272, 212 + 202, 170 Zoom @@ -886,13 +817,10 @@ NoControl - 363, 354 - - - 4, 4, 4, 4 + 270, 286 - 127, 28 + 95, 23 205 @@ -919,13 +847,10 @@ NoControl - 498, 354 - - - 4, 4, 4, 4 + 372, 286 - 127, 28 + 95, 23 206 @@ -952,13 +877,10 @@ NoControl - 0, 343 - - - 4, 4, 4, 4 + 0, 277 - 640, 49 + 478, 40 StretchImage @@ -985,13 +907,10 @@ NoControl - 16, 11 - - - 4, 0, 4, 0 + 12, 9 - 608, 69 + 454, 56 6 @@ -1015,13 +934,10 @@ Fill - 4, 4 - - - 4, 4, 4, 4 + 3, 3 - 640, 392 + 478, 316 7 @@ -1039,16 +955,13 @@ 0 - 4, 28 - - - 4, 4, 4, 4 + 4, 25 - 4, 4, 4, 4 + 3, 3, 3, 3 - 648, 400 + 484, 322 1 @@ -1075,13 +988,10 @@ True - 277, 318 - - - 4, 4, 4, 4 + 208, 256 - 190, 21 + 145, 17 302 @@ -1105,10 +1015,7 @@ Top, Bottom, Left, Right - 20, 101 - - - 4, 4, 4, 4 + 15, 82 True @@ -1117,7 +1024,7 @@ Vertical - 602, 202 + 450, 162 25 @@ -1141,13 +1048,10 @@ NoControl - 19, 313 - - - 4, 4, 4, 4 + 14, 251 - 251, 28 + 188, 23 301 @@ -1177,13 +1081,10 @@ NoControl - 11, 7 - - - 4, 0, 4, 0 + 8, 6 - 627, 27 + 468, 22 23 @@ -1213,13 +1114,10 @@ NoControl - 16, 42 - - - 4, 0, 4, 0 + 12, 34 - 608, 55 + 454, 45 22 @@ -1246,13 +1144,10 @@ NoControl - 371, 362 - - - 4, 4, 4, 4 + 276, 291 - 127, 28 + 95, 23 303 @@ -1279,13 +1174,10 @@ NoControl - 506, 362 - - - 4, 4, 4, 4 + 378, 291 - 127, 28 + 95, 23 304 @@ -1312,13 +1204,10 @@ NoControl - 0, 351 - - - 4, 4, 4, 4 + 0, 282 - 648, 49 + 484, 40 StretchImage @@ -1344,11 +1233,8 @@ 0, 0 - - 4, 4, 4, 4 - - 648, 400 + 484, 322 8 @@ -1366,13 +1252,10 @@ 0 - 4, 28 - - - 4, 4, 4, 4 + 4, 25 - 648, 400 + 484, 322 2 @@ -1402,43 +1285,49 @@ 613, 17 - 218, 26 + 185, 22 Show &Group Names - 218, 26 + 185, 22 Show &Offline Devices - 215, 6 + 182, 6 - 218, 26 + 185, 22 Sort by &Name - 218, 26 + 185, 22 Sort by G&roup - 215, 6 + 182, 6 - 218, 26 + 185, 22 S&ettings... + + 185, 22 + + + &Custom Apps... + - 219, 146 + 186, 170 mainContextMenuStrip @@ -1453,13 +1342,10 @@ NoControl - 608, 2 - - - 4, 0, 4, 0 + 454, 2 - 31, 31 + 25, 25 403 @@ -1483,13 +1369,10 @@ Top, Right - 411, 6 - - - 4, 4, 4, 4 + 306, 5 - 193, 22 + 146, 20 402 @@ -1522,13 +1405,10 @@ Bottom, Left - 5, 210 - - - 4, 4, 4, 4 + 4, 167 - 224, 43 + 168, 35 405 @@ -1570,82 +1450,82 @@ Segoe UI, 9pt, style=Bold - 198, 24 + 170, 22 Add &Map... - 198, 24 + 170, 22 Add &Relay Map... - 195, 6 + 167, 6 - 204, 26 + 171, 22 Ask Consent + Bar - 204, 26 + 171, 22 Ask Consent - 204, 26 + 171, 22 Privacy Bar - 198, 24 + 170, 22 Remote Desktop... - 198, 24 + 170, 22 Remote Files... - 198, 24 + 170, 22 HTTP - 198, 24 + 170, 22 HTTPS - 198, 24 + 170, 22 RDP - 198, 24 + 170, 22 SSH - 198, 24 + 170, 22 SCP - 199, 226 + 171, 208 devicesContextMenuStrip @@ -1661,7 +1541,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADg - HQAAAk1TRnQBSQFMAgEBEAEAAYABAAGAAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA + HQAAAk1TRnQBSQFMAgEBEAEAAYgBAAGIAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABUAMAAQEBAAEYBgABPP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AJYAA/0D+AP3A/sD/yEAA/0D+gP5 A/wD/xgAAfoB+wH6A/4qAAP9A/8tAAP7A88D1QPbA88D1AO+A9QYAAP8A90D4APjA90D4APUA+MSAAP8 AZEBjwF9AU4BaAEhAfQB9QH0JAAD/gPRA8YD+ioAAcYCxwHPAtAB2ALZA90DywPBA68DmgP3FQAD2APd @@ -1792,13 +1672,10 @@ - 13, 5 - - - 4, 4, 4, 4 + 10, 4 - 593, 258 + 446, 210 404 @@ -1828,13 +1705,10 @@ NoControl - 3, 108 - - - 4, 0, 4, 0 + 2, 88 - 530, 64 + 392, 52 5 @@ -1870,13 +1744,10 @@ NoControl - 3, 108 - - - 4, 0, 4, 0 + 2, 88 - 530, 64 + 392, 52 4 @@ -1902,11 +1773,8 @@ 0, 0 - - 4, 4, 4, 4 - - 628, 305 + 470, 248 50 @@ -1924,16 +1792,13 @@ 0 - 4, 28 - - - 4, 4, 4, 4 + 4, 25 - 4, 4, 4, 4 + 3, 3, 3, 3 - 632, 315 + 470, 250 0 @@ -1960,13 +1825,10 @@ NoControl - 5, 217 - - - 4, 4, 4, 4 + 4, 182 - 224, 43 + 168, 35 55 @@ -2005,13 +1867,10 @@ NoControl - 8, 97 - - - 4, 0, 4, 0 + 6, 79 - 595, 64 + 446, 52 4 @@ -2039,11 +1898,8 @@ Click "Add" to get started. 0, 0 - - 4, 4, 4, 4 - - 625, 264 + 472, 221 49 @@ -2067,13 +1923,10 @@ Click "Add" to get started. NoControl - 1, 271 - - - 4, 4, 4, 4 + 1, 226 - 27, 25 + 20, 20 54 @@ -2097,13 +1950,10 @@ Click "Add" to get started. NoControl - 317, 271 - - - 4, 4, 4, 4 + 240, 226 - 27, 25 + 20, 20 5 @@ -2130,13 +1980,10 @@ Click "Add" to get started. NoControl - 493, 268 - - - 4, 4, 4, 4 + 372, 223 - 133, 28 + 100, 23 50 @@ -2166,13 +2013,10 @@ Click "Add" to get started. NoControl - 352, 268 - - - 4, 4, 4, 4 + 266, 223 - 133, 28 + 100, 23 52 @@ -2193,16 +2037,13 @@ Click "Add" to get started. 5 - 4, 28 - - - 4, 4, 4, 4 + 4, 25 - 4, 4, 4, 4 + 3, 3, 3, 3 - 629, 311 + 472, 253 1 @@ -2223,13 +2064,10 @@ Click "Add" to get started. 1 - 4, 4 - - - 4, 4, 4, 4 + 3, 3 - 640, 347 + 478, 279 401 @@ -2253,13 +2091,10 @@ Click "Add" to get started. NoControl - 20, 362 - - - 4, 4, 4, 4 + 15, 291 - 145, 28 + 109, 23 406 @@ -2289,13 +2124,10 @@ Click "Add" to get started. NoControl - 371, 362 - - - 4, 4, 4, 4 + 276, 291 - 127, 28 + 95, 23 407 @@ -2322,13 +2154,10 @@ Click "Add" to get started. NoControl - 506, 362 - - - 4, 4, 4, 4 + 378, 291 - 127, 28 + 95, 23 408 @@ -2355,13 +2184,10 @@ Click "Add" to get started. NoControl - 0, 351 - - - 4, 4, 4, 4 + 0, 282 - 648, 49 + 484, 40 StretchImage @@ -2387,11 +2213,8 @@ Click "Add" to get started. 0, 0 - - 4, 4, 4, 4 - - 648, 400 + 484, 322 8 @@ -2409,13 +2232,10 @@ Click "Add" to get started. 0 - 4, 28 - - - 4, 4, 4, 4 + 4, 25 - 648, 400 + 484, 322 4 @@ -2445,7 +2265,7 @@ Click "Add" to get started. 0, 0, 0, 0 - 656, 432 + 492, 351 8 @@ -2469,13 +2289,10 @@ Click "Add" to get started. Fill - 0, 80 - - - 4, 4, 4, 4 + 0, 65 - 656, 432 + 492, 351 9 @@ -2501,11 +2318,8 @@ Click "Add" to get started. 0, 0 - - 4, 4, 4, 4 - - 656, 80 + 492, 65 Zoom @@ -2531,11 +2345,8 @@ Click "Add" to get started. 0, 0 - - 4, 4, 4, 4 - - 656, 512 + 492, 416 8 @@ -2565,22 +2376,22 @@ Click "Add" to get started. 418, 17 - 123, 24 + 112, 22 &Open... - 120, 6 + 109, 6 - 123, 24 + 112, 22 E&xit - 124, 58 + 113, 54 trayIconContextMenuStrip @@ -4292,28 +4103,34 @@ Click "Add" to get started. 905, 17 - 193, 24 + 168, 22 &Open Mappings... - 193, 24 + 168, 22 &Save Mappings... - 190, 6 + 165, 6 - 193, 24 + 168, 22 S&ettings... + + 168, 22 + + + &Custom Apps... + - 194, 82 + 169, 98 mappingsContextMenuStrip @@ -4343,10 +4160,10 @@ Click "Add" to get started. True - 8, 16 + 6, 13 - 656, 512 + 492, 416 @@ -6042,9 +5859,6 @@ Click "Add" to get started. AADAPwAAwD8AAMA/AADAPwAA - - 4, 4, 4, 4 - MeshCentral Router @@ -6264,6 +6078,18 @@ Click "Add" to get started. System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + customAppsToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + customAppsToolStripMenuItem1 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + MainForm diff --git a/MapUserControl.cs b/MapUserControl.cs index 3a78f6b..70bd89e 100644 --- a/MapUserControl.cs +++ b/MapUserControl.cs @@ -31,6 +31,7 @@ namespace MeshCentralRouter public string remoteIP = null; public int remotePort; public int appId; + public string appIdStr; public NodeClass node; public MainForm parent; public MeshMapper mapper; @@ -72,7 +73,7 @@ namespace MeshCentralRouter public void Start() { routingStatusLabel.Text = Translate.T(Properties.Resources.Starting); - appButton.Enabled = (appId != 0); + appButton.Enabled = (appId != 0) || (appIdStr != null); mapper = new MeshMapper(); mapper.xdebug = xdebug; mapper.inaddrany = inaddrany; @@ -110,7 +111,8 @@ namespace MeshCentralRouter if (protocol == 2) { statemsg = "UDP: " + statemsg; } else { - if (appId == 1) { statemsg = "HTTP: " + statemsg; } + if ((appId == 0) && (appIdStr != null)) { statemsg = appIdStr + ": " + statemsg; } + else if (appId == 1) { statemsg = "HTTP: " + statemsg; } else if (appId == 2) { statemsg = "HTTPS: " + statemsg; } else if (appId == 3) { statemsg = "RDP: " + statemsg; } else if (appId == 4) { statemsg = "PuTTY: " + statemsg; } @@ -125,6 +127,28 @@ namespace MeshCentralRouter bool shift = false; if (Control.ModifierKeys == Keys.Shift) { shift = true; } + if (appId == 0) + { + if (appIdStr == null) return; + string appCmd = null; + List apps = Settings.GetApplications(); + foreach (String[] app in apps) { if (app[1].ToLower() == appIdStr.ToLower()) { appCmd = app[2]; } } + appCmd = appCmd.Replace("%P", mapper.localport.ToString()).Replace("%L", "127.0.0.1"); + string appArgs = null; + int i = appCmd.IndexOf(' '); + if (i >= 0) { appArgs = appCmd.Substring(i + 1); appCmd = appCmd.Substring(0, i); } + if (appCmd != null) + { + // Launch the process + System.Diagnostics.Process proc = null; + try { proc = System.Diagnostics.Process.Start(appCmd, appArgs); } catch (System.ComponentModel.Win32Exception) { } + + // Setup auto-exit + if ((autoexit == true) && (parent.autoExitProc == null)) { parent.autoExitProc = proc; parent.SetAutoClose(); autoExitTimer.Enabled = true; } + autoexit = false; + } + return; + } if (appId == 1) { System.Diagnostics.Process.Start("http://localhost:" + mapper.localport); } if (appId == 2) { System.Diagnostics.Process.Start("https://localhost:" + mapper.localport); } if (appId == 3) @@ -153,6 +177,7 @@ namespace MeshCentralRouter // Setup auto-exit if ((autoexit == true) && (parent.autoExitProc == null)) { parent.autoExitProc = proc; parent.SetAutoClose(); autoExitTimer.Enabled = true; } + autoexit = false; } if (appId == 4) { @@ -179,6 +204,7 @@ namespace MeshCentralRouter // Setup auto-exit if ((autoexit == true) && (parent.autoExitProc == null)) { parent.autoExitProc = proc; parent.SetAutoClose(); autoExitTimer.Enabled = true; } + autoexit = false; } else { @@ -209,6 +235,7 @@ namespace MeshCentralRouter // Setup auto-exit if ((autoexit == true) && (parent.autoExitProc == null)) { parent.autoExitProc = proc; parent.SetAutoClose(); autoExitTimer.Enabled = true; } + autoexit = false; } } } @@ -226,6 +253,7 @@ namespace MeshCentralRouter // Setup auto-exit if ((autoexit == true) && (parent.autoExitProc == null)) { parent.autoExitProc = proc; parent.SetAutoClose(); autoExitTimer.Enabled = true; } + autoexit = false; } else { @@ -246,6 +274,7 @@ namespace MeshCentralRouter // Setup auto-exit if ((autoexit == true) && (parent.autoExitProc == null)) { parent.autoExitProc = proc; parent.SetAutoClose(); autoExitTimer.Enabled = true; } + autoexit = false; } } } diff --git a/MeshCentralRouter.csproj b/MeshCentralRouter.csproj index cf4c028..1f8c4d3 100644 --- a/MeshCentralRouter.csproj +++ b/MeshCentralRouter.csproj @@ -94,6 +94,24 @@ AddRelayMapForm.cs + + Form + + + CustomAppsAddForm.cs + + + Form + + + CustomAppsForm.cs + + + Form + + + CustomAppsRunForm.cs + Form @@ -274,6 +292,15 @@ AddRelayMapForm.cs + + CustomAppsAddForm.cs + + + CustomAppsForm.cs + + + CustomAppsRunForm.cs + FileConfirmOverwriteForm.cs diff --git a/Settings.cs b/Settings.cs index 27583fc..f21fa91 100644 --- a/Settings.cs +++ b/Settings.cs @@ -15,6 +15,7 @@ limitations under the License. */ using Microsoft.Win32; +using System.Collections.Generic; using System; namespace MeshCentralRouter @@ -53,5 +54,53 @@ namespace MeshCentralRouter { try { return bool.Parse(GetRegValue(name, value.ToString())); } catch (Exception) { return value; } } + + public static void SetApplications(List apps) + { + ClearApplications(); + using (RegistryKey key = Registry.CurrentUser.CreateSubKey(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router\Applications", true)) + { + foreach (string[] app in apps) + { + using (RegistryKey skey = key.CreateSubKey(app[0])) + { + skey.SetValue("Protocol", app[1]); + skey.SetValue("Command", app[2]); + } + } + } + } + + public static List GetApplications() + { + List apps = new List(); + using (RegistryKey key = Registry.CurrentUser.CreateSubKey(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router\Applications\", false)) + { + string[] keys = key.GetSubKeyNames(); + foreach (string k in keys) + { + using (RegistryKey key2 = Registry.CurrentUser.OpenSubKey(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router\Applications\" + k, false)) + { + string protocol = (string)key2.GetValue("Protocol"); + string command = (string)key2.GetValue("Command"); + String[] a = new string[3]; + a[0] = k; + a[1] = protocol; + a[2] = command; + apps.Add(a); + } + } + } + return apps; + } + + //public static void DeleteSubKeyTree(RegistryKey key, string subkey) { if (key.OpenSubKey(subkey) == null) { return; } DeleteSubKeyTree(key, subkey); } + + public static void ClearApplications() + { + RegistryKey key = Registry.CurrentUser.CreateSubKey(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router", true); + key.DeleteSubKeyTree("Applications"); + key.Close(); + } } } From 957bdb2648de77fd832804fa044fbaead1eab28c Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Thu, 12 May 2022 17:10:21 -0700 Subject: [PATCH 07/10] Added edit/run buttons on custom apps. --- CustomAppsForm.Designer.cs | 28 ++++++++++++++++++++++++++++ CustomAppsForm.cs | 1 + CustomAppsRunForm.Designer.cs | 1 + 3 files changed, 30 insertions(+) diff --git a/CustomAppsForm.Designer.cs b/CustomAppsForm.Designer.cs index a270a76..e124ecd 100644 --- a/CustomAppsForm.Designer.cs +++ b/CustomAppsForm.Designer.cs @@ -46,6 +46,8 @@ this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editButton = new System.Windows.Forms.Button(); + this.runButton = new System.Windows.Forms.Button(); this.groupBox1.SuspendLayout(); this.appContextMenuStrip.SuspendLayout(); this.SuspendLayout(); @@ -90,6 +92,8 @@ this.groupBox1.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.groupBox1.Controls.Add(this.runButton); + this.groupBox1.Controls.Add(this.editButton); this.groupBox1.Controls.Add(this.removeButton); this.groupBox1.Controls.Add(this.addButton); this.groupBox1.Controls.Add(this.mainListView); @@ -201,6 +205,28 @@ this.addToolStripMenuItem.Text = "&Add..."; this.addToolStripMenuItem.Click += new System.EventHandler(this.addButton_Click); // + // editButton + // + this.editButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.editButton.Location = new System.Drawing.Point(137, 185); + this.editButton.Name = "editButton"; + this.editButton.Size = new System.Drawing.Size(75, 23); + this.editButton.TabIndex = 3; + this.editButton.Text = "Edit..."; + this.editButton.UseVisualStyleBackColor = true; + this.editButton.Click += new System.EventHandler(this.editToolStripMenuItem_Click); + // + // runButton + // + this.runButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.runButton.Location = new System.Drawing.Point(56, 185); + this.runButton.Name = "runButton"; + this.runButton.Size = new System.Drawing.Size(75, 23); + this.runButton.TabIndex = 4; + this.runButton.Text = "Run..."; + this.runButton.UseVisualStyleBackColor = true; + this.runButton.Click += new System.EventHandler(this.runToolStripMenuItem_Click); + // // CustomAppsForm // this.AcceptButton = this.okButton; @@ -244,5 +270,7 @@ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; + private System.Windows.Forms.Button editButton; + private System.Windows.Forms.Button runButton; } } \ No newline at end of file diff --git a/CustomAppsForm.cs b/CustomAppsForm.cs index ad08834..6403d6d 100644 --- a/CustomAppsForm.cs +++ b/CustomAppsForm.cs @@ -78,6 +78,7 @@ namespace MeshCentralRouter private void UpdateInfo() { removeButton.Enabled = (mainListView.SelectedItems.Count > 0); + runButton.Enabled = editButton.Enabled = (mainListView.SelectedItems.Count == 1); } private void removeButton_Click(object sender, EventArgs e) diff --git a/CustomAppsRunForm.Designer.cs b/CustomAppsRunForm.Designer.cs index 5d4bd43..0886598 100644 --- a/CustomAppsRunForm.Designer.cs +++ b/CustomAppsRunForm.Designer.cs @@ -168,6 +168,7 @@ this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "CustomAppsRunForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Test Application"; this.Load += new System.EventHandler(this.CustomAppsRunForm_Load); this.groupBox1.ResumeLayout(false); From f6c44b1d427a91711d10b0ff06c23da891dce283 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Fri, 13 May 2022 00:06:58 -0700 Subject: [PATCH 08/10] Fixed custom apps. --- CustomAppsAddForm.Designer.cs | 71 ++++++++++++++++++++----------- CustomAppsAddForm.cs | 15 +++---- CustomAppsForm.cs | 48 ++++++++++++--------- CustomAppsRunForm.Designer.cs | 80 ++++++++++++++++++++++++++++------- CustomAppsRunForm.cs | 11 +++-- MapUserControl.cs | 11 ++--- Settings.cs | 7 +-- 7 files changed, 162 insertions(+), 81 deletions(-) diff --git a/CustomAppsAddForm.Designer.cs b/CustomAppsAddForm.Designer.cs index 19f68e9..9159380 100644 --- a/CustomAppsAddForm.Designer.cs +++ b/CustomAppsAddForm.Designer.cs @@ -38,9 +38,11 @@ this.commandTextBox = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.label4 = new System.Windows.Forms.Label(); this.selectFileButton = new System.Windows.Forms.Button(); + this.label4 = new System.Windows.Forms.Label(); this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.label5 = new System.Windows.Forms.Label(); + this.argsTextBox = new System.Windows.Forms.TextBox(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // @@ -48,7 +50,7 @@ // this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.okButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.okButton.Location = new System.Drawing.Point(244, 160); + this.okButton.Location = new System.Drawing.Point(244, 190); this.okButton.Name = "okButton"; this.okButton.Size = new System.Drawing.Size(75, 23); this.okButton.TabIndex = 4; @@ -61,7 +63,7 @@ this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.cancelButton.Location = new System.Drawing.Point(325, 160); + this.cancelButton.Location = new System.Drawing.Point(325, 190); this.cancelButton.Name = "cancelButton"; this.cancelButton.Size = new System.Drawing.Size(75, 23); this.cancelButton.TabIndex = 5; @@ -116,14 +118,17 @@ this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(6, 74); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(54, 13); + this.label3.Size = new System.Drawing.Size(85, 13); this.label3.TabIndex = 10; - this.label3.Text = "Command"; + this.label3.Text = "Executable Path"; // // groupBox1 // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + this.groupBox1.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.groupBox1.Controls.Add(this.label5); + this.groupBox1.Controls.Add(this.argsTextBox); this.groupBox1.Controls.Add(this.selectFileButton); this.groupBox1.Controls.Add(this.nameTextBox); this.groupBox1.Controls.Add(this.label3); @@ -131,29 +136,16 @@ this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.protocolTextBox); this.groupBox1.Controls.Add(this.label1); - this.groupBox1.Location = new System.Drawing.Point(12, 56); + this.groupBox1.Location = new System.Drawing.Point(12, 57); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(388, 98); + this.groupBox1.Size = new System.Drawing.Size(388, 127); this.groupBox1.TabIndex = 12; this.groupBox1.TabStop = false; this.groupBox1.Text = "Application"; - // - // label4 - // - this.label4.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.label4.Location = new System.Drawing.Point(12, 9); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(388, 44); - this.label4.TabIndex = 13; - this.label4.Text = "Enter a friendly name, protocol (like HTTP, RDP, VNC) and the command line and ar" + - "guments to run the application. In the command line, use %L for address and %P f" + - "or connection port."; // // selectFileButton // - this.selectFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.selectFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.selectFileButton.Location = new System.Drawing.Point(360, 71); this.selectFileButton.Name = "selectFileButton"; this.selectFileButton.Size = new System.Drawing.Size(21, 20); @@ -161,20 +153,49 @@ this.selectFileButton.Text = "..."; this.selectFileButton.UseVisualStyleBackColor = true; this.selectFileButton.Click += new System.EventHandler(this.selectFileButton_Click); + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label4.Location = new System.Drawing.Point(12, 9); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(388, 45); + this.label4.TabIndex = 13; + this.label4.Text = "Enter a friendly name, protocol (like HTTP, RDP, VNC) and the command line and ar" + + "guments to run the application. In the arguments, use %L for address, %P for con" + + "nection port and %N for computer name."; // // openFileDialog // this.openFileDialog.DefaultExt = "exe"; - this.openFileDialog.Filter = "Executable|*.exe"; + this.openFileDialog.Filter = "Executable|*.exe|All Files|*.*"; this.openFileDialog.Title = "Select Application Executable"; // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(6, 100); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(57, 13); + this.label5.TabIndex = 13; + this.label5.Text = "Arguments"; + // + // argsTextBox + // + this.argsTextBox.Location = new System.Drawing.Point(116, 97); + this.argsTextBox.Name = "argsTextBox"; + this.argsTextBox.Size = new System.Drawing.Size(265, 20); + this.argsTextBox.TabIndex = 14; + this.argsTextBox.TextChanged += new System.EventHandler(this.nameTextBox_TextChanged); + // // CustomAppsAddForm // this.AcceptButton = this.okButton; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.cancelButton; - this.ClientSize = new System.Drawing.Size(412, 195); + this.ClientSize = new System.Drawing.Size(412, 225); this.Controls.Add(this.label4); this.Controls.Add(this.groupBox1); this.Controls.Add(this.okButton); @@ -207,5 +228,7 @@ private System.Windows.Forms.Label label4; private System.Windows.Forms.Button selectFileButton; private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox argsTextBox; } } \ No newline at end of file diff --git a/CustomAppsAddForm.cs b/CustomAppsAddForm.cs index 07ca7cb..136fa48 100644 --- a/CustomAppsAddForm.cs +++ b/CustomAppsAddForm.cs @@ -1,11 +1,5 @@ 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.IO; using System.Windows.Forms; namespace MeshCentralRouter @@ -27,6 +21,11 @@ namespace MeshCentralRouter get { return commandTextBox.Text; } set { commandTextBox.Text = value; updateInfo(); } } + public string appArgs + { + get { return argsTextBox.Text; } + set { argsTextBox.Text = value; updateInfo(); } + } public CustomAppsAddForm() { @@ -35,7 +34,7 @@ namespace MeshCentralRouter public void updateInfo() { - okButton.Enabled = (nameTextBox.Text.Length > 0) && (protocolTextBox.Text.Length > 0) && (commandTextBox.Text.Length > 0) && (nameTextBox.Text.IndexOf(' ') == -1) && (protocolTextBox.Text.IndexOf(' ') == -1); + okButton.Enabled = (nameTextBox.Text.Length > 0) && (protocolTextBox.Text.Length > 0) && (commandTextBox.Text.Length > 0) && (nameTextBox.Text.IndexOf(' ') == -1) && (protocolTextBox.Text.IndexOf(' ') == -1) && (File.Exists(commandTextBox.Text)); } private void CustomAppsAddForm_Load(object sender, EventArgs e) diff --git a/CustomAppsForm.cs b/CustomAppsForm.cs index 6403d6d..11530dd 100644 --- a/CustomAppsForm.cs +++ b/CustomAppsForm.cs @@ -1,13 +1,8 @@ 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; using System.Diagnostics; +using System.Windows.Forms; +using System.ComponentModel; +using System.Collections.Generic; namespace MeshCentralRouter { @@ -23,7 +18,17 @@ namespace MeshCentralRouter private void CustomAppsForm_Load(object sender, EventArgs e) { - if (apps != null) { foreach (string[] app in apps) { mainListView.Items.Add(new ListViewItem(app)); } } + if (apps != null) { + foreach (string[] app in apps) { + string[] x = new string[5]; + x[0] = app[0]; + x[1] = app[1]; + x[2] = "\"" + app[2] + "\" " + app[3]; + x[3] = app[2]; + x[4] = app[3]; + mainListView.Items.Add(new ListViewItem(x)); + } + } UpdateInfo(); } @@ -32,10 +37,11 @@ namespace MeshCentralRouter List r = new List(); foreach (ListViewItem l in mainListView.Items) { - string[] x = new string[3]; + string[] x = new string[4]; x[0] = l.SubItems[0].Text; x[1] = l.SubItems[1].Text.ToLower(); - x[2] = l.SubItems[2].Text; + x[2] = l.SubItems[3].Text; + x[3] = l.SubItems[4].Text; r.Add(x); } return r; @@ -52,10 +58,12 @@ namespace MeshCentralRouter foreach (ListViewItem l in list) { mainListView.Items.Remove(l); } // Add the new protocol - string[] x = new string[3]; + string[] x = new string[5]; x[0] = f.appName; x[1] = f.appProtocol.ToLower(); - x[2] = f.appCommand; + x[2] = "\"" + f.appCommand + "\" " + f.appArgs; + x[3] = f.appCommand; + x[4] = f.appArgs; mainListView.Items.Add(new ListViewItem(x)); } } @@ -99,8 +107,8 @@ namespace MeshCentralRouter { if (mainListView.SelectedItems.Count != 1) return; ListViewItem i = mainListView.SelectedItems[0]; - CustomAppsRunForm f = new CustomAppsRunForm(i.SubItems[2].Text); - if (f.ShowDialog(this) == DialogResult.OK) { Process.Start(f.getFinalCommand()); } + CustomAppsRunForm f = new CustomAppsRunForm(i.SubItems[3].Text, i.SubItems[4].Text); + if (f.ShowDialog(this) == DialogResult.OK) { Process.Start(i.SubItems[3].Text, f.getFinalArgs()); } } private void editToolStripMenuItem_Click(object sender, EventArgs e) @@ -110,7 +118,8 @@ namespace MeshCentralRouter CustomAppsAddForm f = new CustomAppsAddForm(); f.appName = i.SubItems[0].Text; f.appProtocol = i.SubItems[1].Text; - f.appCommand = i.SubItems[2].Text; + f.appCommand = i.SubItems[3].Text; + f.appArgs = i.SubItems[4].Text; if (f.ShowDialog(this) == DialogResult.OK) { // Remove any matching protocol @@ -119,13 +128,14 @@ namespace MeshCentralRouter foreach (ListViewItem l in list) { mainListView.Items.Remove(l); } // Add the new protocol - string[] x = new string[3]; + string[] x = new string[5]; x[0] = f.appName; x[1] = f.appProtocol.ToLower(); - x[2] = f.appCommand; + x[2] = "\"" + f.appCommand + "\" " + f.appArgs; + x[3] = f.appCommand; + x[4] = f.appArgs; mainListView.Items.Add(new ListViewItem(x)); } - } } } diff --git a/CustomAppsRunForm.Designer.cs b/CustomAppsRunForm.Designer.cs index 0886598..3dc16e6 100644 --- a/CustomAppsRunForm.Designer.cs +++ b/CustomAppsRunForm.Designer.cs @@ -39,6 +39,10 @@ this.okButton = new System.Windows.Forms.Button(); this.cancelButton = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); + this.argsTextBox = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.nameTextBox = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // @@ -47,6 +51,10 @@ this.groupBox1.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.groupBox1.Controls.Add(this.nameTextBox); + this.groupBox1.Controls.Add(this.label6); + this.groupBox1.Controls.Add(this.argsTextBox); + this.groupBox1.Controls.Add(this.label5); this.groupBox1.Controls.Add(this.portTextBox); this.groupBox1.Controls.Add(this.label4); this.groupBox1.Controls.Add(this.addressTextBox); @@ -55,16 +63,16 @@ this.groupBox1.Controls.Add(this.label2); this.groupBox1.Location = new System.Drawing.Point(12, 49); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(382, 101); + this.groupBox1.Size = new System.Drawing.Size(382, 155); this.groupBox1.TabIndex = 0; this.groupBox1.TabStop = false; - this.groupBox1.Text = "Application Command Line"; + this.groupBox1.Text = "Application Command"; // // portTextBox // this.portTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.portTextBox.Location = new System.Drawing.Point(116, 71); + this.portTextBox.Location = new System.Drawing.Point(116, 97); this.portTextBox.Name = "portTextBox"; this.portTextBox.Size = new System.Drawing.Size(260, 20); this.portTextBox.TabIndex = 13; @@ -74,17 +82,17 @@ // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(6, 74); + this.label4.Location = new System.Drawing.Point(6, 100); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(26, 13); + this.label4.Size = new System.Drawing.Size(44, 13); this.label4.TabIndex = 12; - this.label4.Text = "Port"; + this.label4.Text = "Port %P"; // // addressTextBox // this.addressTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.addressTextBox.Location = new System.Drawing.Point(116, 45); + this.addressTextBox.Location = new System.Drawing.Point(116, 71); this.addressTextBox.Name = "addressTextBox"; this.addressTextBox.Size = new System.Drawing.Size(260, 20); this.addressTextBox.TabIndex = 11; @@ -94,11 +102,11 @@ // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(6, 48); + this.label3.Location = new System.Drawing.Point(6, 74); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(45, 13); + this.label3.Size = new System.Drawing.Size(62, 13); this.label3.TabIndex = 10; - this.label3.Text = "Address"; + this.label3.Text = "Address %L"; // // commandTextBox // @@ -122,7 +130,7 @@ // okButton // this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.okButton.Location = new System.Drawing.Point(238, 156); + this.okButton.Location = new System.Drawing.Point(238, 210); this.okButton.Name = "okButton"; this.okButton.Size = new System.Drawing.Size(75, 23); this.okButton.TabIndex = 3; @@ -134,7 +142,7 @@ // this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelButton.Location = new System.Drawing.Point(319, 156); + this.cancelButton.Location = new System.Drawing.Point(319, 210); this.cancelButton.Name = "cancelButton"; this.cancelButton.Size = new System.Drawing.Size(75, 23); this.cancelButton.TabIndex = 2; @@ -150,8 +158,46 @@ this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(382, 35); this.label1.TabIndex = 4; - this.label1.Text = "Test that the application runs correctly by specifying and address and port and c" + - "lick ok to run the application."; + this.label1.Text = "Test that the application runs correctly by specifying and address, port and name" + + ". Then click ok to run the application."; + // + // argsTextBox + // + this.argsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.argsTextBox.Location = new System.Drawing.Point(116, 45); + this.argsTextBox.Name = "argsTextBox"; + this.argsTextBox.ReadOnly = true; + this.argsTextBox.Size = new System.Drawing.Size(260, 20); + this.argsTextBox.TabIndex = 15; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(6, 48); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(57, 13); + this.label5.TabIndex = 14; + this.label5.Text = "Arguments"; + // + // nameTextBox + // + this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nameTextBox.Location = new System.Drawing.Point(116, 123); + this.nameTextBox.Name = "nameTextBox"; + this.nameTextBox.Size = new System.Drawing.Size(260, 20); + this.nameTextBox.TabIndex = 17; + this.nameTextBox.Text = "MyComputer"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(6, 126); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(54, 13); + this.label6.TabIndex = 16; + this.label6.Text = "Name %N"; // // CustomAppsRunForm // @@ -159,7 +205,7 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.cancelButton; - this.ClientSize = new System.Drawing.Size(406, 191); + this.ClientSize = new System.Drawing.Size(406, 245); this.Controls.Add(this.label1); this.Controls.Add(this.okButton); this.Controls.Add(this.cancelButton); @@ -189,5 +235,9 @@ private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox commandTextBox; private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox argsTextBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox nameTextBox; + private System.Windows.Forms.Label label6; } } \ No newline at end of file diff --git a/CustomAppsRunForm.cs b/CustomAppsRunForm.cs index a3862a2..647c572 100644 --- a/CustomAppsRunForm.cs +++ b/CustomAppsRunForm.cs @@ -13,21 +13,24 @@ namespace MeshCentralRouter public partial class CustomAppsRunForm : Form { private string command = null; + private string args = null; - public CustomAppsRunForm(string command) + public CustomAppsRunForm(string command, string args) { this.command = command; + this.args = args; InitializeComponent(); } - public string getFinalCommand() + public string getFinalArgs() { - return command.Replace("%L", addressTextBox.Text).Replace("%P", portTextBox.Text); + return args.Replace("%L", addressTextBox.Text).Replace("%P", portTextBox.Text).Replace("%N", nameTextBox.Text); } public void UpdateInfo() { - commandTextBox.Text = getFinalCommand(); + commandTextBox.Text = command; + argsTextBox.Text = getFinalArgs(); } private void addressTextBox_TextChanged(object sender, EventArgs e) diff --git a/MapUserControl.cs b/MapUserControl.cs index 70bd89e..a1c75be 100644 --- a/MapUserControl.cs +++ b/MapUserControl.cs @@ -131,18 +131,13 @@ namespace MeshCentralRouter { if (appIdStr == null) return; string appCmd = null; - List apps = Settings.GetApplications(); - foreach (String[] app in apps) { if (app[1].ToLower() == appIdStr.ToLower()) { appCmd = app[2]; } } - appCmd = appCmd.Replace("%P", mapper.localport.ToString()).Replace("%L", "127.0.0.1"); string appArgs = null; - int i = appCmd.IndexOf(' '); - if (i >= 0) { appArgs = appCmd.Substring(i + 1); appCmd = appCmd.Substring(0, i); } - if (appCmd != null) - { + List apps = Settings.GetApplications(); + foreach (String[] app in apps) { if (app[1].ToLower() == appIdStr.ToLower()) { appCmd = app[2]; if (app[3] != null) { appArgs = app[3].Replace("%P", mapper.localport.ToString()).Replace("%L", "127.0.0.1").Replace("%N", "xxx"); } } } + if (appCmd != null) { // Launch the process System.Diagnostics.Process proc = null; try { proc = System.Diagnostics.Process.Start(appCmd, appArgs); } catch (System.ComponentModel.Win32Exception) { } - // Setup auto-exit if ((autoexit == true) && (parent.autoExitProc == null)) { parent.autoExitProc = proc; parent.SetAutoClose(); autoExitTimer.Enabled = true; } autoexit = false; diff --git a/Settings.cs b/Settings.cs index f21fa91..a19886d 100644 --- a/Settings.cs +++ b/Settings.cs @@ -66,6 +66,7 @@ namespace MeshCentralRouter { skey.SetValue("Protocol", app[1]); skey.SetValue("Command", app[2]); + skey.SetValue("Arguments", app[3]); } } } @@ -83,10 +84,12 @@ namespace MeshCentralRouter { string protocol = (string)key2.GetValue("Protocol"); string command = (string)key2.GetValue("Command"); - String[] a = new string[3]; + string args = (string)key2.GetValue("Arguments"); + String[] a = new string[4]; a[0] = k; a[1] = protocol; a[2] = command; + a[3] = args; apps.Add(a); } } @@ -94,8 +97,6 @@ namespace MeshCentralRouter return apps; } - //public static void DeleteSubKeyTree(RegistryKey key, string subkey) { if (key.OpenSubKey(subkey) == null) { return; } DeleteSubKeyTree(key, subkey); } - public static void ClearApplications() { RegistryKey key = Registry.CurrentUser.CreateSubKey(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router", true); From 40f8a7e663076091c3f4bdc2dec62bcd7eddefd7 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Mon, 16 May 2022 16:51:16 -0700 Subject: [PATCH 09/10] Added support for mapping name in URL. --- MainForm.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/MainForm.cs b/MainForm.cs index 3c7d9d0..f8da223 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -29,6 +29,7 @@ using System.Security.Cryptography.X509Certificates; using Microsoft.Win32; using System.Drawing; using System.Text; +using System.Web; namespace MeshCentralRouter { @@ -268,6 +269,7 @@ namespace MeshCentralRouter // Set automatic port map values if (authLoginUrl != null) { + string autoName = null; string autoNodeId = null; string autoRemoteIp = null; int autoRemotePort = 0; @@ -279,6 +281,7 @@ namespace MeshCentralRouter try { // Automatic mappings + autoName = getValueFromQueryString(authLoginUrl.Query, "name"); autoNodeId = getValueFromQueryString(authLoginUrl.Query, "nodeid"); autoRemoteIp = getValueFromQueryString(authLoginUrl.Query, "remoteip"); int.TryParse(getValueFromQueryString(authLoginUrl.Query, "remoteport"), out autoRemotePort); @@ -293,6 +296,7 @@ namespace MeshCentralRouter if (((autoRemotePort != 0) && (autoProtocol != 0) && (autoNodeId != null)) || ((autoNodeId != null) && ((autoAppId == 6) || (autoAppId == 7)))) { Dictionary map = new Dictionary(); + if (autoName != null) { map.Add("name", HttpUtility.UrlDecode(autoName)); } map.Add("nodeId", autoNodeId); if (autoRemoteIp != null) { map.Add("remoteIP", autoRemoteIp); } map.Add("remotePort", autoRemotePort); From 84502d94230734e14ab3cffce38dd180041889bf Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Wed, 18 May 2022 13:36:21 -0700 Subject: [PATCH 10/10] Fixed mapping name when passing the URL thru a named pipe. --- MainForm.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MainForm.cs b/MainForm.cs index f8da223..99168cd 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -1023,6 +1023,7 @@ namespace MeshCentralRouter // Set automatic port map values if (authLoginUrl2 != null) { + string autoName = null; string autoNodeId = null; string autoRemoteIp = null; int autoRemotePort = 0; @@ -1034,6 +1035,7 @@ namespace MeshCentralRouter try { // Automatic mappings + autoName = getValueFromQueryString(authLoginUrl.Query, "name"); autoNodeId = getValueFromQueryString(authLoginUrl2.Query, "nodeid"); autoRemoteIp = getValueFromQueryString(authLoginUrl2.Query, "remoteip"); int.TryParse(getValueFromQueryString(authLoginUrl2.Query, "remoteport"), out autoRemotePort); @@ -1048,6 +1050,7 @@ namespace MeshCentralRouter if (((autoRemotePort != 0) && (autoProtocol != 0) && (autoNodeId != null)) || ((autoNodeId != null) && ((autoAppId == 6) || (autoAppId == 7)))) { Dictionary map = new Dictionary(); + if (autoName != null) { map.Add("name", HttpUtility.UrlDecode(autoName)); } map.Add("nodeId", autoNodeId); if (autoRemoteIp != null) { map.Add("remoteIP", autoRemoteIp); } map.Add("remotePort", autoRemotePort);