From 1e83160bc12494c94a5a8018aeb35d9ef5622fd0 Mon Sep 17 00:00:00 2001 From: j502647092 Date: Tue, 4 Aug 2015 20:24:58 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B0=94=E6=B3=A1=E6=8F=90=E7=A4=BA=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=AC=E5=9C=B0=E7=99=BB=E5=BD=95=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BF=9C=E7=A8=8B=E5=B9=BF=E6=92=AD...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SixiBroadcast.sln | 28 + SixiBroadcast.vsdx | Bin 0 -> 43447 bytes UDPClient/Frm_Client.Designer.cs | 122 ++++ UDPClient/Frm_Client.cs | 141 ++++ UDPClient/Frm_Client.resx | 726 +++++++++++++++++++++ UDPClient/Program.cs | 21 + UDPClient/Properties/AssemblyInfo.cs | 36 + UDPClient/Properties/Resources.Designer.cs | 63 ++ UDPClient/Properties/Resources.resx | 117 ++++ UDPClient/Properties/Settings.Designer.cs | 26 + UDPClient/Properties/Settings.settings | 7 + UDPClient/UDPClient.csproj | 96 +++ UDPClient/clear.ico | Bin 0 -> 17798 bytes UDPClient/icon.ico | Bin 0 -> 17798 bytes UDPServer/Frm_Server.Designer.cs | 120 ++++ UDPServer/Frm_Server.cs | 76 +++ UDPServer/Frm_Server.resx | 120 ++++ UDPServer/Program.cs | 21 + UDPServer/Properties/AssemblyInfo.cs | 36 + UDPServer/Properties/Resources.Designer.cs | 63 ++ UDPServer/Properties/Resources.resx | 117 ++++ UDPServer/Properties/Settings.Designer.cs | 26 + UDPServer/Properties/Settings.settings | 7 + UDPServer/UDPServer.csproj | 88 +++ clear.ico | Bin 0 -> 17798 bytes icon.ico | Bin 0 -> 17798 bytes 26 files changed, 2057 insertions(+) create mode 100644 SixiBroadcast.sln create mode 100644 SixiBroadcast.vsdx create mode 100644 UDPClient/Frm_Client.Designer.cs create mode 100644 UDPClient/Frm_Client.cs create mode 100644 UDPClient/Frm_Client.resx create mode 100644 UDPClient/Program.cs create mode 100644 UDPClient/Properties/AssemblyInfo.cs create mode 100644 UDPClient/Properties/Resources.Designer.cs create mode 100644 UDPClient/Properties/Resources.resx create mode 100644 UDPClient/Properties/Settings.Designer.cs create mode 100644 UDPClient/Properties/Settings.settings create mode 100644 UDPClient/UDPClient.csproj create mode 100644 UDPClient/clear.ico create mode 100644 UDPClient/icon.ico create mode 100644 UDPServer/Frm_Server.Designer.cs create mode 100644 UDPServer/Frm_Server.cs create mode 100644 UDPServer/Frm_Server.resx create mode 100644 UDPServer/Program.cs create mode 100644 UDPServer/Properties/AssemblyInfo.cs create mode 100644 UDPServer/Properties/Resources.Designer.cs create mode 100644 UDPServer/Properties/Resources.resx create mode 100644 UDPServer/Properties/Settings.Designer.cs create mode 100644 UDPServer/Properties/Settings.settings create mode 100644 UDPServer/UDPServer.csproj create mode 100644 clear.ico create mode 100644 icon.ico diff --git a/SixiBroadcast.sln b/SixiBroadcast.sln new file mode 100644 index 0000000..32d538c --- /dev/null +++ b/SixiBroadcast.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UDPServer", "UDPServer\UDPServer.csproj", "{3776C1C2-B676-458C-8EC8-4380892FB1E0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UDPClient", "UDPClient\UDPClient.csproj", "{69C59230-BE16-4E03-8948-664F78D85698}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3776C1C2-B676-458C-8EC8-4380892FB1E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3776C1C2-B676-458C-8EC8-4380892FB1E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3776C1C2-B676-458C-8EC8-4380892FB1E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3776C1C2-B676-458C-8EC8-4380892FB1E0}.Release|Any CPU.Build.0 = Release|Any CPU + {69C59230-BE16-4E03-8948-664F78D85698}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69C59230-BE16-4E03-8948-664F78D85698}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69C59230-BE16-4E03-8948-664F78D85698}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69C59230-BE16-4E03-8948-664F78D85698}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SixiBroadcast.vsdx b/SixiBroadcast.vsdx new file mode 100644 index 0000000000000000000000000000000000000000..fa4c979ecacb154f5dae1ca6e12b537589266c6b GIT binary patch literal 43447 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 literal 0 HcmV?d00001 diff --git a/UDPClient/Frm_Client.Designer.cs b/UDPClient/Frm_Client.Designer.cs new file mode 100644 index 0000000..118661a --- /dev/null +++ b/UDPClient/Frm_Client.Designer.cs @@ -0,0 +1,122 @@ +namespace UDPClient +{ + partial class Frm_Client + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 窗体设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Frm_Client)); + this.portT = new System.Windows.Forms.TextBox(); + this.listen = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.msgbox = new System.Windows.Forms.ListBox(); + this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components); + this.SuspendLayout(); + // + // portT + // + this.portT.Location = new System.Drawing.Point(71, 13); + this.portT.Name = "portT"; + this.portT.Size = new System.Drawing.Size(161, 21); + this.portT.TabIndex = 0; + this.portT.Text = "25333"; + // + // listen + // + this.listen.Location = new System.Drawing.Point(238, 11); + this.listen.Name = "listen"; + this.listen.Size = new System.Drawing.Size(42, 23); + this.listen.TabIndex = 2; + this.listen.Text = "监听"; + this.listen.UseVisualStyleBackColor = true; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 16); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(53, 12); + this.label2.TabIndex = 6; + this.label2.Text = "广播端口"; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(196, 40); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(84, 23); + this.button2.TabIndex = 8; + this.button2.Text = "闪烁测试"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // msgbox + // + this.msgbox.FormattingEnabled = true; + this.msgbox.ItemHeight = 12; + this.msgbox.Location = new System.Drawing.Point(14, 79); + this.msgbox.Name = "msgbox"; + this.msgbox.Size = new System.Drawing.Size(266, 184); + this.msgbox.TabIndex = 10; + // + // notifyIcon + // + this.notifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon.Icon"))); + this.notifyIcon.Text = "四喜消息提示"; + this.notifyIcon.Visible = true; + this.notifyIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon_MouseDoubleClick); + // + // Frm_Client + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(292, 273); + this.Controls.Add(this.msgbox); + this.Controls.Add(this.button2); + this.Controls.Add(this.label2); + this.Controls.Add(this.listen); + this.Controls.Add(this.portT); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "Frm_Client"; + this.Text = "客户端"; + this.Load += new System.EventHandler(this.Frm_Client_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox portT; + private System.Windows.Forms.Button listen; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.ListBox msgbox; + private System.Windows.Forms.NotifyIcon notifyIcon; + } +} + diff --git a/UDPClient/Frm_Client.cs b/UDPClient/Frm_Client.cs new file mode 100644 index 0000000..d957908 --- /dev/null +++ b/UDPClient/Frm_Client.cs @@ -0,0 +1,141 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using System.Windows.Forms; + +namespace UDPClient +{ + public partial class Frm_Client : Form + { + Icon ico1 = new Icon("icon.ico"); + Icon ico2 = new Icon("clear.ico"); + bool is1; + bool isTwinkle; + static UdpClient client; + static IPEndPoint endpoint; + static System.Windows.Forms.Timer tmr = new System.Windows.Forms.Timer(); + + public Frm_Client() + { + InitializeComponent(); + } + + private void Frm_Client_Load(object sender, EventArgs e) + { + client = new UdpClient(new IPEndPoint(IPAddress.Any, 25333)); + endpoint = new IPEndPoint(IPAddress.Any, 0); + //启动客户端监听 + Thread t = new Thread(new ThreadStart(ClientThread)); + t.Start(); + //启动Web监听 + Thread w = new Thread(new ThreadStart(WebListen)); + w.Start(); + //初始化Timer + tmr.Interval = 390; + tmr.Tick += tmr_Tick; + tmr.Enabled = true; + } + + void tmr_Tick(object sender, EventArgs e) + { + if (!isTwinkle) return; + if (is1) + { + is1 = false; + notifyIcon.Icon = ico2; + } + else + { + is1 = true; + notifyIcon.Icon = ico1; + } + } + public static IPAddress GetHostIP() + { + string strHostName = Dns.GetHostName(); //得到本机的主机名 + IPHostEntry ipEntry = Dns.GetHostEntry(strHostName); //取得本机IP + foreach (var item in ipEntry.AddressList) + { + if (!item.IsIPv6LinkLocal) + { + return item; + } + } + return null; + } + + private static void WebListen() + { + try + { + HttpListener listerner = new HttpListener(); + listerner.AuthenticationSchemes = AuthenticationSchemes.Anonymous;//指定身份验证 Anonymous匿名访问 + listerner.Prefixes.Add("http://127.0.0.1:25330/web/"); + listerner.Start(); + Console.WriteLine("WebServer Start Successed......."); + while (true) + { + //等待请求连接 + //没有请求则GetContext处于阻塞状态 + HttpListenerContext ctx = listerner.GetContext(); + ctx.Response.StatusCode = 200;//设置返回给客服端http状态代码 + string username = ctx.Request.QueryString["username"]; + if (username != null && username.Length > 0) + { + IPAddress addr = GetHostIP(); + string str = username + " " + (addr == null ? "null" : addr.ToString()) + " 25333"; + Console.WriteLine(str); + byte[] buf = Encoding.Default.GetBytes(str); + client.Send(buf, buf.Length, new IPEndPoint(IPAddress.Parse("127.0.0.1"), 25433)); + } + ctx.Response.Close(); + } + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + } + + private void ClientThread() + { + try + { + Console.WriteLine("客户端开始监听..."); + while (true) + { + byte[] buf = client.Receive(ref endpoint); + string msg = Encoding.Default.GetString(buf); + Console.WriteLine("收到数据: " + msg); + isTwinkle = true; + notifyIcon.ShowBalloonTip(1000,"四喜消息提示","您有新的提醒 请注意查收!",ToolTipIcon.Info); + } + } + catch (Exception e) + { + Console.WriteLine(e.Message); + client.Close(); + } + + } + + private void button2_Click(object sender, EventArgs e) + { + isTwinkle = !isTwinkle; + } + + private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e) + { + isTwinkle = false; + notifyIcon.Icon = ico1; + } + + } +} diff --git a/UDPClient/Frm_Client.resx b/UDPClient/Frm_Client.resx new file mode 100644 index 0000000..150a19a --- /dev/null +++ b/UDPClient/Frm_Client.resx @@ -0,0 +1,726 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAQAEBAAAAEACABoBQAARgAAADAwAAABACAAqCUAAK4FAAAgIAAAAQAgAKgQAABWKwAAGBgAAAEA + IACICQAA/jsAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA////AI1Q + CwDFdBsAxHARAMRxEQDDbg4AxHYeANSvhgASo/MAEaH0ABKi8wANofQAQKPgAL9qCwC+ZgAAvmQAAL9t + DgDRq4AAAprzAACZ8wABmvIAAJn0ADSc3gC9aAkAu2QAALxkAAC7YQAAvWsMANCqgAAAl/QAAJb0AACW + 9gAxmd8AumkQALplBQC6ZgUAumMFALttEwDPqoEAB5fyAAWW8wAGl/IABZb0ADeZ3gC/jlYAvIpQAL2K + TwC9iU4Av5FcAFKo4ABRp94AUqjfAFCn3wB0rtgAu3AeALlrFQC5axMAuWoSALViBQC0ZA0AsWYPAMVo + BwAXmPMAEpf2ABSY9gARl/cAQZvhALNkDACxXwIAsF8CALBgAwC2XwAAu14AALdgAAAGjPEAAov1AAOM + 9AABivUANJHfAK9jCwCtXQAArF4BALRYAAB6bVIASXycAEx6lQBYhKIAEZf4AAGH8wAAh/YAAIf1AACG + 9gAzjd8Aq2EKAKlcAACpWwAAplwCALJiDQBReJIAAIv/AACH/wAAg/QAAIX2AACE9QABhfQAAIT2ADOL + 3gCnXgsApFgAAKVYAACgWQUAK5LpAAOA8gABgvIAAIP3AACD9gAAgvQAAYP1AACB9gAziN4ApVwLAKJX + AACiWAAAnlgHABeT/wAEfvQABn3xAAd98AAFffEAAH31AAF99QAAfPYANIXeAKFbCwCfVQAAnlUAAJ1W + AwABevQAAHr1AAB49gAzgt8AnlgLAJxUAACbVQMAAnj0AAB29QABd/UAAHb2ADSA4ACdVwsAmVMAAJlS + AACYUwMAAnbzAAB29AABd/QAAHT1ADR/3wCbWAoAmFMCAAF19gAAc/YAAHL3ADV94QCISgAAh0kAAIdK + AwADaOAAAGbgAANn4AAAZOEANXXQALBsaQAoAAAAV2hpAGUAZQCcdGkAnHRpABQAAABXaGkASAcAABsA + AAAAAAAACAAAADAlIABoaXQAAKO0APBsaQAUCWgAQAAAADR4MgAUAAAAGwAAAAAAAAAKAAAAICAgACAg + NAAyMAAA9HRpAPR0aQAUAAAAMjIsAKAHAAAbAAAAAAAAAAsAAAAgICAAICAyACwzOACwbGkAsGxpACgA + AABXaGkAZQBlADR1aQA0dWkAFAAAAFdoaQDgBwAAGwAAAAAAAAAIAAAAMCUgAGhpdAAAo7QA8GxpABQJ + aABAAAAANHgyABQAAAAbAAAAAAAAAAoAAAAgICAAICA0ADIwAACMdWkAjHVpABQAAAAyMSwAOAgAABsA + AAAAAAAACwAAACAgIAAgIDIALDM4ALBsaQCwbGkAKAAAAFdoaQBlAGUAzHVpAMx1aQAUAAAAAqWlpqcA + AAAAAACoqaqrrJ+Xl5igAAAAAAAAoaKdo6SWl5iYmQAAAAAAAJqbnJ2ejo+Pj5AAAAAAAACRkpOUlYaH + iIeJAAAAAAAAiouKjI15ent7fAB9fn+AgYKCg4SFbG1tbm8AcHFycnN0dXZ3eF5fYF9hYhpkZWVmZ2hp + amtQUVFRUlMaVVZXWFlaW1xdREVFRkVHSElKAABLTE1OTzc4ODk6Ozw9PgAAP0BBQkMAAAAAAAAAAAAA + AAAAAAAAIhoaGhoaAAAAAAAoKSorLBgaGhoaGgAAAAAAHh4fICEOGhoaGhoAAAAAABMUFRYXGhoaGhoa + AAAAAAAJCgsMDQfgAAAH4AAAB+AAAAfgAAAH4AAABAAAAAQAAAAAAAAAAAAAAABgAAAAYAAA//8AAAPg + AAAD4AAAA+AAAAPgAAAoAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAlGU9/3tE + Bv9+QwD/fUIA/3pCAP96QwD/ekMA/3tCAP95QQD/ekEA/3pBAP95QQD/eUEA/3pAAP95SBL/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAC2TL/wRdyv8FXsr/BF7K/wJfyv8DXcv/BFzL/wRdy/8EX8z/BF7M/wNdy/8DXcv/A13M/wRb + x/9uiL7/rXY//5hUBv+VUwD/lFIA/5ZTAP+VUwD/llIA/5dSAP+WUgD/llIA/5ZSAP+UUgD/lVIA/5VR + AP+SVhL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + 9v8AfPb/AH31/wB99f8Affb/AH32/wB99v8Affb/AH72/wB99v8Affb/AH32/wB+9v8AffX/AX31/wN5 + 7/9uk8//tXo+/6NZBv+jWAD/o1gA/6NYAf+iWAH/olkA/6NZAP+iWQD/olkA/6JYAP+jWAD/o1gB/6JX + AP+dWxH/AAAAAAAAAAAAAAAAAAAAAECe9f8AfPT/AH/1/wB/9v8Af/b/AH/2/wB+9v8Af/b/AH72/wB/ + 9v8Af/b/AH/2/wB/9v8Afvb/AH/2/wB/9v8Af/b/AH/2/wB/9v8Af/b/AH/2/wB/9v8Af/b/AH/2/wB/ + 9v8Af/X/AH/1/wF77/9ulM7/tno+/6RbBv+lWQD/pFgA/6RZAf+kWQH/pFgB/6RZAf+kWQH/pFkB/6RY + Af+kWAH/pFkB/6NYAP+dXBD/AAAAAAAAAAAAAAAAAAAAAECf9f8AfPX/AH/1/wB/9v8Af/b/AH/2/wB/ + 9v8AgPb/AH/2/wB/9v8Af/b/AH/2/wB/9v8Af/b/AH/2/wB/9v8Af/b/AID2/wCA9v8Af/b/AH/2/wB/ + 9v8Af/b/AID2/wB/9v8AgPb/AID2/wB87/9tlM7/t3o+/6VbBv+lWQD/pVgA/6RZAP+kWQD/pFkA/6VY + AP+lWQD/pVkA/6VZAP+lWQD/pVgA/6VZAP+fXRH/AAAAAAAAAAAAAAAAAAAAAECg9f8Af/X/AIL1/wCC + 9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC + 9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC9v8AgvX/AYH1/wJ97/9ulc7/t3s+/6ZbBP+lWQD/pVkA/6VZ + AP+lWQD/pVkA/6VZAP+mWQD/plkA/6ZZAP+mWQD/pVkA/6VZAP+gXhH/AAAAAAAAAAAAAAAAAAAAAECi + 9v8AgfT/AIP1/wCE9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE + 9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE9v8AhPX/AIT1/wF+7/9tlc3/t3s+/6db + Bf+mWgD/ploA/6daAP+nWwD/p1sA/6dbAP+nWwD/p1sA/6dbAP+nWwD/p1oA/6haAP+hWwr/AAAAAAAA + AAAAAAAAAAAAADaP2v8AhPf/AIX1/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIX2/wCG9v8Ahvb/AIb2/wCG + 9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCA + 7v9tmM7/uXs+/6hdBP+oXAD/qFwA/6hbAP+oWwD/qFsA/6hbAP+oWwD/qFsA/6hbAP+oWwD/qFsA/6db + AP+nWwD/pFgA/6NWAP+jVgD/oFkL/zOAwv8Ahvj/AIX1/wCF9v8Ahfb/AIX2/wCF9v8Ahvb/AIb2/wCF + 9v8Ahfb/AIX2/wCF9v8Ahfb/AIb2/wCG9v8Ahfb/AIX2/wCF9v8Ahfb/AIX2/wCF9v8Ahfb/AIb2/wCF + 9v8Ahfb/AIX2/wCB7v9tmM7/unw9/6ldBP+qXQD/ql0A/6pcAP+qXQD/ql0B/6pdAf+qXQH/ql0B/6pd + Af+qXQH/qV0A/6ldAP+rXgD/q14B/6tdAP+rXQD/qV8P/zSCw/8Ah/j/AIb1/wCG9f8Ahvb/AIb2/wCG + 9v8Ahvb/AIb2/wCG9v8Ahvb/AIX2/wCG9v8Ahvb/AIX2/wCG9v8Ahvb/AIb2/wCF9v8Ahfb/AIX2/wCF + 9v8Ahfb/AIb2/wCG9v8Ahfb/AIb2/wGB7v9tmc3/un49/6xeBv+sXgH/rF4B/6xeAf+tXgD/rV4A/6xe + Af+tXgH/rF8B/61eAP+tXgH/rV4B/61fAf+tXgH/rF4B/61eAf+sXgD/q18P/zWCw/8Ah/j/AIf1/wCH + 9f8Ah/X/AIf1/wCH9v8Ah/b/AIf2/wCH9v8Ahvb/AIb2/wCG9v8Ah/b/AIb2/wCG9v8Ahvb/AIb2/wCG + 9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIf2/wGC7v9tmM3/u30+/6xfBv+tXwH/rV4A/61e + AP+sXgD/rV4A/61eAf+tXgH/rV4A/61eAf+tXgD/rV4B/61eAP+tXgH/rV4B/61eAf+tXQH/q2AR/zOD + xf8Ah/r/AIf3/wCH9/8Ah/f/AIf3/wCH9/8Ah/f/AIf3/wCG9f8AhfX/AIT1/wCE9f8AhfT/AIf1/wCI + 9v8Ah/b/AIf2/wCH9v8AiPb/AIf2/wCH9v8AiPb/AIf2/wCH9v8AiPX/AIn2/wKD7v9tmc7/vH4+/61f + Bf+tXgD/rV4A/61eAP+tXgD/rV4A/61eAP+tXgD/rV4A/61eAP+uXgD/rV4A/65eAP+tXgD/rl4A/61e + AP+uXQH/rGAO/1eEnv80isr/NYnI/zWJyP81icj/NYrI/zSKyP81icf/NI3P/0Gl8P9DpvP/Qqbz/0Sm + 8v83oPP/BYn0/wCG9f8AiPb/AIj2/wCI9v8AiPb/AIj2/wCI9v8AiPb/AIj2/wCI9v8AiPX/AIj2/wGE + 7/9tms7/vYA+/7BgBP+wXgD/sF4A/69dAP+vXQD/sF0A/69dAP+wXQD/r10A/69dAP+wXQD/sF0A/7Bd + AP+vXQD/sF0A/7BdAP+wXgH/r14C/6piEP+pZRP/qWUT/6plE/+qZRP/qWUT/6llE/+qZBP/pnY//wAA + AAAAAAAAAAAAAAAAAAAAAAAADY/0/wCI9f8Aivb/AIr2/wCL9v8Aivb/AIr2/wCK9v8Aivb/AIr2/wCL + 9v8AivX/AIr2/wGF7v9tms7/vn4+/7BgBf+wXwD/sF4A/7BfAP+wXwD/sF8A/69fAP+wXwD/sF8A/7Bf + AP+wXwD/sF8A/7BfAP+wXwD/sF8A/7BfAP+wXwD/sF8A/7BfAP+wXwD/sF8A/7BfAP+wXgD/sF4A/7Bf + AP+wXAD/rW8v/wAAAAAAAAAAAAAAAAAAAAAAAAAAC5D0/wCJ9f8Aivb/AIr2/wCL9v8Ai/b/AIr2/wCK + 9v8Aivb/AIv2/wCK9v8Ai/X/AYr2/wGH7/9tm8//vn4+/7BfBf+xXwD/sV8A/7FgAP+xYAD/sWAA/7Fg + AP+wYAD/sWAA/7FgAP+xYAD/sWAA/7FgAP+xYAD/sWAA/7FgAP+xYAD/sWAA/7FgAP+xYAD/sWAA/7Fg + AP+xYAD/sWAA/7FfAP+wXgD/rXAw/wAAAAAAAAAAAAAAAAAAAAAAAAAADJD0/wCK9f8Ai/b/AIr2/wCL + 9v8Ai/b/AIr2/wCK9v8Aivb/AIv2/wCK9v8AivX/AIr2/wGI7/9tnM//wIA+/7NgBf+yXgD/sl4A/7Je + AP+yXgD/sl4A/7JeAP+yXgD/sl8A/7JfAP+yXgD/sV4A/7FeAP+yXgD/sl4A/7JeAP+yXgD/sl4A/7Je + AP+yXwD/sl8A/7JfAP+yXwD/sl4A/7JeAP+wXgD/rnEv/wAAAAAAAAAAAAAAAAAAAAAAAAAADJL0/wCL + 9f8AjPX/AIz2/wCM9f8AjPX/AIz1/wCM9f8AjPX/AIz2/wCM9v8AjPX/AIz1/wCI7v9tm87/v388/7Jf + A/+xXgD/sV0A/7JdAP+yXgD/s10A/7JdAP+zXgD/sl0A/7JdAP+yXgD/sl4A/7JeAP+yXQD/sl4A/7Je + AP+zXgD/sl4A/7JdAP+xXQD/sF4A/7FeAP+yXgD/sl0A/7JdAP+xXAD/rnAv/wAAAAAAAAAAAAAAAAAA + AAAAAAAACpH0/wCM9P8AjvT/AI70/wCO9f8AjvX/AI71/wCO9f8AjfT/AI70/wCO9P8AjvT/AI30/wCI + 7f9sm83/y5Vc/8B7Mf+/ey3/wHst/8B7LP/Aey3/wHou/8B6Lf/Beyz/wHss/8F8LP/BfCz/wXws/8B7 + LP/AfC3/wHwt/8B8LP/Aey3/wHou/8B6Lf/AfC3/wHwt/8B9Lf/AfCz/v3st/797LP+/eCz/vIdR/wAA + AAAAAAAAAAAAAAAAAAAAAAAANab0/yuj9f8spPT/LKP0/yuj9f8ro/X/K6L1/yyh9f8rovT/K6Pz/yyk + 9f8so/X/LKP0/yyf7/9/r9f/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AA + AAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB + 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 + 9vUAfvf5AH32+QB+9/kAfvf5AH73+QB/9/kAfvb6AH72/gB/9v8Af/b/AH/2/wB+9v8Af/X/AH71/wB/ + 9f8Ae/T/XY/Q/6xnHf+kWAH/o1cA/6NZAP+kWAD/pFgA/6RYAP+kWAD/pFcA/6BbCv0AAAAAAAAAAAAA + AAAajfT/AH70+QGC9f8AgfT/AIL1/wCC9f8AgvX/AIL1/wCC9f8AgvX/AIL1/wCC9v8AgvX/AIL2/wCB + 9f8AgfX/AIL1/wB99P9dkND/rWcc/6VZAf+lWAD/plkA/6VaAP+mWQD/ploA/6VaAP+mWQD/oloG/gAA + AAAAAAAAAAAAAA6I8/8AgvX9AIX1/wCE9P8AhPb/AIT1/wCF9f8AhPX/AIX1/wCF9f8Ahfb/AIX1/wCF + 9v8Ahfb/AIX1/wCE9f8AhfX/AID0/1yR0P+uaBv/qFwA/6hbAP+oWgD/qFsA/6hbAP+nWwD/qFsA/6da + AP+nWwD/p18K/7RaAf+MZjn/CIXy/wCE9P8AhPP/AIT0/wCE9P8AhfX/AYT2/wGE9f8AhfX/AIX1/wCF + 9f8AhPb/AIT1/wCE9v8Ahfb/AIX1/wCF9v8AgfT/XJTQ/7BpHP+rXQL/ql0A/6tdAP+rXQD/q10B/6td + AP+sXQD/q10A/6tdAP6pXQH7sFkA+4tnPfwHhvL/AIT0/gCE8/8AhfX+AIX1/wCE9P0AgvH6AIT2+gCD + 9voAhfb+AIX2/wCF9f8Ahfb/AIX2/wCF9f8AhfX/AIX1/wCC9P9dk8//sWod/6xeAv+sXQD/rF0A/6xd + AP+sXgD/q14A/61dAP+tXgD/rF0A/6teA/+yWwD/jWk+/w+L8/8HifX/CIn0/wiK9f8HifT/CY35/w2U + //8bh/P/FI3z/wCG9P8AhvX/AIb1/wCG9f8Ah/b/AIf1/wCG9f8Ah/X/AIP0/12U0P+0bBz/r14B/65c + AP+tXAD/rl0A/65dAP+uXQD/rl0A/69dAP+uXAD/rlwA/7BcAP+mYRL/im9F/4hvRf+Kb0X/iW9F/Ihv + SP8AAAAAAAAAAAAAAAAAAAAABYrz/gCH9P8Aifb/AIn0/wCI9f8AiPT/AIn0/wCJ9P8AhfP/XJbR/7Vs + Hf+wXwL/sF8A/7BfAP+vXgD/r2AA/7BfAP+wYAD/sGAA/7BgAP+wXwD/sGAA/7FfAP+2XQD/t10A/7Zd + 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 + AAAAAAAACwAAACAgIAAgIDIALDM4ALBsaQCwbGkAKAAAAFdoaQBlAGUAzHVpAMx1aQAUAAAAAqWlpqcA + AAAAAACoqaqrrJ+Xl5igAAAAAAAAoaKdo6SWl5iYmQAAAAAAAJqbnJ2ejo+Pj5AAAAAAAACRkpOUlYaH + iIeJAAAAAAAAiouKjI15ent7fAB9fn+AgYKCg4SFbG1tbm8AcHFycnN0dXZ3eF5fYF9hYhpkZWVmZ2hp + amtQUVFRUlMaVVZXWFlaW1xdREVFRkVHSElKAABLTE1OTzc4ODk6Ozw9PgAAP0BBQkMAAAAAAAAAAAAA + AAAAAAAAIhoaGhoaAAAAAAAoKSorLBgaGhoaGgAAAAAAHh4fICEOGhoaGhoAAAAAABMUFRYXGhoaGhoa + AAAAAAAJCgsMDQfgAAAH4AAAB+AAAAfgAAAH4AAABAAAAAQAAAAAAAAAAAAAAABgAAAAYAAA//8AAAPg + AAAD4AAAA+AAAAPgAAAoAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAlGU9/3tE + Bv9+QwD/fUIA/3pCAP96QwD/ekMA/3tCAP95QQD/ekEA/3pBAP95QQD/eUEA/3pAAP95SBL/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAC2TL/wRdyv8FXsr/BF7K/wJfyv8DXcv/BFzL/wRdy/8EX8z/BF7M/wNdy/8DXcv/A13M/wRb + x/9uiL7/rXY//5hUBv+VUwD/lFIA/5ZTAP+VUwD/llIA/5dSAP+WUgD/llIA/5ZSAP+UUgD/lVIA/5VR + AP+SVhL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAADHb0/wBv9f8BcfT/AXH0/wFx9P8BcPT/AnD0/wFx9f8CcfT/AnD0/wFw + 9f8CcPT/A3H1/wRs7v9ujsz/rXY9/5hUBP+YUwD/l1MA/5hTAP+YUwD/mFMA/5lTAP+ZUwD/mVMA/5lT + AP+ZUwD/mVMA/5hSAP+TVxD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + 9v8AevX/AHr2/wF17/9uktD/sHg+/55XBv+gVwD/oFcA/6BWAP+gVgD/oFYA/6BWAP+gVgD/n1YA/6BW + AP+gVgD/oFYA/59WAP+aWhH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH/0/wB49f8AevX/AHr2/wB79v8Aevb/AHr2/wB6 + 9v8Ae/b/AHr2/wB69v8Aevb/AHv2/wB27/9tk8//tHk+/6FYBv+hVwD/oFcA/6BXAP+gVgD/oFcA/6BX + AP+gVwD/oFYA/6BWAP+gVwD/oFYA/6BWAP+bWhH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3/0/wB59f8Ae/b/AHv2/wB7 + 9v8Ae/b/AHv2/wB79v8Ae/b/AHv2/wB79v8Ae/b/AHv2/wF27/9tk87/tXk+/6JZBP+iVwD/oVgA/6JX + AP+iWAH/oVgA/6FZAP+iWAD/oVgA/6JYAP+iWAD/oVgB/6FWAP+cWxH/AAAAAAAAAAAAAAAAAAAAAFqf + 5P8mgNr/J4Lb/yaC2/8ngtv/J4Hc/yeC3P8ngtz/J4Lb/yeC2/8og9v/KIPc/ymC2/8fguL/Anz0/wB7 + 9f8AfPb/AHz2/wB89v8AfPb/AHz2/wB89v8AfPb/AHz2/wB89v8AfPX/AHz1/wF47/9uk8//tHk+/6JZ + Bv+iVwD/olgA/6NYAP+iWQD/o1kA/6NZAP+iWQH/o1gB/6JZAf+jWAD/o1kA/6JYAP+dWxH/AAAAAAAA + AAAAAAAAAAAAAD6d9f8Aevb/AHz2/wB89v8AfPf/AHz3/wB89/8AfPf/AHz2/wB89v8AfPb/AHz2/wB9 + 9v8AfPb/AH31/wB99f8Affb/AH32/wB99v8Affb/AH72/wB99v8Affb/AH32/wB+9v8AffX/AX31/wN5 + 7/9uk8//tXo+/6NZBv+jWAD/o1gA/6NYAf+iWAH/olkA/6NZAP+iWQD/olkA/6JYAP+jWAD/o1gB/6JX + AP+dWxH/AAAAAAAAAAAAAAAAAAAAAECe9f8AfPT/AH/1/wB/9v8Af/b/AH/2/wB+9v8Af/b/AH72/wB/ + 9v8Af/b/AH/2/wB/9v8Afvb/AH/2/wB/9v8Af/b/AH/2/wB/9v8Af/b/AH/2/wB/9v8Af/b/AH/2/wB/ + 9v8Af/X/AH/1/wF77/9ulM7/tno+/6RbBv+lWQD/pFgA/6RZAf+kWQH/pFgB/6RZAf+kWQH/pFkB/6RY + Af+kWAH/pFkB/6NYAP+dXBD/AAAAAAAAAAAAAAAAAAAAAECf9f8AfPX/AH/1/wB/9v8Af/b/AH/2/wB/ + 9v8AgPb/AH/2/wB/9v8Af/b/AH/2/wB/9v8Af/b/AH/2/wB/9v8Af/b/AID2/wCA9v8Af/b/AH/2/wB/ + 9v8Af/b/AID2/wB/9v8AgPb/AID2/wB87/9tlM7/t3o+/6VbBv+lWQD/pVgA/6RZAP+kWQD/pFkA/6VY + AP+lWQD/pVkA/6VZAP+lWQD/pVgA/6VZAP+fXRH/AAAAAAAAAAAAAAAAAAAAAECg9f8Af/X/AIL1/wCC + 9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC + 9v8Agvb/AIL2/wCC9v8Agvb/AIL2/wCC9v8AgvX/AYH1/wJ97/9ulc7/t3s+/6ZbBP+lWQD/pVkA/6VZ + AP+lWQD/pVkA/6VZAP+mWQD/plkA/6ZZAP+mWQD/pVkA/6VZAP+gXhH/AAAAAAAAAAAAAAAAAAAAAECi + 9v8AgfT/AIP1/wCE9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE + 9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE9v8AhPb/AIT2/wCE9v8AhPX/AIT1/wF+7/9tlc3/t3s+/6db + Bf+mWgD/ploA/6daAP+nWwD/p1sA/6dbAP+nWwD/p1sA/6dbAP+nWwD/p1oA/6haAP+hWwr/AAAAAAAA + AAAAAAAAAAAAADaP2v8AhPf/AIX1/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIX2/wCG9v8Ahvb/AIb2/wCG + 9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCA + 7v9tmM7/uXs+/6hdBP+oXAD/qFwA/6hbAP+oWwD/qFsA/6hbAP+oWwD/qFsA/6hbAP+oWwD/qFsA/6db + AP+nWwD/pFgA/6NWAP+jVgD/oFkL/zOAwv8Ahvj/AIX1/wCF9v8Ahfb/AIX2/wCF9v8Ahvb/AIb2/wCF + 9v8Ahfb/AIX2/wCF9v8Ahfb/AIb2/wCG9v8Ahfb/AIX2/wCF9v8Ahfb/AIX2/wCF9v8Ahfb/AIb2/wCF + 9v8Ahfb/AIX2/wCB7v9tmM7/unw9/6ldBP+qXQD/ql0A/6pcAP+qXQD/ql0B/6pdAf+qXQH/ql0B/6pd + Af+qXQH/qV0A/6ldAP+rXgD/q14B/6tdAP+rXQD/qV8P/zSCw/8Ah/j/AIb1/wCG9f8Ahvb/AIb2/wCG + 9v8Ahvb/AIb2/wCG9v8Ahvb/AIX2/wCG9v8Ahvb/AIX2/wCG9v8Ahvb/AIb2/wCF9v8Ahfb/AIX2/wCF + 9v8Ahfb/AIb2/wCG9v8Ahfb/AIb2/wGB7v9tmc3/un49/6xeBv+sXgH/rF4B/6xeAf+tXgD/rV4A/6xe + Af+tXgH/rF8B/61eAP+tXgH/rV4B/61fAf+tXgH/rF4B/61eAf+sXgD/q18P/zWCw/8Ah/j/AIf1/wCH + 9f8Ah/X/AIf1/wCH9v8Ah/b/AIf2/wCH9v8Ahvb/AIb2/wCG9v8Ah/b/AIb2/wCG9v8Ahvb/AIb2/wCG + 9v8Ahvb/AIb2/wCG9v8Ahvb/AIb2/wCG9v8Ahvb/AIf2/wGC7v9tmM3/u30+/6xfBv+tXwH/rV4A/61e + AP+sXgD/rV4A/61eAf+tXgH/rV4A/61eAf+tXgD/rV4B/61eAP+tXgH/rV4B/61eAf+tXQH/q2AR/zOD + xf8Ah/r/AIf3/wCH9/8Ah/f/AIf3/wCH9/8Ah/f/AIf3/wCG9f8AhfX/AIT1/wCE9f8AhfT/AIf1/wCI + 9v8Ah/b/AIf2/wCH9v8AiPb/AIf2/wCH9v8AiPb/AIf2/wCH9v8AiPX/AIn2/wKD7v9tmc7/vH4+/61f + Bf+tXgD/rV4A/61eAP+tXgD/rV4A/61eAP+tXgD/rV4A/61eAP+uXgD/rV4A/65eAP+tXgD/rl4A/61e + AP+uXQH/rGAO/1eEnv80isr/NYnI/zWJyP81icj/NYrI/zSKyP81icf/NI3P/0Gl8P9DpvP/Qqbz/0Sm + 8v83oPP/BYn0/wCG9f8AiPb/AIj2/wCI9v8AiPb/AIj2/wCI9v8AiPb/AIj2/wCI9v8AiPX/AIj2/wGE + 7/9tms7/vYA+/7BgBP+wXgD/sF4A/69dAP+vXQD/sF0A/69dAP+wXQD/r10A/69dAP+wXQD/sF0A/7Bd + AP+vXQD/sF0A/7BdAP+wXgH/r14C/6piEP+pZRP/qWUT/6plE/+qZRP/qWUT/6llE/+qZBP/pnY//wAA + AAAAAAAAAAAAAAAAAAAAAAAADY/0/wCI9f8Aivb/AIr2/wCL9v8Aivb/AIr2/wCK9v8Aivb/AIr2/wCL + 9v8AivX/AIr2/wGF7v9tms7/vn4+/7BgBf+wXwD/sF4A/7BfAP+wXwD/sF8A/69fAP+wXwD/sF8A/7Bf + AP+wXwD/sF8A/7BfAP+wXwD/sF8A/7BfAP+wXwD/sF8A/7BfAP+wXwD/sF8A/7BfAP+wXgD/sF4A/7Bf + AP+wXAD/rW8v/wAAAAAAAAAAAAAAAAAAAAAAAAAAC5D0/wCJ9f8Aivb/AIr2/wCL9v8Ai/b/AIr2/wCK + 9v8Aivb/AIv2/wCK9v8Ai/X/AYr2/wGH7/9tm8//vn4+/7BfBf+xXwD/sV8A/7FgAP+xYAD/sWAA/7Fg + AP+wYAD/sWAA/7FgAP+xYAD/sWAA/7FgAP+xYAD/sWAA/7FgAP+xYAD/sWAA/7FgAP+xYAD/sWAA/7Fg + AP+xYAD/sWAA/7FfAP+wXgD/rXAw/wAAAAAAAAAAAAAAAAAAAAAAAAAADJD0/wCK9f8Ai/b/AIr2/wCL + 9v8Ai/b/AIr2/wCK9v8Aivb/AIv2/wCK9v8AivX/AIr2/wGI7/9tnM//wIA+/7NgBf+yXgD/sl4A/7Je + AP+yXgD/sl4A/7JeAP+yXgD/sl8A/7JfAP+yXgD/sV4A/7FeAP+yXgD/sl4A/7JeAP+yXgD/sl4A/7Je + AP+yXwD/sl8A/7JfAP+yXwD/sl4A/7JeAP+wXgD/rnEv/wAAAAAAAAAAAAAAAAAAAAAAAAAADJL0/wCL + 9f8AjPX/AIz2/wCM9f8AjPX/AIz1/wCM9f8AjPX/AIz2/wCM9v8AjPX/AIz1/wCI7v9tm87/v388/7Jf + A/+xXgD/sV0A/7JdAP+yXgD/s10A/7JdAP+zXgD/sl0A/7JdAP+yXgD/sl4A/7JeAP+yXQD/sl4A/7Je + AP+zXgD/sl4A/7JdAP+xXQD/sF4A/7FeAP+yXgD/sl0A/7JdAP+xXAD/rnAv/wAAAAAAAAAAAAAAAAAA + AAAAAAAACpH0/wCM9P8AjvT/AI70/wCO9f8AjvX/AI71/wCO9f8AjfT/AI70/wCO9P8AjvT/AI30/wCI + 7f9sm83/y5Vc/8B7Mf+/ey3/wHst/8B7LP/Aey3/wHou/8B6Lf/Beyz/wHss/8F8LP/BfCz/wXws/8B7 + LP/AfC3/wHwt/8B8LP/Aey3/wHou/8B6Lf/AfC3/wHwt/8B9Lf/AfCz/v3st/797LP+/eCz/vIdR/wAA + AAAAAAAAAAAAAAAAAAAAAAAANab0/yuj9f8spPT/LKP0/yuj9f8ro/X/K6L1/yyh9f8rovT/K6Pz/yyk + 9f8so/X/LKP0/yyf7/9/r9f/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/7xk + AP+8ZAD/vGQA/7xkAP+8ZAD/vGQA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY + 9P8AmPT/AJj0/wCY9P8AmPT/AJj0/wCY9P8AmPT/AAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AA + AAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB + //+AAAAAAAH//4AAAAAAAf//gAAAAAAB4AAAAAAAAAHgAAAAAAAAAeAAAAAAAAAB4AAAAAAAAAHgAAAA + AAAAAeAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AA+AAAAAAAAAD4AAAAAAAAAPgAAAAAAAAA+AAAAAAAAAD4AAAAAAAAAPgAAAAP///////wAA//////// + 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 + 9f8AgfX/AIL1/wB99P9dkND/rWcc/6VZAf+lWAD/plkA/6VaAP+mWQD/ploA/6VaAP+mWQD/oloG/gAA + AAAAAAAAAAAAAA6I8/8AgvX9AIX1/wCE9P8AhPb/AIT1/wCF9f8AhPX/AIX1/wCF9f8Ahfb/AIX1/wCF + 9v8Ahfb/AIX1/wCE9f8AhfX/AID0/1yR0P+uaBv/qFwA/6hbAP+oWgD/qFsA/6hbAP+nWwD/qFsA/6da + AP+nWwD/p18K/7RaAf+MZjn/CIXy/wCE9P8AhPP/AIT0/wCE9P8AhfX/AYT2/wGE9f8AhfX/AIX1/wCF + 9f8AhPb/AIT1/wCE9v8Ahfb/AIX1/wCF9v8AgfT/XJTQ/7BpHP+rXQL/ql0A/6tdAP+rXQD/q10B/6td + AP+sXQD/q10A/6tdAP6pXQH7sFkA+4tnPfwHhvL/AIT0/gCE8/8AhfX+AIX1/wCE9P0AgvH6AIT2+gCD + 9voAhfb+AIX2/wCF9f8Ahfb/AIX2/wCF9f8AhfX/AIX1/wCC9P9dk8//sWod/6xeAv+sXQD/rF0A/6xd + AP+sXgD/q14A/61dAP+tXgD/rF0A/6teA/+yWwD/jWk+/w+L8/8HifX/CIn0/wiK9f8HifT/CY35/w2U + //8bh/P/FI3z/wCG9P8AhvX/AIb1/wCG9f8Ah/b/AIf1/wCG9f8Ah/X/AIP0/12U0P+0bBz/r14B/65c + AP+tXAD/rl0A/65dAP+uXQD/rl0A/69dAP+uXAD/rlwA/7BcAP+mYRL/im9F/4hvRf+Kb0X/iW9F/Ihv + SP8AAAAAAAAAAAAAAAAAAAAABYrz/gCH9P8Aifb/AIn0/wCI9f8AiPT/AIn0/wCJ9P8AhfP/XJbR/7Vs + Hf+wXwL/sF8A/7BfAP+vXgD/r2AA/7BfAP+wYAD/sGAA/7BgAP+wXwD/sGAA/7FfAP+2XQD/t10A/7Zd + AP+3XAD6tV0A/wAAAAAAAAAAAAAAAAAAAAAHjfT9AIn1/wCK9v8AivX/AIn2/wCK9f8AivX/AIr1/wCH + 9P9dl9L/tWkY+69bAPuvWgD7sFsA+7BbAPuwWwD7sFsA+7BbAPuvWwD7r1sA+7BbAPuvWwD7sFsA+65c + APuuXAD7rV0A+65bAPesXQP7AAAAAAAAAAAAAAAAAAAAAAKM9PoAiPT7AIn1+wCI9PsAifT7AIn1+wCI + 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 + + + \ No newline at end of file diff --git a/UDPClient/Program.cs b/UDPClient/Program.cs new file mode 100644 index 0000000..844b970 --- /dev/null +++ b/UDPClient/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace UDPClient +{ + static class Program + { + /// + /// 应用程序的主入口点。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Frm_Client()); + } + } +} diff --git a/UDPClient/Properties/AssemblyInfo.cs b/UDPClient/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..984309e --- /dev/null +++ b/UDPClient/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的常规信息通过以下 +// 特性集控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("UDPClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("UDPClient")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 使此程序集中的类型 +// 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, +// 则将该类型上的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("c935c2b8-6abd-4b98-97e2-ffa7b0e202ae")] + +// 程序集的版本信息由下面四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, +// 方法是按如下所示使用“*”: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/UDPClient/Properties/Resources.Designer.cs b/UDPClient/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4f1d9e7 --- /dev/null +++ b/UDPClient/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.18444 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace UDPClient.Properties { + using System; + + + /// + /// 一个强类型的资源类,用于查找本地化的字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 返回此类使用的缓存的 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UDPClient.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 使用此强类型资源类,为所有资源查找 + /// 重写当前线程的 CurrentUICulture 属性。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/UDPClient/Properties/Resources.resx b/UDPClient/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/UDPClient/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/UDPClient/Properties/Settings.Designer.cs b/UDPClient/Properties/Settings.Designer.cs new file mode 100644 index 0000000..60e2531 --- /dev/null +++ b/UDPClient/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.18444 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace UDPClient.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/UDPClient/Properties/Settings.settings b/UDPClient/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/UDPClient/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/UDPClient/UDPClient.csproj b/UDPClient/UDPClient.csproj new file mode 100644 index 0000000..851c010 --- /dev/null +++ b/UDPClient/UDPClient.csproj @@ -0,0 +1,96 @@ + + + + + Debug + AnyCPU + {69C59230-BE16-4E03-8948-664F78D85698} + Exe + Properties + UDPClient + UDPClient + v3.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + UDPClient.Program + + + + + + + + + + + + + + + Form + + + Frm_Client.cs + + + + + Frm_Client.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + Always + + + Always + + + + + \ No newline at end of file diff --git a/UDPClient/clear.ico b/UDPClient/clear.ico new file mode 100644 index 0000000000000000000000000000000000000000..f057ac9ad2694ee302b01b05382b7bda88a8922a GIT binary patch literal 17798 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 literal 0 HcmV?d00001 diff --git a/UDPServer/Frm_Server.Designer.cs b/UDPServer/Frm_Server.Designer.cs new file mode 100644 index 0000000..8b95cd7 --- /dev/null +++ b/UDPServer/Frm_Server.Designer.cs @@ -0,0 +1,120 @@ +namespace UDPServer +{ + partial class Frm_Server + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 窗体设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.msg = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.msgbox = new System.Windows.Forms.ListBox(); + this.label1 = new System.Windows.Forms.Label(); + this.portT = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // msg + // + this.msg.Location = new System.Drawing.Point(71, 39); + this.msg.Name = "msg"; + this.msg.Size = new System.Drawing.Size(161, 21); + this.msg.TabIndex = 0; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(238, 39); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(42, 23); + this.button1.TabIndex = 1; + this.button1.Text = "广播"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button_Click); + // + // msgbox + // + this.msgbox.FormattingEnabled = true; + this.msgbox.ItemHeight = 12; + this.msgbox.Location = new System.Drawing.Point(12, 77); + this.msgbox.Name = "msgbox"; + this.msgbox.Size = new System.Drawing.Size(268, 184); + this.msgbox.TabIndex = 2; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 42); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(53, 12); + this.label1.TabIndex = 3; + this.label1.Text = "消 息"; + // + // portT + // + this.portT.Location = new System.Drawing.Point(71, 12); + this.portT.Name = "portT"; + this.portT.Size = new System.Drawing.Size(161, 21); + this.portT.TabIndex = 4; + this.portT.Text = "25333"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 15); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(53, 12); + this.label2.TabIndex = 5; + this.label2.Text = "广播端口"; + // + // Frm_Server + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(292, 273); + this.Controls.Add(this.label2); + this.Controls.Add(this.portT); + this.Controls.Add(this.label1); + this.Controls.Add(this.msgbox); + this.Controls.Add(this.button1); + this.Controls.Add(this.msg); + this.Name = "Frm_Server"; + this.Text = "服务端"; + this.Load += new System.EventHandler(this.Frm_Server_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox msg; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.ListBox msgbox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox portT; + private System.Windows.Forms.Label label2; + } +} + diff --git a/UDPServer/Frm_Server.cs b/UDPServer/Frm_Server.cs new file mode 100644 index 0000000..38f7a66 --- /dev/null +++ b/UDPServer/Frm_Server.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using System.Windows.Forms; + +namespace UDPServer +{ + public partial class Frm_Server : Form + { + UdpClient client; + IPEndPoint endpoint; + Dictionary userinfo = new Dictionary(); + public Frm_Server() + { + InitializeComponent(); + } + + private void Frm_Server_Load(object sender, EventArgs e) + { + client = new UdpClient(new IPEndPoint(IPAddress.Any, 25433)); + endpoint = new IPEndPoint(IPAddress.Any, 0); + //启动客户端监听 + Thread t = new Thread(new ThreadStart(ClientThread)); + t.Start(); + + } + + + private void button_Click(object sender, EventArgs e) + { + + foreach (var item in userinfo) + { + byte[] buf = Encoding.Default.GetBytes("用户: " + item.Key + " 消息: " + msg.Text); + client.Send(buf, buf.Length, item.Value); + } + } + + private void ClientThread() + { + try + { + Console.WriteLine("服务器开始监听..."); + while (true) + { + byte[] buf = client.Receive(ref endpoint); + string msg = Encoding.Default.GetString(buf); + string[] info = msg.Split(' '); + if (info.Length == 3) + { + string user = info[0]; + string ip = info[1]; + int port = int.Parse(info[2]); + IPEndPoint addr = new IPEndPoint(IPAddress.Parse(ip), port); + if (userinfo.ContainsKey(user)) + userinfo.Remove(user); + userinfo.Add(user, addr); + Console.WriteLine("用户: " + user + " 登录服务器 IP: " + ip + " 端口: " + port); + } + } + } + catch (Exception) + { + client.Close(); + } + + } + } +} diff --git a/UDPServer/Frm_Server.resx b/UDPServer/Frm_Server.resx new file mode 100644 index 0000000..7080a7d --- /dev/null +++ b/UDPServer/Frm_Server.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/UDPServer/Program.cs b/UDPServer/Program.cs new file mode 100644 index 0000000..c6ce2e8 --- /dev/null +++ b/UDPServer/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace UDPServer +{ + static class Program + { + /// + /// 应用程序的主入口点。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Frm_Server()); + } + } +} diff --git a/UDPServer/Properties/AssemblyInfo.cs b/UDPServer/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..79d0b26 --- /dev/null +++ b/UDPServer/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的常规信息通过以下 +// 特性集控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("UDPServer")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("UDPServer")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 使此程序集中的类型 +// 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, +// 则将该类型上的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("29696ad1-c357-4e2d-aab6-1a1a138696c2")] + +// 程序集的版本信息由下面四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, +// 方法是按如下所示使用“*”: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/UDPServer/Properties/Resources.Designer.cs b/UDPServer/Properties/Resources.Designer.cs new file mode 100644 index 0000000..139985a --- /dev/null +++ b/UDPServer/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.18444 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace UDPServer.Properties { + using System; + + + /// + /// 一个强类型的资源类,用于查找本地化的字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 返回此类使用的缓存的 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UDPServer.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 使用此强类型资源类,为所有资源查找 + /// 重写当前线程的 CurrentUICulture 属性。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/UDPServer/Properties/Resources.resx b/UDPServer/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/UDPServer/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/UDPServer/Properties/Settings.Designer.cs b/UDPServer/Properties/Settings.Designer.cs new file mode 100644 index 0000000..bbd00b0 --- /dev/null +++ b/UDPServer/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.18444 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace UDPServer.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/UDPServer/Properties/Settings.settings b/UDPServer/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/UDPServer/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/UDPServer/UDPServer.csproj b/UDPServer/UDPServer.csproj new file mode 100644 index 0000000..9c7acc7 --- /dev/null +++ b/UDPServer/UDPServer.csproj @@ -0,0 +1,88 @@ + + + + + Debug + AnyCPU + {3776C1C2-B676-458C-8EC8-4380892FB1E0} + Exe + Properties + UDPServer + UDPServer + v3.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + UDPServer.Program + + + + + + + + + + + + + + + Form + + + Frm_Server.cs + + + + + Frm_Server.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + \ No newline at end of file diff --git a/clear.ico b/clear.ico new file mode 100644 index 0000000000000000000000000000000000000000..f057ac9ad2694ee302b01b05382b7bda88a8922a GIT binary patch literal 17798 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 literal 0 HcmV?d00001