diff --git a/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj b/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj index b41674f..2aa5177 100644 --- a/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj +++ b/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj @@ -12,6 +12,8 @@ 512 false + + AnyCPU @@ -41,17 +43,141 @@ app.manifest + + ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + True + True + ..\packages\NLog.5.1.0\lib\net46\NLog.dll + + ..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll + True + True + + + + ..\packages\System.Console.4.3.0\lib\net46\System.Console.dll + True + True + - + + ..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll + True + True + + + ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + True + True + + + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + True + True + + + + ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + True + True + + + ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + True + True + + + ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + True + True + + + ..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll + True + True + + + ..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll + True + True + + + ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll + True + True + + + ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + True + True + + + ..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll + True + True + + + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + + + ..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll + True + True + + + ..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll + True + True + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + + + ..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll + True + True + @@ -61,6 +187,11 @@ + + ..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + True + True + diff --git a/Novetus/Novetus.Bootstrapper/packages.config b/Novetus/Novetus.Bootstrapper/packages.config index 5a7cee2..5ff341a 100644 --- a/Novetus/Novetus.Bootstrapper/packages.config +++ b/Novetus/Novetus.Bootstrapper/packages.config @@ -1,4 +1,50 @@  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Novetus/Novetus.ClientScriptTester/Classes/LocalVars.cs b/Novetus/Novetus.ClientScriptTester/Classes/LocalVars.cs deleted file mode 100644 index 5f225d6..0000000 --- a/Novetus/Novetus.ClientScriptTester/Classes/LocalVars.cs +++ /dev/null @@ -1,24 +0,0 @@ -#region Usings -using System; -using System.Collections.Generic; -using System.Diagnostics.Contracts; -#endregion - -namespace Novetus.ClientScriptTester -{ - #region LocalVars - class LocalVars - { - public static List SharedArgs = new List(); - //a re-implementation of "Environment.NewLine" but with double spaces. Should be in NETExt, but we only use it here. - public static String DoubleSpacedNewLine - { - get - { - Contract.Ensures(Contract.Result() != null); - return "\r\n\r\n"; - } - } - } - #endregion -} diff --git a/Novetus/Novetus.ClientScriptTester/ClientScriptTester.cs b/Novetus/Novetus.ClientScriptTester/ClientScriptTester.cs deleted file mode 100644 index 6591f6a..0000000 --- a/Novetus/Novetus.ClientScriptTester/ClientScriptTester.cs +++ /dev/null @@ -1,29 +0,0 @@ -#region Usings -using System; -using System.Windows.Forms; -#endregion - -namespace Novetus.ClientScriptTester -{ - #region ClientScript Tester - static class ClientScriptTester - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main(string[] args) - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - - foreach (string s in args) - { - LocalVars.SharedArgs.Add(s); - } - - Application.Run(new ClientScriptTestForm()); - } - } - #endregion -} diff --git a/Novetus/Novetus.ClientScriptTester/Forms/ClientScriptTestForm.Designer.cs b/Novetus/Novetus.ClientScriptTester/Forms/ClientScriptTestForm.Designer.cs deleted file mode 100644 index 0b35067..0000000 --- a/Novetus/Novetus.ClientScriptTester/Forms/ClientScriptTestForm.Designer.cs +++ /dev/null @@ -1,95 +0,0 @@ -namespace Novetus.ClientScriptTester -{ - partial class ClientScriptTestForm - { - /// - /// 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(ClientScriptTestForm)); - this.ResultLabel = new System.Windows.Forms.Label(); - this.Divider1 = new System.Windows.Forms.Label(); - this.OutputBox = new System.Windows.Forms.RichTextBox(); - this.SuspendLayout(); - // - // ResultLabel - // - this.ResultLabel.AutoSize = true; - this.ResultLabel.Location = new System.Drawing.Point(12, 9); - this.ResultLabel.Name = "ResultLabel"; - this.ResultLabel.Size = new System.Drawing.Size(102, 13); - this.ResultLabel.TabIndex = 0; - this.ResultLabel.Text = "Here are the results:"; - // - // Divider1 - // - this.Divider1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.Divider1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.Divider1.Location = new System.Drawing.Point(8, 31); - this.Divider1.Name = "Divider1"; - this.Divider1.Size = new System.Drawing.Size(780, 2); - this.Divider1.TabIndex = 1; - // - // OutputBox - // - this.OutputBox.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.OutputBox.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.OutputBox.Location = new System.Drawing.Point(8, 36); - this.OutputBox.Name = "OutputBox"; - this.OutputBox.ReadOnly = true; - this.OutputBox.Size = new System.Drawing.Size(780, 402); - this.OutputBox.TabIndex = 2; - this.OutputBox.Text = ""; - // - // ClientScriptTestForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.OutputBox); - this.Controls.Add(this.Divider1); - this.Controls.Add(this.ResultLabel); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MinimumSize = new System.Drawing.Size(816, 200); - this.Name = "ClientScriptTestForm"; - this.Text = "ClientScript Tester"; - this.Load += new System.EventHandler(this.ClientScriptTestForm_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label ResultLabel; - private System.Windows.Forms.Label Divider1; - private System.Windows.Forms.RichTextBox OutputBox; - } -} - diff --git a/Novetus/Novetus.ClientScriptTester/Forms/ClientScriptTestForm.cs b/Novetus/Novetus.ClientScriptTester/Forms/ClientScriptTestForm.cs deleted file mode 100644 index f80626d..0000000 --- a/Novetus/Novetus.ClientScriptTester/Forms/ClientScriptTestForm.cs +++ /dev/null @@ -1,35 +0,0 @@ -#region Usings -using System; -using System.Windows.Forms; -#endregion - -namespace Novetus.ClientScriptTester -{ - #region ClientScriptTestForm - public partial class ClientScriptTestForm : Form - { - #region Constructor - public ClientScriptTestForm() - { - InitializeComponent(); - } - #endregion - - #region Form Events - private void ClientScriptTestForm_Load(object sender, EventArgs e) - { - foreach (string str in LocalVars.SharedArgs) - { - if (!string.IsNullOrWhiteSpace(str)) - { - OutputBox.AppendText(str + LocalVars.DoubleSpacedNewLine); - } - } - - OutputBox.SelectionStart = 0; - OutputBox.ScrollToCaret(); - } - #endregion - } - #endregion -} diff --git a/Novetus/Novetus.ClientScriptTester/Forms/ClientScriptTestForm.resx b/Novetus/Novetus.ClientScriptTester/Forms/ClientScriptTestForm.resx deleted file mode 100644 index a237f57..0000000 --- a/Novetus/Novetus.ClientScriptTester/Forms/ClientScriptTestForm.resx +++ /dev/null @@ -1,1819 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - - AAABAAYAAAAAAAEAIABtBwAAZgAAAICAAAABACAAKAgBANMHAABAQAAAAQAgAChCAAD7DwEAMDAAAAEA - IACoJQAAI1IBACAgAAABACAAqBAAAMt3AQAQEAAAAQAgAGgEAABziAEAiVBORw0KGgoAAAANSUhEUgAA - AQAAAAEACAYAAABccqhmAAAHNElEQVR42u3dv4tdeR3G8TP3zp2ZZHZnsqshQYNBK7uFLVZFlAVRCwut - ZRFbGxG0EKxEsBAEBTvL2GknuJDCSllEtLCJP9Z1SSQkJNlsJpkk995z7vhHPMVdeV6v/nN+zIT3nOb7 - yc6wZd/49c3Xwkv8LBn+xIWDzyTzT9eb6OHT+fUmm382bh5FFxiGx+H8/XB+CucfhvMPwvlr4fz1ZHgW - 3hz4PyYAUEwAoJgAQDEBgGICAMUEAIoJABQTACgmAFBMAKCYAEAxAYBiAgDFBACK7W77ATbj+Klk/pXL - L0Tn+b/3+sVt/wi26nS1OU7mn4bzD59PV5L51Tp7/5Nltk7g3ftPovk33z79YvYGw3eSYV8AUEwAoJgA - QDEBgGICAMUEAIoJABQTACgmAFBMAKCYAEAxAYBiAgDFBACKCQAU+yDsA7iUzB/t7Wz1+W+9n50nX+xk - z78bvv48/Bewv8j+hnxsP5ufz7L5xTx7/1evnIvmP3J8+HIy/8s/3f5pMu8LAIoJABQTACgmAFBMAKCY - AEAxAYBiAgDFBACKCQAUEwAoJgBQTACgmABAMQGAYlvfBzCt10fJ/OEiu/+4yeYfr7ID+fMwwfOzbH53 - DO8fnqefpesczrJ9DB89zl7g+7+6Gc3/5I2r0fxb/15cTOZ9AUAxAYBiAgDFBACKCQAUEwAoJgBQTACg - mABAMQGAYgIAxQQAigkAFBMAKCYAUOyDsA8g+v/RX9zLGna6zJ7/9Hl2Hn0WHohPf4Hxef5wfj6E+xTC - fQLhOohhZzqJ5t9652E0/9ebj24n874AoJgAQDEBgGICAMUEAIoJABQTACgmAFBMAKCYAEAxAYBiAgDF - BACKCQAUEwAotv19AKvVpWT++Fx2IP3RszGaP12eRfOzWTY/DxM+n8Lz+On9h/D9w30Ew1l2gbsn2UKJ - n19/O1soMAzfTIZ9AUAxAYBiAgDFBACKCQAUEwAoJgBQTACgmABAMQGAYgIAxQQAigkAFBMAKCYAUGzr - +wDG1fJqMn/5aBHd/9Hz7Dx6tk1gGMLj8PF5/nAdwTBM4fOHP4DFWfY3bBO+/7TIfgDjav3xZP633/3c - e8m8LwAoJgBQTACgmABAMQGAYgIAxQQAigkAFBMAKCYAUEwAoJgAQDEBgGICAMUEAIptfR/AlO4DON6P - 7n/jbnaeeydM6GzY7nn+9C9Auk4gtRM+wFk4Py6fR/PTegw3KmR8AUAxAYBiAgDFBACKCQAUEwAoJgBQ - TACgmABAMQGAYgIAxQQAigkAFBMAKCYAUCzeB/ClH/7uXHSBadxLxvcXWcOWU3YcexafiM/m07tP4T6C - VHr3WfgnbB3+/p+cPh3DVzgJ5yO+AKCYAEAxAYBiAgDFBACKCQAUEwAoJgBQTACgmABAMQGAYgIAxQQA - igkAFBMAKBbvAxiXq4vJ/OHhQXT/WXigfJP+AMID+Tvh88/CE/VnW37+dCPAuUV29wdPltH8uFzdTeZ/ - /+OvpSsdIr4AoJgAQDEBgGICAMUEAIoJABQTACgmAFBMAKCYAEAxAYBiAgDFBACKCQAUEwAoFu8DmFbL - 89EDHO5lLxAmbB4uFJg24YH48EB+us8gPc+/Cd9/Ht7/fPgP4N7DZ9H8tFrezt5gu3wBQDEBgGICAMUE - AIoJABQTACgmAFBMAKCYAEAxAYBiAgDFBACKCQAUEwAoJgBQbPez37724eQC42r1o2T+tU9ejV7gzkl2 - nv7du1M0f3gQjQ8He1mDDxbZ+y/C8/iLvewC+/Ps/kfRNoph+Netp9H8uFrdzZ5gu3wBQDEBgGICAMUE - AIoJABQTACgmAFBMAKCYAEAxAYBiAgDFBACKCQAUEwAoJgBQbHdarb4QXuMryfBfbrwT3fzhs91o/sky - O0+/nrL55To7T78aN9H8OGXzm7Ps/V8+Po7mv/Xly9H8nfvZPoBptboXXWDLfAFAMQGAYgIAxQQAigkA - FBMAKCYAUEwAoJgAQDEBgGICAMUEAIoJABQTACgmAFBsd1qvX00u8NXXXzmXzP/gjU9v+2ewVeE6gXgf - wWoMXyB8/l+8eTuaP7/I7v/4SbgPYL1+kD3BdvkCgGICAMUEAIoJABQTACgmAFBMAKCYAEAxAYBiAgDF - BACKCQAUEwAoJgBQTACg2O60Xv8nucCd++9HD3Dt+o1o/sIL0TqC4cLxQTT/0uF+NH8czr94fi+a39/L - /gbs72bzX//8pfD+0fhw772TaH5ar/+bPcF2+QKAYgIAxQQAigkAFBMAKCYAUEwAoJgAQDEBgGICAMUE - AIoJABQTACgmAFBMAKDY7mYcf5Nc4A9//vuVcP5q+A4f2vL8S1ueP06GD/YWi2j+IBofjg7DfQ5H56P5 - v/3j1j+jCwzDH8P5rfIFAMUEAIoJABQTACgmAFBMAKCYAEAxAYBiAgDFBACKCQAUEwAoJgBQTACgmABA - sf8BK8YyIA0V98sAAAAASUVORK5CYIIoAAAAgAAAAAABAAABACAAAAAAAAAAAQDDDgAAww4AAAAAAAAA - AAAAj1owFI9aMBSPWjAUj1owFI9aMBSPWjAUj1owFI9aMBSPWjCEj1owhI9aMISPWjCEj1owhI9aMISP - WjCEj1owhI9aMKOPWjCjj1owo49aMKOPWjCjj1owo49aMKOPWjCjj1owto9aMLaPWjC2j1owto9aMLaP - WjC2j1owto9aMLaPWjDJj1owyY9aMMmPWjDJj1owyY9aMMmPWjDJj1owyY9aMNqPWjDaj1ow2o9aMNqP - WjDaj1ow2o9aMNqPWjDaj1ow649aMOuPWjDrj1ow649aMOuPWjDrj1ow649aMOuPWjD6j1ow+o9aMPqP - WjD6j1ow+o9aMPqPWjD6j1ow+pRgOP+UYDj/lGA4/5RgOP+UYDj/lGA4/5RgOP+UYDj/mWhA/5loQP+Z - aED/mWhA/5loQP+ZaED/mWhA/5loQP+ic07/onNO/6JzTv+ic07/onNO/6JzTv+ic07/onNO/6yBXv+s - gV7/rIFe/6yBXv+sgV7/rIFe/6yBXv+sgV7/j1ow2Y9aMNmPWjDZj1ow2Y9aMNmPWjDZj1ow2Y9aMNmP - WjA0j1owNI9aMDSPWjA0j1owNI9aMDSPWjA0j1owNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPWjAUj1owFI9aMBSPWjAUj1owFI9aMBSP - WjAUj1owFI9aMISPWjCEj1owhI9aMISPWjCEj1owhI9aMISPWjCEj1owo49aMKOPWjCjj1owo49aMKOP - WjCjj1owo49aMKOPWjC2j1owto9aMLaPWjC2j1owto9aMLaPWjC2j1owto9aMMmPWjDJj1owyY9aMMmP - WjDJj1owyY9aMMmPWjDJj1ow2o9aMNqPWjDaj1ow2o9aMNqPWjDaj1ow2o9aMNqPWjDrj1ow649aMOuP - WjDrj1ow649aMOuPWjDrj1ow649aMPqPWjD6j1ow+o9aMPqPWjD6j1ow+o9aMPqPWjD6lGA4/5RgOP+U - YDj/lGA4/5RgOP+UYDj/lGA4/5RgOP+ZaED/mWhA/5loQP+ZaED/mWhA/5loQP+ZaED/mWhA/6JzTv+i - c07/onNO/6JzTv+ic07/onNO/6JzTv+ic07/rIFe/6yBXv+sgV7/rIFe/6yBXv+sgV7/rIFe/6yBXv+P - WjDZj1ow2Y9aMNmPWjDZj1ow2Y9aMNmPWjDZj1ow2Y9aMDSPWjA0j1owNI9aMDSPWjA0j1owNI9aMDSP - WjA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAI9aMBSPWjAUj1owFI9aMBSPWjAUj1owFI9aMBSPWjAUj1owhI9aMISPWjCEj1owhI9aMISP - WjCEj1owhI9aMISPWjCjj1owo49aMKOPWjCjj1owo49aMKOPWjCjj1owo49aMLaPWjC2j1owto9aMLaP - WjC2j1owto9aMLaPWjC2j1owyY9aMMmPWjDJj1owyY9aMMmPWjDJj1owyY9aMMmPWjDaj1ow2o9aMNqP - WjDaj1ow2o9aMNqPWjDaj1ow2o9aMOuPWjDrj1ow649aMOuPWjDrj1ow649aMOuPWjDrj1ow+o9aMPqP - WjD6j1ow+o9aMPqPWjD6j1ow+o9aMPqUYDj/lGA4/5RgOP+UYDj/lGA4/5RgOP+UYDj/lGA4/5loQP+Z - aED/mWhA/5loQP+ZaED/mWhA/5loQP+ZaED/onNO/6JzTv+ic07/onNO/6JzTv+ic07/onNO/6JzTv+s - gV7/rIFe/6yBXv+sgV7/rIFe/6yBXv+sgV7/rIFe/49aMNmPWjDZj1ow2Y9aMNmPWjDZj1ow2Y9aMNmP - WjDZj1owNI9aMDSPWjA0j1owNI9aMDSPWjA0j1owNI9aMDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj1owFI9aMBSPWjAUj1owFI9aMBSP - WjAUj1owFI9aMBSPWjCEj1owhI9aMISPWjCEj1owhI9aMISPWjCEj1owhI9aMKOPWjCjj1owo49aMKOP - WjCjj1owo49aMKOPWjCjj1owto9aMLaPWjC2j1owto9aMLaPWjC2j1owto9aMLaPWjDJj1owyY9aMMmP - WjDJj1owyY9aMMmPWjDJj1owyY9aMNqPWjDaj1ow2o9aMNqPWjDaj1ow2o9aMNqPWjDaj1ow649aMOuP - WjDrj1ow649aMOuPWjDrj1ow649aMOuPWjD6j1ow+o9aMPqPWjD6j1ow+o9aMPqPWjD6j1ow+pRgOP+U - YDj/lGA4/5RgOP+UYDj/lGA4/5RgOP+UYDj/mWhA/5loQP+ZaED/mWhA/5loQP+ZaED/mWhA/5loQP+i - c07/onNO/6JzTv+ic07/onNO/6JzTv+ic07/onNO/6yBXv+sgV7/rIFe/6yBXv+sgV7/rIFe/6yBXv+s - gV7/j1ow2Y9aMNmPWjDZj1ow2Y9aMNmPWjDZj1ow2Y9aMNmPWjA0j1owNI9aMDSPWjA0j1owNI9aMDSP - WjA0j1owNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACPWjAUj1owFI9aMBSPWjAUj1owFI9aMBSPWjAUj1owFI9aMISPWjCEj1owhI9aMISP - WjCEj1owhI9aMISPWjCEj1owo49aMKOPWjCjj1owo49aMKOPWjCjj1owo49aMKOPWjC2j1owto9aMLaP - WjC2j1owto9aMLaPWjC2j1owto9aMMmPWjDJj1owyY9aMMmPWjDJj1owyY9aMMmPWjDJj1ow2o9aMNqP - WjDaj1ow2o9aMNqPWjDaj1ow2o9aMNqPWjDrj1ow649aMOuPWjDrj1ow649aMOuPWjDrj1ow649aMPqP - WjD6j1ow+o9aMPqPWjD6j1ow+o9aMPqPWjD6lGA4/5RgOP+UYDj/lGA4/5RgOP+UYDj/lGA4/5RgOP+Z - aED/mWhA/5loQP+ZaED/mWhA/5loQP+ZaED/mWhA/6JzTv+ic07/onNO/6JzTv+ic07/onNO/6JzTv+i - c07/rIFe/6yBXv+sgV7/rIFe/6yBXv+sgV7/rIFe/6yBXv+PWjDZj1ow2Y9aMNmPWjDZj1ow2Y9aMNmP - WjDZj1ow2Y9aMDSPWjA0j1owNI9aMDSPWjA0j1owNI9aMDSPWjA0AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI9aMBSPWjAUj1owFI9aMBSP - WjAUj1owFI9aMBSPWjAUj1owhI9aMISPWjCEj1owhI9aMISPWjCEj1owhI9aMISPWjCjj1owo49aMKOP - WjCjj1owo49aMKOPWjCjj1owo49aMLaPWjC2j1owto9aMLaPWjC2j1owto9aMLaPWjC2j1owyY9aMMmP - WjDJj1owyY9aMMmPWjDJj1owyY9aMMmPWjDaj1ow2o9aMNqPWjDaj1ow2o9aMNqPWjDaj1ow2o9aMOuP - WjDrj1ow649aMOuPWjDrj1ow649aMOuPWjDrj1ow+o9aMPqPWjD6j1ow+o9aMPqPWjD6j1ow+o9aMPqU - YDj/lGA4/5RgOP+UYDj/lGA4/5RgOP+UYDj/lGA4/5loQP+ZaED/mWhA/5loQP+ZaED/mWhA/5loQP+Z - aED/onNO/6JzTv+ic07/onNO/6JzTv+ic07/onNO/6JzTv+sgV7/rIFe/6yBXv+sgV7/rIFe/6yBXv+s - gV7/rIFe/49aMNmPWjDZj1ow2Y9aMNmPWjDZj1ow2Y9aMNmPWjDZj1owNI9aMDSPWjA0j1owNI9aMDSP - WjA0j1owNI9aMDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAj1owFI9aMBSPWjAUj1owFI9aMBSPWjAUj1owFI9aMBSPWjCEj1owhI9aMISP - WjCEj1owhI9aMISPWjCEj1owhI9aMKOPWjCjj1owo49aMKOPWjCjj1owo49aMKOPWjCjj1owto9aMLaP - WjC2j1owto9aMLaPWjC2j1owto9aMLaPWjDJj1owyY9aMMmPWjDJj1owyY9aMMmPWjDJj1owyY9aMNqP - WjDaj1ow2o9aMNqPWjDaj1ow2o9aMNqPWjDaj1ow649aMOuPWjDrj1ow649aMOuPWjDrj1ow649aMOuP - WjD6j1ow+o9aMPqPWjD6j1ow+o9aMPqPWjD6j1ow+pRgOP+UYDj/lGA4/5RgOP+UYDj/lGA4/5RgOP+U - YDj/mWhA/5loQP+ZaED/mWhA/5loQP+ZaED/mWhA/5loQP+ic07/onNO/6JzTv+ic07/onNO/6JzTv+i - c07/onNO/6yBXv+sgV7/rIFe/6yBXv+sgV7/rIFe/6yBXv+sgV7/j1ow2Y9aMNmPWjDZj1ow2Y9aMNmP - WjDZj1ow2Y9aMNmPWjA0j1owNI9aMDSPWjA0j1owNI9aMDSPWjA0j1owNAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPWjAUj1owFI9aMBSP - WjAUj1owFI9aMBSPWjAUj1owFI9aMISPWjCEj1owhI9aMISPWjCEj1owhI9aMISPWjCEj1owo49aMKOP - WjCjj1owo49aMKOPWjCjj1owo49aMKOPWjC2j1owto9aMLaPWjC2j1owto9aMLaPWjC2j1owto9aMMmP - WjDJj1owyY9aMMmPWjDJj1owyY9aMMmPWjDJj1ow2o9aMNqPWjDaj1ow2o9aMNqPWjDaj1ow2o9aMNqP - WjDrj1ow649aMOuPWjDrj1ow649aMOuPWjDrj1ow649aMPqPWjD6j1ow+o9aMPqPWjD6j1ow+o9aMPqP - WjD6lGA4/5RgOP+UYDj/lGA4/5RgOP+UYDj/lGA4/5RgOP+ZaED/mWhA/5loQP+ZaED/mWhA/5loQP+Z - aED/mWhA/6JzTv+ic07/onNO/6JzTv+ic07/onNO/6JzTv+ic07/rIFe/6yBXv+sgV7/rIFe/6yBXv+s - gV7/rIFe/6yBXv+PWjDZj1ow2Y9aMNmPWjDZj1ow2Y9aMNmPWjDZj1ow2Y9aMDSPWjA0j1owNI9aMDSP - WjA0j1owNI9aMDSPWjA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAJNeMmiTXjJok14yaJNeMmiTXjJok14yaJNeMmiTXjJot49s/7ePbP+3 - j2z/t49s/7ePbP+3j2z/t49s/7ePbP/WuaL/1rmi/9a5ov/WuaL/1rmi/9a5ov/WuaL/1rmi/9/Fsv/f - xbL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/fxbL/59TC/+fUwv/n1ML/59TC/+fUwv/n1ML/59TC/+fUwv/u - 39P/7t/T/+7f0//u39P/7t/T/+7f0//u39P/7t/T//Xq4v/16uL/9eri//Xq4v/16uL/9eri//Xq4v/1 - 6uL/+/Tv//v07//79O//+/Tv//v07//79O//+/Tv//v07//9+vb//fr2//369v/9+vb//fr2//369v/9 - +vb//fr2///+/f///v3///79///+/f///v3///79///+/f///v3/++vf//vr3//769//++vf//vr3//7 - 69//++vf//vr3//77+b/++/m//vv5v/77+b/++/m//vv5v/77+b/++/m/8Ccf//AnH//wJx//8Ccf//A - nH//wJx//8Ccf//AnH//k14yb5NeMm+TXjJvk14yb5NeMm+TXjJvk14yb5NeMm8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk14yaJNeMmiT - XjJok14yaJNeMmiTXjJok14yaJNeMmi3j2z/t49s/7ePbP+3j2z/t49s/7ePbP+3j2z/t49s/9a5ov/W - uaL/1rmi/9a5ov/WuaL/1rmi/9a5ov/WuaL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/n - 1ML/59TC/+fUwv/n1ML/59TC/+fUwv/n1ML/59TC/+7f0//u39P/7t/T/+7f0//u39P/7t/T/+7f0//u - 39P/9eri//Xq4v/16uL/9eri//Xq4v/16uL/9eri//Xq4v/79O//+/Tv//v07//79O//+/Tv//v07//7 - 9O//+/Tv//369v/9+vb//fr2//369v/9+vb//fr2//369v/9+vb///79///+/f///v3///79///+/f// - /v3///79///+/f/769//++vf//vr3//769//++vf//vr3//769//++vf//vv5v/77+b/++/m//vv5v/7 - 7+b/++/m//vv5v/77+b/wJx//8Ccf//AnH//wJx//8Ccf//AnH//wJx//8Ccf/+TXjJvk14yb5NeMm+T - XjJvk14yb5NeMm+TXjJvk14ybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTXjJok14yaJNeMmiTXjJok14yaJNeMmiTXjJok14yaLePbP+3 - j2z/t49s/7ePbP+3j2z/t49s/7ePbP+3j2z/1rmi/9a5ov/WuaL/1rmi/9a5ov/WuaL/1rmi/9a5ov/f - xbL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/fxbL/38Wy/+fUwv/n1ML/59TC/+fUwv/n1ML/59TC/+fUwv/n - 1ML/7t/T/+7f0//u39P/7t/T/+7f0//u39P/7t/T/+7f0//16uL/9eri//Xq4v/16uL/9eri//Xq4v/1 - 6uL/9eri//v07//79O//+/Tv//v07//79O//+/Tv//v07//79O///fr2//369v/9+vb//fr2//369v/9 - +vb//fr2//369v///v3///79///+/f///v3///79///+/f///v3///79//vr3//769//++vf//vr3//7 - 69//++vf//vr3//769//++/m//vv5v/77+b/++/m//vv5v/77+b/++/m//vv5v/AnH//wJx//8Ccf//A - nH//wJx//8Ccf//AnH//wJx//5NeMm+TXjJvk14yb5NeMm+TXjJvk14yb5NeMm+TXjJvAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJNeMmiT - XjJok14yaJNeMmiTXjJok14yaJNeMmiTXjJot49s/7ePbP+3j2z/t49s/7ePbP+3j2z/t49s/7ePbP/W - uaL/1rmi/9a5ov/WuaL/1rmi/9a5ov/WuaL/1rmi/9/Fsv/fxbL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/f - xbL/59TC/+fUwv/n1ML/59TC/+fUwv/n1ML/59TC/+fUwv/u39P/7t/T/+7f0//u39P/7t/T/+7f0//u - 39P/7t/T//Xq4v/16uL/9eri//Xq4v/16uL/9eri//Xq4v/16uL/+/Tv//v07//79O//+/Tv//v07//7 - 9O//+/Tv//v07//9+vb//fr2//369v/9+vb//fr2//369v/9+vb//fr2///+/f///v3///79///+/f// - /v3///79///+/f///v3/++vf//vr3//769//++vf//vr3//769//++vf//vr3//77+b/++/m//vv5v/7 - 7+b/++/m//vv5v/77+b/++/m/8Ccf//AnH//wJx//8Ccf//AnH//wJx//8Ccf//AnH//k14yb5NeMm+T - XjJvk14yb5NeMm+TXjJvk14yb5NeMm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk14yaJNeMmiTXjJok14yaJNeMmiTXjJok14yaJNeMmi3 - j2z/t49s/7ePbP+3j2z/t49s/7ePbP+3j2z/t49s/9a5ov/WuaL/1rmi/9a5ov/WuaL/1rmi/9a5ov/W - uaL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/n1ML/59TC/+fUwv/n1ML/59TC/+fUwv/n - 1ML/59TC/+7f0//u39P/7t/T/+7f0//u39P/7t/T/+7f0//u39P/9eri//Xq4v/16uL/9eri//Xq4v/1 - 6uL/9eri//Xq4v/79O//+/Tv//v07//79O//+/Tv//v07//79O//+/Tv//369v/9+vb//fr2//369v/9 - +vb//fr2//369v/9+vb///79///+/f///v3///79///+/f///v3///79///+/f/769//++vf//vr3//7 - 69//++vf//vr3//769//++vf//vv5v/77+b/++/m//vv5v/77+b/++/m//vv5v/77+b/wJx//8Ccf//A - nH//wJx//8Ccf//AnH//wJx//8Ccf/+TXjJvk14yb5NeMm+TXjJvk14yb5NeMm+TXjJvk14ybwAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACT - XjJok14yaJNeMmiTXjJok14yaJNeMmiTXjJok14yaLePbP+3j2z/t49s/7ePbP+3j2z/t49s/7ePbP+3 - j2z/1rmi/9a5ov/WuaL/1rmi/9a5ov/WuaL/1rmi/9a5ov/fxbL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/f - xbL/38Wy/+fUwv/n1ML/59TC/+fUwv/n1ML/59TC/+fUwv/n1ML/7t/T/+7f0//u39P/7t/T/+7f0//u - 39P/7t/T/+7f0//16uL/9eri//Xq4v/16uL/9eri//Xq4v/16uL/9eri//v07//79O//+/Tv//v07//7 - 9O//+/Tv//v07//79O///fr2//369v/9+vb//fr2//369v/9+vb//fr2//369v///v3///79///+/f// - /v3///79///+/f///v3///79//vr3//769//++vf//vr3//769//++vf//vr3//769//++/m//vv5v/7 - 7+b/++/m//vv5v/77+b/++/m//vv5v/AnH//wJx//8Ccf//AnH//wJx//8Ccf//AnH//wJx//5NeMm+T - XjJvk14yb5NeMm+TXjJvk14yb5NeMm+TXjJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJNeMmiTXjJok14yaJNeMmiTXjJok14yaJNeMmiT - XjJot49s/7ePbP+3j2z/t49s/7ePbP+3j2z/t49s/7ePbP/WuaL/1rmi/9a5ov/WuaL/1rmi/9a5ov/W - uaL/1rmi/9/Fsv/fxbL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/fxbL/59TC/+fUwv/n1ML/59TC/+fUwv/n - 1ML/59TC/+fUwv/u39P/7t/T/+7f0//u39P/7t/T/+7f0//u39P/7t/T//Xq4v/16uL/9eri//Xq4v/1 - 6uL/9eri//Xq4v/16uL/+/Tv//v07//79O//+/Tv//v07//79O//+/Tv//v07//9+vb//fr2//369v/9 - +vb//fr2//369v/9+vb//fr2///+/f///v3///79///+/f///v3///79///+/f///v3/++vf//vr3//7 - 69//++vf//vr3//769//++vf//vr3//77+b/++/m//vv5v/77+b/++/m//vv5v/77+b/++/m/8Ccf//A - nH//wJx//8Ccf//AnH//wJx//8Ccf//AnH//k14yb5NeMm+TXjJvk14yb5NeMm+TXjJvk14yb5NeMm8A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAk14yaJNeMmiTXjJok14yaJNeMmiTXjJok14yaJNeMmi3j2z/t49s/7ePbP+3j2z/t49s/7ePbP+3 - j2z/t49s/9a5ov/WuaL/1rmi/9a5ov/WuaL/1rmi/9a5ov/WuaL/38Wy/9/Fsv/fxbL/38Wy/9/Fsv/f - xbL/38Wy/9/Fsv/n1ML/59TC/+fUwv/n1ML/59TC/+fUwv/n1ML/59TC/+7f0//u39P/7t/T/+7f0//u - 39P/7t/T/+7f0//u39P/9eri//Xq4v/16uL/9eri//Xq4v/16uL/9eri//Xq4v/79O//+/Tv//v07//7 - 9O//+/Tv//v07//79O//+/Tv//369v/9+vb//fr2//369v/9+vb//fr2//369v/9+vb///79///+/f// - /v3///79///+/f///v3///79///+/f/769//++vf//vr3//769//++vf//vr3//769//++vf//vv5v/7 - 7+b/++/m//vv5v/77+b/++/m//vv5v/77+b/wJx//8Ccf//AnH//wJx//8Ccf//AnH//wJx//8Ccf/+T - XjJvk14yb5NeMm+TXjJvk14yb5NeMm+TXjJvk14ybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYYzWJmGM1iZhjNYmYYzWJmGM1iZhjNYmY - YzWJmGM1icejhP/Ho4T/x6OE/8ejhP/Ho4T/x6OE/8ejhP/Ho4T///////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////vz///78///+/P// - /vz///78///+/P///vz///78//779//++/f//vv3//779//++/f//vv3//779//++/f//vfx//738f/+ - 9/H//vfx//738f/+9/H//vfx//738f/+9vH//vbx//728f/+9vH//vbx//728f/+9vH//vbx/+Sthf/k - rYX/5K2F/+Sthf/krYX/5K2F/+Sthf/krYX/+ujb//ro2//66Nv/+ujb//ro2//66Nv/+ujb//ro2//O - rpT/zq6U/86ulP/OrpT/zq6U/86ulP/OrpT/zq6U/5hjNYuYYzWLmGM1i5hjNYuYYzWLmGM1i5hjNYuY - YzWLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAJhjNYmYYzWJmGM1iZhjNYmYYzWJmGM1iZhjNYmYYzWJx6OE/8ejhP/Ho4T/x6OE/8ejhP/H - o4T/x6OE/8ejhP////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////+/P///vz///78///+/P///vz///78///+/P///vz//vv3//779//+ - +/f//vv3//779//++/f//vv3//779//+9/H//vfx//738f/+9/H//vfx//738f/+9/H//vfx//728f/+ - 9vH//vbx//728f/+9vH//vbx//728f/+9vH/5K2F/+Sthf/krYX/5K2F/+Sthf/krYX/5K2F/+Sthf/6 - 6Nv/+ujb//ro2//66Nv/+ujb//ro2//66Nv/+ujb/86ulP/OrpT/zq6U/86ulP/OrpT/zq6U/86ulP/O - rpT/mGM1i5hjNYuYYzWLmGM1i5hjNYuYYzWLmGM1i5hjNYsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmGM1iZhjNYmYYzWJmGM1iZhjNYmY - YzWJmGM1iZhjNYnHo4T/x6OE/8ejhP/Ho4T/x6OE/8ejhP/Ho4T/x6OE//////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////78///+/P// - /vz///78///+/P///vz///78///+/P/++/f//vv3//779//++/f//vv3//779//++/f//vv3//738f/+ - 9/H//vfx//738f/+9/H//vfx//738f/+9/H//vbx//728f/+9vH//vbx//728f/+9vH//vbx//728f/k - rYX/5K2F/+Sthf/krYX/5K2F/+Sthf/krYX/5K2F//ro2//66Nv/+ujb//ro2//66Nv/+ujb//ro2//6 - 6Nv/zq6U/86ulP/OrpT/zq6U/86ulP/OrpT/zq6U/86ulP+YYzWLmGM1i5hjNYuYYzWLmGM1i5hjNYuY - YzWLmGM1iwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACYYzWJmGM1iZhjNYmYYzWJmGM1iZhjNYmYYzWJmGM1icejhP/Ho4T/x6OE/8ejhP/H - o4T/x6OE/8ejhP/Ho4T///////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////vz///78///+/P///vz///78///+/P///vz///78//779//+ - +/f//vv3//779//++/f//vv3//779//++/f//vfx//738f/+9/H//vfx//738f/+9/H//vfx//738f/+ - 9vH//vbx//728f/+9vH//vbx//728f/+9vH//vbx/+Sthf/krYX/5K2F/+Sthf/krYX/5K2F/+Sthf/k - rYX/+ujb//ro2//66Nv/+ujb//ro2//66Nv/+ujb//ro2//OrpT/zq6U/86ulP/OrpT/zq6U/86ulP/O - rpT/zq6U/5hjNYuYYzWLmGM1i5hjNYuYYzWLmGM1i5hjNYuYYzWLAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhjNYmYYzWJmGM1iZhjNYmY - YzWJmGM1iZhjNYmYYzWJx6OE/8ejhP/Ho4T/x6OE/8ejhP/Ho4T/x6OE/8ejhP////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////////////////////////+/P// - /vz///78///+/P///vz///78///+/P///vz//vv3//779//++/f//vv3//779//++/f//vv3//779//+ - 9/H//vfx//738f/+9/H//vfx//738f/+9/H//vfx//728f/+9vH//vbx//728f/+9vH//vbx//728f/+ - 9vH/5K2F/+Sthf/krYX/5K2F/+Sthf/krYX/5K2F/+Sthf/66Nv/+ujb//ro2//66Nv/+ujb//ro2//6 - 6Nv/+ujb/86ulP/OrpT/zq6U/86ulP/OrpT/zq6U/86ulP/OrpT/mGM1i5hjNYuYYzWLmGM1i5hjNYuY - YzWLmGM1i5hjNYsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAmGM1iZhjNYmYYzWJmGM1iZhjNYmYYzWJmGM1iZhjNYnHo4T/x6OE/8ejhP/H - o4T/x6OE/8ejhP/Ho4T/x6OE//////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////78///+/P///vz///78///+/P///vz///78///+/P/+ - +/f//vv3//779//++/f//vv3//779//++/f//vv3//738f/+9/H//vfx//738f/+9/H//vfx//738f/+ - 9/H//vbx//728f/+9vH//vbx//728f/+9vH//vbx//728f/krYX/5K2F/+Sthf/krYX/5K2F/+Sthf/k - rYX/5K2F//ro2//66Nv/+ujb//ro2//66Nv/+ujb//ro2//66Nv/zq6U/86ulP/OrpT/zq6U/86ulP/O - rpT/zq6U/86ulP+YYzWLmGM1i5hjNYuYYzWLmGM1i5hjNYuYYzWLmGM1iwAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYYzWJmGM1iZhjNYmY - YzWJmGM1iZhjNYmYYzWJmGM1icejhP/Ho4T/x6OE/8ejhP/Ho4T/x6OE/8ejhP/Ho4T///////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /vz///78///+/P///vz///78///+/P///vz///78//779//++/f//vv3//779//++/f//vv3//779//+ - +/f//vfx//738f/+9/H//vfx//738f/+9/H//vfx//738f/+9vH//vbx//728f/+9vH//vbx//728f/+ - 9vH//vbx/+Sthf/krYX/5K2F/+Sthf/krYX/5K2F/+Sthf/krYX/+ujb//ro2//66Nv/+ujb//ro2//6 - 6Nv/+ujb//ro2//OrpT/zq6U/86ulP/OrpT/zq6U/86ulP/OrpT/zq6U/5hjNYuYYzWLmGM1i5hjNYuY - YzWLmGM1i5hjNYuYYzWLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAJhjNYmYYzWJmGM1iZhjNYmYYzWJmGM1iZhjNYmYYzWJx6OE/8ejhP/H - o4T/x6OE/8ejhP/Ho4T/x6OE/8ejhP////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////+/P///vz///78///+/P///vz///78///+/P// - /vz//vv3//779//++/f//vv3//779//++/f//vv3//779//+9/H//vfx//738f/+9/H//vfx//738f/+ - 9/H//vfx//728f/+9vH//vbx//728f/+9vH//vbx//728f/+9vH/5K2F/+Sthf/krYX/5K2F/+Sthf/k - rYX/5K2F/+Sthf/66Nv/+ujb//ro2//66Nv/+ujb//ro2//66Nv/+ujb/86ulP/OrpT/zq6U/86ulP/O - rpT/zq6U/86ulP/OrpT/mGM1i5hjNYuYYzWLmGM1i5hjNYuYYzWLmGM1i5hjNYsAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnWg4V51oOFed - aDhXnWg4V51oOFedaDhXnWg4V51oOFedaDj2nWg49p1oOPadaDj2nWg49p1oOPadaDj2nWg49rOEWP+z - hFj/s4RY/7OEWP+zhFj/s4RY/7OEWP+zhFj/2aR6/9mkev/ZpHr/2aR6/9mkev/ZpHr/2aR6/9mkev/Y - nW7/2J1u/9idbv/YnW7/2J1u/9idbv/YnW7/2J1u/9eaaf/Xmmn/15pp/9eaaf/Xmmn/15pp/9eaaf/X - mmn/2JVi/9iVYv/YlWL/2JVi/9iVYv/YlWL/2JVi/9iVYv/WkVz/1pFc/9aRXP/WkVz/1pFc/9aRXP/W - kVz/1pFc/9SOWP/Ujlj/1I5Y/9SOWP/Ujlj/1I5Y/9SOWP/Ujlj/041W/9ONVv/TjVb/041W/9ONVv/T - jVb/041W/9ONVv/inGj/4pxo/+KcaP/inGj/4pxo/+KcaP/inGj/4pxo//rj0f/649H/+uPR//rj0f/6 - 49H/+uPR//rj0f/649H/2Lqh/9i6of/YuqH/2Lqh/9i6of/YuqH/2Lqh/9i6of+daDienWg4np1oOJ6d - aDienWg4np1oOJ6daDienWg4ngAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdaDhXnWg4V51oOFedaDhXnWg4V51oOFedaDhXnWg4V51oOPad - aDj2nWg49p1oOPadaDj2nWg49p1oOPadaDj2s4RY/7OEWP+zhFj/s4RY/7OEWP+zhFj/s4RY/7OEWP/Z - pHr/2aR6/9mkev/ZpHr/2aR6/9mkev/ZpHr/2aR6/9idbv/YnW7/2J1u/9idbv/YnW7/2J1u/9idbv/Y - nW7/15pp/9eaaf/Xmmn/15pp/9eaaf/Xmmn/15pp/9eaaf/YlWL/2JVi/9iVYv/YlWL/2JVi/9iVYv/Y - lWL/2JVi/9aRXP/WkVz/1pFc/9aRXP/WkVz/1pFc/9aRXP/WkVz/1I5Y/9SOWP/Ujlj/1I5Y/9SOWP/U - jlj/1I5Y/9SOWP/TjVb/041W/9ONVv/TjVb/041W/9ONVv/TjVb/041W/+KcaP/inGj/4pxo/+KcaP/i - nGj/4pxo/+KcaP/inGj/+uPR//rj0f/649H/+uPR//rj0f/649H/+uPR//rj0f/YuqH/2Lqh/9i6of/Y - uqH/2Lqh/9i6of/YuqH/2Lqh/51oOJ6daDienWg4np1oOJ6daDienWg4np1oOJ6daDieAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ1oOFed - aDhXnWg4V51oOFedaDhXnWg4V51oOFedaDhXnWg49p1oOPadaDj2nWg49p1oOPadaDj2nWg49p1oOPaz - hFj/s4RY/7OEWP+zhFj/s4RY/7OEWP+zhFj/s4RY/9mkev/ZpHr/2aR6/9mkev/ZpHr/2aR6/9mkev/Z - pHr/2J1u/9idbv/YnW7/2J1u/9idbv/YnW7/2J1u/9idbv/Xmmn/15pp/9eaaf/Xmmn/15pp/9eaaf/X - mmn/15pp/9iVYv/YlWL/2JVi/9iVYv/YlWL/2JVi/9iVYv/YlWL/1pFc/9aRXP/WkVz/1pFc/9aRXP/W - kVz/1pFc/9aRXP/Ujlj/1I5Y/9SOWP/Ujlj/1I5Y/9SOWP/Ujlj/1I5Y/9ONVv/TjVb/041W/9ONVv/T - jVb/041W/9ONVv/TjVb/4pxo/+KcaP/inGj/4pxo/+KcaP/inGj/4pxo/+KcaP/649H/+uPR//rj0f/6 - 49H/+uPR//rj0f/649H/+uPR/9i6of/YuqH/2Lqh/9i6of/YuqH/2Lqh/9i6of/YuqH/nWg4np1oOJ6d - aDienWg4np1oOJ6daDienWg4np1oOJ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnWg4V51oOFedaDhXnWg4V51oOFedaDhXnWg4V51oOFed - aDj2nWg49p1oOPadaDj2nWg49p1oOPadaDj2nWg49rOEWP+zhFj/s4RY/7OEWP+zhFj/s4RY/7OEWP+z - hFj/2aR6/9mkev/ZpHr/2aR6/9mkev/ZpHr/2aR6/9mkev/YnW7/2J1u/9idbv/YnW7/2J1u/9idbv/Y - nW7/2J1u/9eaaf/Xmmn/15pp/9eaaf/Xmmn/15pp/9eaaf/Xmmn/2JVi/9iVYv/YlWL/2JVi/9iVYv/Y - lWL/2JVi/9iVYv/WkVz/1pFc/9aRXP/WkVz/1pFc/9aRXP/WkVz/1pFc/9SOWP/Ujlj/1I5Y/9SOWP/U - jlj/1I5Y/9SOWP/Ujlj/041W/9ONVv/TjVb/041W/9ONVv/TjVb/041W/9ONVv/inGj/4pxo/+KcaP/i - nGj/4pxo/+KcaP/inGj/4pxo//rj0f/649H/+uPR//rj0f/649H/+uPR//rj0f/649H/2Lqh/9i6of/Y - uqH/2Lqh/9i6of/YuqH/2Lqh/9i6of+daDienWg4np1oOJ6daDienWg4np1oOJ6daDienWg4ngAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACd - aDhXnWg4V51oOFedaDhXnWg4V51oOFedaDhXnWg4V51oOPadaDj2nWg49p1oOPadaDj2nWg49p1oOPad - aDj2s4RY/7OEWP+zhFj/s4RY/7OEWP+zhFj/s4RY/7OEWP/ZpHr/2aR6/9mkev/ZpHr/2aR6/9mkev/Z - pHr/2aR6/9idbv/YnW7/2J1u/9idbv/YnW7/2J1u/9idbv/YnW7/15pp/9eaaf/Xmmn/15pp/9eaaf/X - mmn/15pp/9eaaf/YlWL/2JVi/9iVYv/YlWL/2JVi/9iVYv/YlWL/2JVi/9aRXP/WkVz/1pFc/9aRXP/W - kVz/1pFc/9aRXP/WkVz/1I5Y/9SOWP/Ujlj/1I5Y/9SOWP/Ujlj/1I5Y/9SOWP/TjVb/041W/9ONVv/T - jVb/041W/9ONVv/TjVb/041W/+KcaP/inGj/4pxo/+KcaP/inGj/4pxo/+KcaP/inGj/+uPR//rj0f/6 - 49H/+uPR//rj0f/649H/+uPR//rj0f/YuqH/2Lqh/9i6of/YuqH/2Lqh/9i6of/YuqH/2Lqh/51oOJ6d - aDienWg4np1oOJ6daDienWg4np1oOJ6daDieAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ1oOFedaDhXnWg4V51oOFedaDhXnWg4V51oOFed - aDhXnWg49p1oOPadaDj2nWg49p1oOPadaDj2nWg49p1oOPazhFj/s4RY/7OEWP+zhFj/s4RY/7OEWP+z - hFj/s4RY/9mkev/ZpHr/2aR6/9mkev/ZpHr/2aR6/9mkev/ZpHr/2J1u/9idbv/YnW7/2J1u/9idbv/Y - nW7/2J1u/9idbv/Xmmn/15pp/9eaaf/Xmmn/15pp/9eaaf/Xmmn/15pp/9iVYv/YlWL/2JVi/9iVYv/Y - lWL/2JVi/9iVYv/YlWL/1pFc/9aRXP/WkVz/1pFc/9aRXP/WkVz/1pFc/9aRXP/Ujlj/1I5Y/9SOWP/U - jlj/1I5Y/9SOWP/Ujlj/1I5Y/9ONVv/TjVb/041W/9ONVv/TjVb/041W/9ONVv/TjVb/4pxo/+KcaP/i - nGj/4pxo/+KcaP/inGj/4pxo/+KcaP/649H/+uPR//rj0f/649H/+uPR//rj0f/649H/+uPR/9i6of/Y - uqH/2Lqh/9i6of/YuqH/2Lqh/9i6of/YuqH/nWg4np1oOJ6daDienWg4np1oOJ6daDienWg4np1oOJ4A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAnWg4V51oOFedaDhXnWg4V51oOFedaDhXnWg4V51oOFedaDj2nWg49p1oOPadaDj2nWg49p1oOPad - aDj2nWg49rOEWP+zhFj/s4RY/7OEWP+zhFj/s4RY/7OEWP+zhFj/2aR6/9mkev/ZpHr/2aR6/9mkev/Z - pHr/2aR6/9mkev/YnW7/2J1u/9idbv/YnW7/2J1u/9idbv/YnW7/2J1u/9eaaf/Xmmn/15pp/9eaaf/X - mmn/15pp/9eaaf/Xmmn/2JVi/9iVYv/YlWL/2JVi/9iVYv/YlWL/2JVi/9iVYv/WkVz/1pFc/9aRXP/W - kVz/1pFc/9aRXP/WkVz/1pFc/9SOWP/Ujlj/1I5Y/9SOWP/Ujlj/1I5Y/9SOWP/Ujlj/041W/9ONVv/T - jVb/041W/9ONVv/TjVb/041W/9ONVv/inGj/4pxo/+KcaP/inGj/4pxo/+KcaP/inGj/4pxo//rj0f/6 - 49H/+uPR//rj0f/649H/+uPR//rj0f/649H/2Lqh/9i6of/YuqH/2Lqh/9i6of/YuqH/2Lqh/9i6of+d - aDienWg4np1oOJ6daDienWg4np1oOJ6daDienWg4ngAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdaDhXnWg4V51oOFedaDhXnWg4V51oOFed - aDhXnWg4V51oOPadaDj2nWg49p1oOPadaDj2nWg49p1oOPadaDj2s4RY/7OEWP+zhFj/s4RY/7OEWP+z - hFj/s4RY/7OEWP/ZpHr/2aR6/9mkev/ZpHr/2aR6/9mkev/ZpHr/2aR6/9idbv/YnW7/2J1u/9idbv/Y - nW7/2J1u/9idbv/YnW7/15pp/9eaaf/Xmmn/15pp/9eaaf/Xmmn/15pp/9eaaf/YlWL/2JVi/9iVYv/Y - lWL/2JVi/9iVYv/YlWL/2JVi/9aRXP/WkVz/1pFc/9aRXP/WkVz/1pFc/9aRXP/WkVz/1I5Y/9SOWP/U - jlj/1I5Y/9SOWP/Ujlj/1I5Y/9SOWP/TjVb/041W/9ONVv/TjVb/041W/9ONVv/TjVb/041W/+KcaP/i - nGj/4pxo/+KcaP/inGj/4pxo/+KcaP/inGj/+uPR//rj0f/649H/+uPR//rj0f/649H/+uPR//rj0f/Y - uqH/2Lqh/9i6of/YuqH/2Lqh/9i6of/YuqH/2Lqh/51oOJ6daDienWg4np1oOJ6daDienWg4np1oOJ6d - aDieAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAKNuOxSjbjsUo247FKNuOxSjbjsUo247FKNuOxSjbjsUo247q6NuO6ujbjuro247q6NuO6uj - bjuro247q6NuO6vVrYv/1a2L/9Wti//VrYv/1a2L/9Wti//VrYv/1a2L//3w5f/98OX//fDl//3w5f/9 - 8OX//fDl//3w5f/98OX/98eh//fHof/3x6H/98eh//fHof/3x6H/98eh//fHof/3z6z/98+s//fPrP/3 - z6z/98+s//fPrP/3z6z/98+s//nVtP/51bT/+dW0//nVtP/51bT/+dW0//nVtP/51bT/+Nq8//javP/4 - 2rz/+Nq8//javP/42rz/+Nq8//javP/43sH/+N7B//jewf/43sH/+N7B//jewf/43sH/+N7B//rhxf/6 - 4cX/+uHF//rhxf/64cX/+uHF//rhxf/64cX/+uTM//rkzP/65Mz/+uTM//rkzP/65Mz/+uTM//rkzP/9 - 9ez//fXs//317P/99ez//fXs//317P/99ez//fXs/+LOuf/izrn/4s65/+LOuf/izrn/4s65/+LOuf/i - zrn/o247s6NuO7Ojbjuzo247s6NuO7Ojbjuzo247s6NuO7MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo247FKNuOxSjbjsUo247FKNuOxSj - bjsUo247FKNuOxSjbjuro247q6NuO6ujbjuro247q6NuO6ujbjuro247q9Wti//VrYv/1a2L/9Wti//V - rYv/1a2L/9Wti//VrYv//fDl//3w5f/98OX//fDl//3w5f/98OX//fDl//3w5f/3x6H/98eh//fHof/3 - x6H/98eh//fHof/3x6H/98eh//fPrP/3z6z/98+s//fPrP/3z6z/98+s//fPrP/3z6z/+dW0//nVtP/5 - 1bT/+dW0//nVtP/51bT/+dW0//nVtP/42rz/+Nq8//javP/42rz/+Nq8//javP/42rz/+Nq8//jewf/4 - 3sH/+N7B//jewf/43sH/+N7B//jewf/43sH/+uHF//rhxf/64cX/+uHF//rhxf/64cX/+uHF//rhxf/6 - 5Mz/+uTM//rkzP/65Mz/+uTM//rkzP/65Mz/+uTM//317P/99ez//fXs//317P/99ez//fXs//317P/9 - 9ez/4s65/+LOuf/izrn/4s65/+LOuf/izrn/4s65/+LOuf+jbjuzo247s6NuO7Ojbjuzo247s6NuO7Oj - bjuzo247swAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACjbjsUo247FKNuOxSjbjsUo247FKNuOxSjbjsUo247FKNuO6ujbjuro247q6NuO6uj - bjuro247q6NuO6ujbjur1a2L/9Wti//VrYv/1a2L/9Wti//VrYv/1a2L/9Wti//98OX//fDl//3w5f/9 - 8OX//fDl//3w5f/98OX//fDl//fHof/3x6H/98eh//fHof/3x6H/98eh//fHof/3x6H/98+s//fPrP/3 - z6z/98+s//fPrP/3z6z/98+s//fPrP/51bT/+dW0//nVtP/51bT/+dW0//nVtP/51bT/+dW0//javP/4 - 2rz/+Nq8//javP/42rz/+Nq8//javP/42rz/+N7B//jewf/43sH/+N7B//jewf/43sH/+N7B//jewf/6 - 4cX/+uHF//rhxf/64cX/+uHF//rhxf/64cX/+uHF//rkzP/65Mz/+uTM//rkzP/65Mz/+uTM//rkzP/6 - 5Mz//fXs//317P/99ez//fXs//317P/99ez//fXs//317P/izrn/4s65/+LOuf/izrn/4s65/+LOuf/i - zrn/4s65/6NuO7Ojbjuzo247s6NuO7Ojbjuzo247s6NuO7OjbjuzAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKNuOxSjbjsUo247FKNuOxSj - bjsUo247FKNuOxSjbjsUo247q6NuO6ujbjuro247q6NuO6ujbjuro247q6NuO6vVrYv/1a2L/9Wti//V - rYv/1a2L/9Wti//VrYv/1a2L//3w5f/98OX//fDl//3w5f/98OX//fDl//3w5f/98OX/98eh//fHof/3 - x6H/98eh//fHof/3x6H/98eh//fHof/3z6z/98+s//fPrP/3z6z/98+s//fPrP/3z6z/98+s//nVtP/5 - 1bT/+dW0//nVtP/51bT/+dW0//nVtP/51bT/+Nq8//javP/42rz/+Nq8//javP/42rz/+Nq8//javP/4 - 3sH/+N7B//jewf/43sH/+N7B//jewf/43sH/+N7B//rhxf/64cX/+uHF//rhxf/64cX/+uHF//rhxf/6 - 4cX/+uTM//rkzP/65Mz/+uTM//rkzP/65Mz/+uTM//rkzP/99ez//fXs//317P/99ez//fXs//317P/9 - 9ez//fXs/+LOuf/izrn/4s65/+LOuf/izrn/4s65/+LOuf/izrn/o247s6NuO7Ojbjuzo247s6NuO7Oj - bjuzo247s6NuO7MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAo247FKNuOxSjbjsUo247FKNuOxSjbjsUo247FKNuOxSjbjuro247q6NuO6uj - bjuro247q6NuO6ujbjuro247q9Wti//VrYv/1a2L/9Wti//VrYv/1a2L/9Wti//VrYv//fDl//3w5f/9 - 8OX//fDl//3w5f/98OX//fDl//3w5f/3x6H/98eh//fHof/3x6H/98eh//fHof/3x6H/98eh//fPrP/3 - z6z/98+s//fPrP/3z6z/98+s//fPrP/3z6z/+dW0//nVtP/51bT/+dW0//nVtP/51bT/+dW0//nVtP/4 - 2rz/+Nq8//javP/42rz/+Nq8//javP/42rz/+Nq8//jewf/43sH/+N7B//jewf/43sH/+N7B//jewf/4 - 3sH/+uHF//rhxf/64cX/+uHF//rhxf/64cX/+uHF//rhxf/65Mz/+uTM//rkzP/65Mz/+uTM//rkzP/6 - 5Mz/+uTM//317P/99ez//fXs//317P/99ez//fXs//317P/99ez/4s65/+LOuf/izrn/4s65/+LOuf/i - zrn/4s65/+LOuf+jbjuzo247s6NuO7Ojbjuzo247s6NuO7Ojbjuzo247swAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjbjsUo247FKNuOxSj - bjsUo247FKNuOxSjbjsUo247FKNuO6ujbjuro247q6NuO6ujbjuro247q6NuO6ujbjur1a2L/9Wti//V - rYv/1a2L/9Wti//VrYv/1a2L/9Wti//98OX//fDl//3w5f/98OX//fDl//3w5f/98OX//fDl//fHof/3 - x6H/98eh//fHof/3x6H/98eh//fHof/3x6H/98+s//fPrP/3z6z/98+s//fPrP/3z6z/98+s//fPrP/5 - 1bT/+dW0//nVtP/51bT/+dW0//nVtP/51bT/+dW0//javP/42rz/+Nq8//javP/42rz/+Nq8//javP/4 - 2rz/+N7B//jewf/43sH/+N7B//jewf/43sH/+N7B//jewf/64cX/+uHF//rhxf/64cX/+uHF//rhxf/6 - 4cX/+uHF//rkzP/65Mz/+uTM//rkzP/65Mz/+uTM//rkzP/65Mz//fXs//317P/99ez//fXs//317P/9 - 9ez//fXs//317P/izrn/4s65/+LOuf/izrn/4s65/+LOuf/izrn/4s65/6NuO7Ojbjuzo247s6NuO7Oj - bjuzo247s6NuO7OjbjuzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAKNuOxSjbjsUo247FKNuOxSjbjsUo247FKNuOxSjbjsUo247q6NuO6uj - bjuro247q6NuO6ujbjuro247q6NuO6vVrYv/1a2L/9Wti//VrYv/1a2L/9Wti//VrYv/1a2L//3w5f/9 - 8OX//fDl//3w5f/98OX//fDl//3w5f/98OX/98eh//fHof/3x6H/98eh//fHof/3x6H/98eh//fHof/3 - z6z/98+s//fPrP/3z6z/98+s//fPrP/3z6z/98+s//nVtP/51bT/+dW0//nVtP/51bT/+dW0//nVtP/5 - 1bT/+Nq8//javP/42rz/+Nq8//javP/42rz/+Nq8//javP/43sH/+N7B//jewf/43sH/+N7B//jewf/4 - 3sH/+N7B//rhxf/64cX/+uHF//rhxf/64cX/+uHF//rhxf/64cX/+uTM//rkzP/65Mz/+uTM//rkzP/6 - 5Mz/+uTM//rkzP/99ez//fXs//317P/99ez//fXs//317P/99ez//fXs/+LOuf/izrn/4s65/+LOuf/i - zrn/4s65/+LOuf/izrn/o247s6NuO7Ojbjuzo247s6NuO7Ojbjuzo247s6NuO7MAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo247FKNuOxSj - bjsUo247FKNuOxSjbjsUo247FKNuOxSjbjuro247q6NuO6ujbjuro247q6NuO6ujbjuro247q9Wti//V - rYv/1a2L/9Wti//VrYv/1a2L/9Wti//VrYv//fDl//3w5f/98OX//fDl//3w5f/98OX//fDl//3w5f/3 - x6H/98eh//fHof/3x6H/98eh//fHof/3x6H/98eh//fPrP/3z6z/98+s//fPrP/3z6z/98+s//fPrP/3 - z6z/+dW0//nVtP/51bT/+dW0//nVtP/51bT/+dW0//nVtP/42rz/+Nq8//javP/42rz/+Nq8//javP/4 - 2rz/+Nq8//jewf/43sH/+N7B//jewf/43sH/+N7B//jewf/43sH/+uHF//rhxf/64cX/+uHF//rhxf/6 - 4cX/+uHF//rhxf/65Mz/+uTM//rkzP/65Mz/+uTM//rkzP/65Mz/+uTM//317P/99ez//fXs//317P/9 - 9ez//fXs//317P/99ez/4s65/+LOuf/izrn/4s65/+LOuf/izrn/4s65/+LOuf+jbjuzo247s6NuO7Oj - bjuzo247s6NuO7Ojbjuzo247swAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKl0Pyip - dD8oqXQ/KKl0PyipdD8oqXQ/KKl0PyipdD8otoVV/7aFVf+2hVX/toVV/7aFVf+2hVX/toVV/7aFVf/+ - /v3//v79//7+/f/+/v3//v79//7+/f/+/v3//v79//rewf/63sH/+t7B//rewf/63sH/+t7B//rewf/6 - 3sH/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+ty+//rcvv/527//+du///nbv//527//+du///nbv//5 - 27//+du///nbv//527//+du///nbv//527//+du///nbv//527//+d3A//ndwP/53cD/+d3A//ndwP/5 - 3cD/+d3A//ndwP/627//+tu///rbv//627//+tu///rbv//627//+tu///rcwv/63ML/+tzC//rcwv/6 - 3ML/+tzC//rcwv/63ML//eve//3r3v/9697//eve//3r3v/9697//eve//3r3v/s3M3/7NzN/+zczf/s - 3M3/7NzN/+zczf/s3M3/7NzN/6l0P8qpdD/KqXQ/yql0P8qpdD/KqXQ/yql0P8qpdD/KAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqXQ/KKl0PyipdD8oqXQ/KKl0PyipdD8oqXQ/KKl0Pyi2 - hVX/toVV/7aFVf+2hVX/toVV/7aFVf+2hVX/toVV//7+/f/+/v3//v79//7+/f/+/v3//v79//7+/f/+ - /v3/+t7B//rewf/63sH/+t7B//rewf/63sH/+t7B//rewf/63L7/+ty+//rcvv/63L7/+ty+//rcvv/6 - 3L7/+ty+//nbv//527//+du///nbv//527//+du///nbv//527//+du///nbv//527//+du///nbv//5 - 27//+du///nbv//53cD/+d3A//ndwP/53cD/+d3A//ndwP/53cD/+d3A//rbv//627//+tu///rbv//6 - 27//+tu///rbv//627//+tzC//rcwv/63ML/+tzC//rcwv/63ML/+tzC//rcwv/9697//eve//3r3v/9 - 697//eve//3r3v/9697//eve/+zczf/s3M3/7NzN/+zczf/s3M3/7NzN/+zczf/s3M3/qXQ/yql0P8qp - dD/KqXQ/yql0P8qpdD/KqXQ/yql0P8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACp - dD8oqXQ/KKl0PyipdD8oqXQ/KKl0PyipdD8oqXQ/KLaFVf+2hVX/toVV/7aFVf+2hVX/toVV/7aFVf+2 - hVX//v79//7+/f/+/v3//v79//7+/f/+/v3//v79//7+/f/63sH/+t7B//rewf/63sH/+t7B//rewf/6 - 3sH/+t7B//rcvv/63L7/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+du///nbv//527//+du///nbv//5 - 27//+du///nbv//527//+du///nbv//527//+du///nbv//527//+du///ndwP/53cD/+d3A//ndwP/5 - 3cD/+d3A//ndwP/53cD/+tu///rbv//627//+tu///rbv//627//+tu///rbv//63ML/+tzC//rcwv/6 - 3ML/+tzC//rcwv/63ML/+tzC//3r3v/9697//eve//3r3v/9697//eve//3r3v/9697/7NzN/+zczf/s - 3M3/7NzN/+zczf/s3M3/7NzN/+zczf+pdD/KqXQ/yql0P8qpdD/KqXQ/yql0P8qpdD/KqXQ/ygAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKl0PyipdD8oqXQ/KKl0PyipdD8oqXQ/KKl0Pyip - dD8otoVV/7aFVf+2hVX/toVV/7aFVf+2hVX/toVV/7aFVf/+/v3//v79//7+/f/+/v3//v79//7+/f/+ - /v3//v79//rewf/63sH/+t7B//rewf/63sH/+t7B//rewf/63sH/+ty+//rcvv/63L7/+ty+//rcvv/6 - 3L7/+ty+//rcvv/527//+du///nbv//527//+du///nbv//527//+du///nbv//527//+du///nbv//5 - 27//+du///nbv//527//+d3A//ndwP/53cD/+d3A//ndwP/53cD/+d3A//ndwP/627//+tu///rbv//6 - 27//+tu///rbv//627//+tu///rcwv/63ML/+tzC//rcwv/63ML/+tzC//rcwv/63ML//eve//3r3v/9 - 697//eve//3r3v/9697//eve//3r3v/s3M3/7NzN/+zczf/s3M3/7NzN/+zczf/s3M3/7NzN/6l0P8qp - dD/KqXQ/yql0P8qpdD/KqXQ/yql0P8qpdD/KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAqXQ/KKl0PyipdD8oqXQ/KKl0PyipdD8oqXQ/KKl0Pyi2hVX/toVV/7aFVf+2hVX/toVV/7aFVf+2 - hVX/toVV//7+/f/+/v3//v79//7+/f/+/v3//v79//7+/f/+/v3/+t7B//rewf/63sH/+t7B//rewf/6 - 3sH/+t7B//rewf/63L7/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+ty+//nbv//527//+du///nbv//5 - 27//+du///nbv//527//+du///nbv//527//+du///nbv//527//+du///nbv//53cD/+d3A//ndwP/5 - 3cD/+d3A//ndwP/53cD/+d3A//rbv//627//+tu///rbv//627//+tu///rbv//627//+tzC//rcwv/6 - 3ML/+tzC//rcwv/63ML/+tzC//rcwv/9697//eve//3r3v/9697//eve//3r3v/9697//eve/+zczf/s - 3M3/7NzN/+zczf/s3M3/7NzN/+zczf/s3M3/qXQ/yql0P8qpdD/KqXQ/yql0P8qpdD/KqXQ/yql0P8oA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpdD8oqXQ/KKl0PyipdD8oqXQ/KKl0Pyip - dD8oqXQ/KLaFVf+2hVX/toVV/7aFVf+2hVX/toVV/7aFVf+2hVX//v79//7+/f/+/v3//v79//7+/f/+ - /v3//v79//7+/f/63sH/+t7B//rewf/63sH/+t7B//rewf/63sH/+t7B//rcvv/63L7/+ty+//rcvv/6 - 3L7/+ty+//rcvv/63L7/+du///nbv//527//+du///nbv//527//+du///nbv//527//+du///nbv//5 - 27//+du///nbv//527//+du///ndwP/53cD/+d3A//ndwP/53cD/+d3A//ndwP/53cD/+tu///rbv//6 - 27//+tu///rbv//627//+tu///rbv//63ML/+tzC//rcwv/63ML/+tzC//rcwv/63ML/+tzC//3r3v/9 - 697//eve//3r3v/9697//eve//3r3v/9697/7NzN/+zczf/s3M3/7NzN/+zczf/s3M3/7NzN/+zczf+p - dD/KqXQ/yql0P8qpdD/KqXQ/yql0P8qpdD/KqXQ/ygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAKl0PyipdD8oqXQ/KKl0PyipdD8oqXQ/KKl0PyipdD8otoVV/7aFVf+2hVX/toVV/7aFVf+2 - hVX/toVV/7aFVf/+/v3//v79//7+/f/+/v3//v79//7+/f/+/v3//v79//rewf/63sH/+t7B//rewf/6 - 3sH/+t7B//rewf/63sH/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+ty+//rcvv/527//+du///nbv//5 - 27//+du///nbv//527//+du///nbv//527//+du///nbv//527//+du///nbv//527//+d3A//ndwP/5 - 3cD/+d3A//ndwP/53cD/+d3A//ndwP/627//+tu///rbv//627//+tu///rbv//627//+tu///rcwv/6 - 3ML/+tzC//rcwv/63ML/+tzC//rcwv/63ML//eve//3r3v/9697//eve//3r3v/9697//eve//3r3v/s - 3M3/7NzN/+zczf/s3M3/7NzN/+zczf/s3M3/7NzN/6l0P8qpdD/KqXQ/yql0P8qpdD/KqXQ/yql0P8qp - dD/KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqXQ/KKl0PyipdD8oqXQ/KKl0Pyip - dD8oqXQ/KKl0Pyi2hVX/toVV/7aFVf+2hVX/toVV/7aFVf+2hVX/toVV//7+/f/+/v3//v79//7+/f/+ - /v3//v79//7+/f/+/v3/+t7B//rewf/63sH/+t7B//rewf/63sH/+t7B//rewf/63L7/+ty+//rcvv/6 - 3L7/+ty+//rcvv/63L7/+ty+//nbv//527//+du///nbv//527//+du///nbv//527//+du///nbv//5 - 27//+du///nbv//527//+du///nbv//53cD/+d3A//ndwP/53cD/+d3A//ndwP/53cD/+d3A//rbv//6 - 27//+tu///rbv//627//+tu///rbv//627//+tzC//rcwv/63ML/+tzC//rcwv/63ML/+tzC//rcwv/9 - 697//eve//3r3v/9697//eve//3r3v/9697//eve/+zczf/s3M3/7NzN/+zczf/s3M3/7NzN/+zczf/s - 3M3/qXQ/yql0P8qpdD/KqXQ/yql0P8qpdD/KqXQ/yql0P8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACwekIesHpCHrB6Qh6wekIesHpCHrB6Qh6wekIesHpCHriFUf+4hVH/uIVR/7iFUf+4 - hVH/uIVR/7iFUf+4hVH//vz5//78+f/+/Pn//vz5//78+f/+/Pn//vz5//78+f/53L7/+dy+//ncvv/5 - 3L7/+dy+//ncvv/53L7/+dy+//jbvv/4277/+Nu+//jbvv/4277/+Nu+//jbvv/4277/+Ny///jcv//4 - 3L//+Ny///jcv//43L//+Ny///jcv//528H/+dvB//nbwf/528H/+dvB//nbwf/528H/+dvB//ncwP/5 - 3MD/+dzA//ncwP/53MD/+dzA//ncwP/53MD/+d3B//ndwf/53cH/+d3B//ndwf/53cH/+d3B//ndwf/6 - 3cL/+t3C//rdwv/63cL/+t3C//rdwv/63cL/+t3C//vn1P/759T/++fU//vn1P/759T/++fU//vn1P/7 - 59T/9e3i//Xt4v/17eL/9e3i//Xt4v/17eL/9e3i//Xt4v+wekLksHpC5LB6QuSwekLksHpC5LB6QuSw - ekLksHpC5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALB6Qh6wekIesHpCHrB6Qh6w - ekIesHpCHrB6Qh6wekIeuIVR/7iFUf+4hVH/uIVR/7iFUf+4hVH/uIVR/7iFUf/+/Pn//vz5//78+f/+ - /Pn//vz5//78+f/+/Pn//vz5//ncvv/53L7/+dy+//ncvv/53L7/+dy+//ncvv/53L7/+Nu+//jbvv/4 - 277/+Nu+//jbvv/4277/+Nu+//jbvv/43L//+Ny///jcv//43L//+Ny///jcv//43L//+Ny///nbwf/5 - 28H/+dvB//nbwf/528H/+dvB//nbwf/528H/+dzA//ncwP/53MD/+dzA//ncwP/53MD/+dzA//ncwP/5 - 3cH/+d3B//ndwf/53cH/+d3B//ndwf/53cH/+d3B//rdwv/63cL/+t3C//rdwv/63cL/+t3C//rdwv/6 - 3cL/++fU//vn1P/759T/++fU//vn1P/759T/++fU//vn1P/17eL/9e3i//Xt4v/17eL/9e3i//Xt4v/1 - 7eL/9e3i/7B6QuSwekLksHpC5LB6QuSwekLksHpC5LB6QuSwekLkAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAsHpCHrB6Qh6wekIesHpCHrB6Qh6wekIesHpCHrB6Qh64hVH/uIVR/7iFUf+4 - hVH/uIVR/7iFUf+4hVH/uIVR//78+f/+/Pn//vz5//78+f/+/Pn//vz5//78+f/+/Pn/+dy+//ncvv/5 - 3L7/+dy+//ncvv/53L7/+dy+//ncvv/4277/+Nu+//jbvv/4277/+Nu+//jbvv/4277/+Nu+//jcv//4 - 3L//+Ny///jcv//43L//+Ny///jcv//43L//+dvB//nbwf/528H/+dvB//nbwf/528H/+dvB//nbwf/5 - 3MD/+dzA//ncwP/53MD/+dzA//ncwP/53MD/+dzA//ndwf/53cH/+d3B//ndwf/53cH/+d3B//ndwf/5 - 3cH/+t3C//rdwv/63cL/+t3C//rdwv/63cL/+t3C//rdwv/759T/++fU//vn1P/759T/++fU//vn1P/7 - 59T/++fU//Xt4v/17eL/9e3i//Xt4v/17eL/9e3i//Xt4v/17eL/sHpC5LB6QuSwekLksHpC5LB6QuSw - ekLksHpC5LB6QuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwekIesHpCHrB6Qh6w - ekIesHpCHrB6Qh6wekIesHpCHriFUf+4hVH/uIVR/7iFUf+4hVH/uIVR/7iFUf+4hVH//vz5//78+f/+ - /Pn//vz5//78+f/+/Pn//vz5//78+f/53L7/+dy+//ncvv/53L7/+dy+//ncvv/53L7/+dy+//jbvv/4 - 277/+Nu+//jbvv/4277/+Nu+//jbvv/4277/+Ny///jcv//43L//+Ny///jcv//43L//+Ny///jcv//5 - 28H/+dvB//nbwf/528H/+dvB//nbwf/528H/+dvB//ncwP/53MD/+dzA//ncwP/53MD/+dzA//ncwP/5 - 3MD/+d3B//ndwf/53cH/+d3B//ndwf/53cH/+d3B//ndwf/63cL/+t3C//rdwv/63cL/+t3C//rdwv/6 - 3cL/+t3C//vn1P/759T/++fU//vn1P/759T/++fU//vn1P/759T/9e3i//Xt4v/17eL/9e3i//Xt4v/1 - 7eL/9e3i//Xt4v+wekLksHpC5LB6QuSwekLksHpC5LB6QuSwekLksHpC5AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAALB6Qh6wekIesHpCHrB6Qh6wekIesHpCHrB6Qh6wekIeuIVR/7iFUf+4 - hVH/uIVR/7iFUf+4hVH/uIVR/7iFUf/+/Pn//vz5//78+f/+/Pn//vz5//78+f/+/Pn//vz5//ncvv/5 - 3L7/+dy+//ncvv/53L7/+dy+//ncvv/53L7/+Nu+//jbvv/4277/+Nu+//jbvv/4277/+Nu+//jbvv/4 - 3L//+Ny///jcv//43L//+Ny///jcv//43L//+Ny///nbwf/528H/+dvB//nbwf/528H/+dvB//nbwf/5 - 28H/+dzA//ncwP/53MD/+dzA//ncwP/53MD/+dzA//ncwP/53cH/+d3B//ndwf/53cH/+d3B//ndwf/5 - 3cH/+d3B//rdwv/63cL/+t3C//rdwv/63cL/+t3C//rdwv/63cL/++fU//vn1P/759T/++fU//vn1P/7 - 59T/++fU//vn1P/17eL/9e3i//Xt4v/17eL/9e3i//Xt4v/17eL/9e3i/7B6QuSwekLksHpC5LB6QuSw - ekLksHpC5LB6QuSwekLkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsHpCHrB6Qh6w - ekIesHpCHrB6Qh6wekIesHpCHrB6Qh64hVH/uIVR/7iFUf+4hVH/uIVR/7iFUf+4hVH/uIVR//78+f/+ - /Pn//vz5//78+f/+/Pn//vz5//78+f/+/Pn/+dy+//ncvv/53L7/+dy+//ncvv/53L7/+dy+//ncvv/4 - 277/+Nu+//jbvv/4277/+Nu+//jbvv/4277/+Nu+//jcv//43L//+Ny///jcv//43L//+Ny///jcv//4 - 3L//+dvB//nbwf/528H/+dvB//nbwf/528H/+dvB//nbwf/53MD/+dzA//ncwP/53MD/+dzA//ncwP/5 - 3MD/+dzA//ndwf/53cH/+d3B//ndwf/53cH/+d3B//ndwf/53cH/+t3C//rdwv/63cL/+t3C//rdwv/6 - 3cL/+t3C//rdwv/759T/++fU//vn1P/759T/++fU//vn1P/759T/++fU//Xt4v/17eL/9e3i//Xt4v/1 - 7eL/9e3i//Xt4v/17eL/sHpC5LB6QuSwekLksHpC5LB6QuSwekLksHpC5LB6QuQAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwekIesHpCHrB6Qh6wekIesHpCHrB6Qh6wekIesHpCHriFUf+4 - hVH/uIVR/7iFUf+4hVH/uIVR/7iFUf+4hVH//vz5//78+f/+/Pn//vz5//78+f/+/Pn//vz5//78+f/5 - 3L7/+dy+//ncvv/53L7/+dy+//ncvv/53L7/+dy+//jbvv/4277/+Nu+//jbvv/4277/+Nu+//jbvv/4 - 277/+Ny///jcv//43L//+Ny///jcv//43L//+Ny///jcv//528H/+dvB//nbwf/528H/+dvB//nbwf/5 - 28H/+dvB//ncwP/53MD/+dzA//ncwP/53MD/+dzA//ncwP/53MD/+d3B//ndwf/53cH/+d3B//ndwf/5 - 3cH/+d3B//ndwf/63cL/+t3C//rdwv/63cL/+t3C//rdwv/63cL/+t3C//vn1P/759T/++fU//vn1P/7 - 59T/++fU//vn1P/759T/9e3i//Xt4v/17eL/9e3i//Xt4v/17eL/9e3i//Xt4v+wekLksHpC5LB6QuSw - ekLksHpC5LB6QuSwekLksHpC5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALB6Qh6w - ekIesHpCHrB6Qh6wekIesHpCHrB6Qh6wekIeuIVR/7iFUf+4hVH/uIVR/7iFUf+4hVH/uIVR/7iFUf/+ - /Pn//vz5//78+f/+/Pn//vz5//78+f/+/Pn//vz5//ncvv/53L7/+dy+//ncvv/53L7/+dy+//ncvv/5 - 3L7/+Nu+//jbvv/4277/+Nu+//jbvv/4277/+Nu+//jbvv/43L//+Ny///jcv//43L//+Ny///jcv//4 - 3L//+Ny///nbwf/528H/+dvB//nbwf/528H/+dvB//nbwf/528H/+dzA//ncwP/53MD/+dzA//ncwP/5 - 3MD/+dzA//ncwP/53cH/+d3B//ndwf/53cH/+d3B//ndwf/53cH/+d3B//rdwv/63cL/+t3C//rdwv/6 - 3cL/+t3C//rdwv/63cL/++fU//vn1P/759T/++fU//vn1P/759T/++fU//vn1P/17eL/9e3i//Xt4v/1 - 7eL/9e3i//Xt4v/17eL/9e3i/7B6QuSwekLksHpC5LB6QuSwekLksHpC5LB6QuSwekLkAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtoFGCbaBRgm2gUYJtoFGCbaBRgm2gUYJtoFGCbaBRgm4 - hEr/uIRK/7iESv+4hEr/uIRK/7iESv+4hEr/uIRK//779//++/f//vv3//779//++/f//vv3//779//+ - +/f/+dzA//ncwP/53MD/+dzA//ncwP/53MD/+dzA//ncwP/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Nu///jbv//427//+Nu///jbv//4 - 27//+Nu///jbv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//5 - 3b//+d2///ndv//53b//+d3C//ndwv/53cL/+d3C//ndwv/53cL/+d3C//ndwv/74sv/++LL//viy//7 - 4sv/++LL//viy//74sv/++LL//z59f/8+fX//Pn1//z59f/8+fX//Pn1//z59f/8+fX/toFG+7aBRvu2 - gUb7toFG+7aBRvu2gUb7toFG+7aBRvu2gUYBtoFGAbaBRgG2gUYBtoFGAbaBRgG2gUYBtoFGAQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2 - gUYJtoFGCbaBRgm2gUYJtoFGCbaBRgm2gUYJtoFGCbiESv+4hEr/uIRK/7iESv+4hEr/uIRK/7iESv+4 - hEr//vv3//779//++/f//vv3//779//++/f//vv3//779//53MD/+dzA//ncwP/53MD/+dzA//ncwP/5 - 3MD/+dzA//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/427//+Nu///jbv//427//+Nu///jbv//427//+Nu///ndv//53b//+d2///ndv//5 - 3b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53cL/+d3C//ndwv/5 - 3cL/+d3C//ndwv/53cL/+d3C//viy//74sv/++LL//viy//74sv/++LL//viy//74sv//Pn1//z59f/8 - +fX//Pn1//z59f/8+fX//Pn1//z59f+2gUb7toFG+7aBRvu2gUb7toFG+7aBRvu2gUb7toFG+7aBRgG2 - gUYBtoFGAbaBRgG2gUYBtoFGAbaBRgG2gUYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALaBRgm2gUYJtoFGCbaBRgm2gUYJtoFGCbaBRgm2 - gUYJuIRK/7iESv+4hEr/uIRK/7iESv+4hEr/uIRK/7iESv/++/f//vv3//779//++/f//vv3//779//+ - +/f//vv3//ncwP/53MD/+dzA//ncwP/53MD/+dzA//ncwP/53MD/+Ny+//jcvv/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jbv//427//+Nu///jbv//4 - 27//+Nu///jbv//427//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//5 - 3b//+d2///ndv//53b//+d2///ndwv/53cL/+d3C//ndwv/53cL/+d3C//ndwv/53cL/++LL//viy//7 - 4sv/++LL//viy//74sv/++LL//viy//8+fX//Pn1//z59f/8+fX//Pn1//z59f/8+fX//Pn1/7aBRvu2 - gUb7toFG+7aBRvu2gUb7toFG+7aBRvu2gUb7toFGAbaBRgG2gUYBtoFGAbaBRgG2gUYBtoFGAbaBRgEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAtoFGCbaBRgm2gUYJtoFGCbaBRgm2gUYJtoFGCbaBRgm4hEr/uIRK/7iESv+4hEr/uIRK/7iESv+4 - hEr/uIRK//779//++/f//vv3//779//++/f//vv3//779//++/f/+dzA//ncwP/53MD/+dzA//ncwP/5 - 3MD/+dzA//ncwP/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/43L7/+Nu///jbv//427//+Nu///jbv//427//+Nu///jbv//53b//+d2///ndv//5 - 3b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d3C//ndwv/5 - 3cL/+d3C//ndwv/53cL/+d3C//ndwv/74sv/++LL//viy//74sv/++LL//viy//74sv/++LL//z59f/8 - +fX//Pn1//z59f/8+fX//Pn1//z59f/8+fX/toFG+7aBRvu2gUb7toFG+7aBRvu2gUb7toFG+7aBRvu2 - gUYBtoFGAbaBRgG2gUYBtoFGAbaBRgG2gUYBtoFGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2gUYJtoFGCbaBRgm2gUYJtoFGCbaBRgm2 - gUYJtoFGCbiESv+4hEr/uIRK/7iESv+4hEr/uIRK/7iESv+4hEr//vv3//779//++/f//vv3//779//+ - +/f//vv3//779//53MD/+dzA//ncwP/53MD/+dzA//ncwP/53MD/+dzA//jcvv/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/427//+Nu///jbv//4 - 27//+Nu///jbv//427//+Nu///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//5 - 3b//+d2///ndv//53b//+d2///ndv//53cL/+d3C//ndwv/53cL/+d3C//ndwv/53cL/+d3C//viy//7 - 4sv/++LL//viy//74sv/++LL//viy//74sv//Pn1//z59f/8+fX//Pn1//z59f/8+fX//Pn1//z59f+2 - gUb7toFG+7aBRvu2gUb7toFG+7aBRvu2gUb7toFG+7aBRgG2gUYBtoFGAbaBRgG2gUYBtoFGAbaBRgG2 - gUYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAALaBRgm2gUYJtoFGCbaBRgm2gUYJtoFGCbaBRgm2gUYJuIRK/7iESv+4hEr/uIRK/7iESv+4 - hEr/uIRK/7iESv/++/f//vv3//779//++/f//vv3//779//++/f//vv3//ncwP/53MD/+dzA//ncwP/5 - 3MD/+dzA//ncwP/53MD/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/43L7/+Ny+//jbv//427//+Nu///jbv//427//+Nu///jbv//427//+d2///ndv//5 - 3b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndwv/5 - 3cL/+d3C//ndwv/53cL/+d3C//ndwv/53cL/++LL//viy//74sv/++LL//viy//74sv/++LL//viy//8 - +fX//Pn1//z59f/8+fX//Pn1//z59f/8+fX//Pn1/7aBRvu2gUb7toFG+7aBRvu2gUb7toFG+7aBRvu2 - gUb7toFGAbaBRgG2gUYBtoFGAbaBRgG2gUYBtoFGAbaBRgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtoFGCbaBRgm2gUYJtoFGCbaBRgm2 - gUYJtoFGCbaBRgm4hEr/uIRK/7iESv+4hEr/uIRK/7iESv+4hEr/uIRK//779//++/f//vv3//779//+ - +/f//vv3//779//++/f/+dzA//ncwP/53MD/+dzA//ncwP/53MD/+dzA//ncwP/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Nu///jbv//4 - 27//+Nu///jbv//427//+Nu///jbv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//5 - 3b//+d2///ndv//53b//+d2///ndv//53b//+d3C//ndwv/53cL/+d3C//ndwv/53cL/+d3C//ndwv/7 - 4sv/++LL//viy//74sv/++LL//viy//74sv/++LL//z59f/8+fX//Pn1//z59f/8+fX//Pn1//z59f/8 - +fX/toFG+7aBRvu2gUb7toFG+7aBRvu2gUb7toFG+7aBRvu2gUYBtoFGAbaBRgG2gUYBtoFGAbaBRgG2 - gUYBtoFGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAC2gUYJtoFGCbaBRgm2gUYJtoFGCbaBRgm2gUYJtoFGCbiESv+4hEr/uIRK/7iESv+4 - hEr/uIRK/7iESv+4hEr//vv3//779//++/f//vv3//779//++/f//vv3//779//53MD/+dzA//ncwP/5 - 3MD/+dzA//ncwP/53MD/+dzA//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/43L7/+Ny+//jcvv/427//+Nu///jbv//427//+Nu///jbv//427//+Nu///ndv//5 - 3b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//5 - 3cL/+d3C//ndwv/53cL/+d3C//ndwv/53cL/+d3C//viy//74sv/++LL//viy//74sv/++LL//viy//7 - 4sv//Pn1//z59f/8+fX//Pn1//z59f/8+fX//Pn1//z59f+2gUb7toFG+7aBRvu2gUb7toFG+7aBRvu2 - gUb7toFG+7aBRgG2gUYBtoFGAbaBRgG2gUYBtoFGAbaBRgG2gUYBAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAvIdK+byHSvm8h0r5vIdK+byHSvm8h0r5vIdK+byHSvn89vD//Pbw//z28P/8 - 9vD//Pbw//z28P/89vD//Pbw//nfx//538f/+d/H//nfx//538f/+d/H//nfx//538f/+dy8//ncvP/5 - 3Lz/+dy8//ncvP/53Lz/+dy8//ncvP/63L7/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+ty+//rbwP/6 - 28D/+tvA//rbwP/628D/+tvA//rbwP/628D/+t3C//rdwv/63cL/+t3C//rdwv/63cL/+t3C//rdwv/6 - 3cH/+t3B//rdwf/63cH/+t3B//rdwf/63cH/+t3B//ndw//53cP/+d3D//ndw//53cP/+d3D//ndw//5 - 3cP/++DJ//vgyf/74Mn/++DJ//vgyf/74Mn/++DJ//vgyf///Pr///z6///8+v///Pr///z6///8+v// - /Pr///z6/8CMUv/AjFL/wIxS/8CMUv/AjFL/wIxS/8CMUv/AjFL/vIdKD7yHSg+8h0oPvIdKD7yHSg+8 - h0oPvIdKD7yHSg8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8h0r5vIdK+byHSvm8 - h0r5vIdK+byHSvm8h0r5vIdK+fz28P/89vD//Pbw//z28P/89vD//Pbw//z28P/89vD/+d/H//nfx//5 - 38f/+d/H//nfx//538f/+d/H//nfx//53Lz/+dy8//ncvP/53Lz/+dy8//ncvP/53Lz/+dy8//rcvv/6 - 3L7/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+tvA//rbwP/628D/+tvA//rbwP/628D/+tvA//rbwP/6 - 3cL/+t3C//rdwv/63cL/+t3C//rdwv/63cL/+t3C//rdwf/63cH/+t3B//rdwf/63cH/+t3B//rdwf/6 - 3cH/+d3D//ndw//53cP/+d3D//ndw//53cP/+d3D//ndw//74Mn/++DJ//vgyf/74Mn/++DJ//vgyf/7 - 4Mn/++DJ///8+v///Pr///z6///8+v///Pr///z6///8+v///Pr/wIxS/8CMUv/AjFL/wIxS/8CMUv/A - jFL/wIxS/8CMUv+8h0oPvIdKD7yHSg+8h0oPvIdKD7yHSg+8h0oPvIdKDwAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAALyHSvm8h0r5vIdK+byHSvm8h0r5vIdK+byHSvm8h0r5/Pbw//z28P/8 - 9vD//Pbw//z28P/89vD//Pbw//z28P/538f/+d/H//nfx//538f/+d/H//nfx//538f/+d/H//ncvP/5 - 3Lz/+dy8//ncvP/53Lz/+dy8//ncvP/53Lz/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+ty+//rcvv/6 - 28D/+tvA//rbwP/628D/+tvA//rbwP/628D/+tvA//rdwv/63cL/+t3C//rdwv/63cL/+t3C//rdwv/6 - 3cL/+t3B//rdwf/63cH/+t3B//rdwf/63cH/+t3B//rdwf/53cP/+d3D//ndw//53cP/+d3D//ndw//5 - 3cP/+d3D//vgyf/74Mn/++DJ//vgyf/74Mn/++DJ//vgyf/74Mn///z6///8+v///Pr///z6///8+v// - /Pr///z6///8+v/AjFL/wIxS/8CMUv/AjFL/wIxS/8CMUv/AjFL/wIxS/7yHSg+8h0oPvIdKD7yHSg+8 - h0oPvIdKD7yHSg+8h0oPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvIdK+byHSvm8 - h0r5vIdK+byHSvm8h0r5vIdK+byHSvn89vD//Pbw//z28P/89vD//Pbw//z28P/89vD//Pbw//nfx//5 - 38f/+d/H//nfx//538f/+d/H//nfx//538f/+dy8//ncvP/53Lz/+dy8//ncvP/53Lz/+dy8//ncvP/6 - 3L7/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+ty+//rbwP/628D/+tvA//rbwP/628D/+tvA//rbwP/6 - 28D/+t3C//rdwv/63cL/+t3C//rdwv/63cL/+t3C//rdwv/63cH/+t3B//rdwf/63cH/+t3B//rdwf/6 - 3cH/+t3B//ndw//53cP/+d3D//ndw//53cP/+d3D//ndw//53cP/++DJ//vgyf/74Mn/++DJ//vgyf/7 - 4Mn/++DJ//vgyf///Pr///z6///8+v///Pr///z6///8+v///Pr///z6/8CMUv/AjFL/wIxS/8CMUv/A - jFL/wIxS/8CMUv/AjFL/vIdKD7yHSg+8h0oPvIdKD7yHSg+8h0oPvIdKD7yHSg8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8h0r5vIdK+byHSvm8h0r5vIdK+byHSvm8h0r5vIdK+fz28P/8 - 9vD//Pbw//z28P/89vD//Pbw//z28P/89vD/+d/H//nfx//538f/+d/H//nfx//538f/+d/H//nfx//5 - 3Lz/+dy8//ncvP/53Lz/+dy8//ncvP/53Lz/+dy8//rcvv/63L7/+ty+//rcvv/63L7/+ty+//rcvv/6 - 3L7/+tvA//rbwP/628D/+tvA//rbwP/628D/+tvA//rbwP/63cL/+t3C//rdwv/63cL/+t3C//rdwv/6 - 3cL/+t3C//rdwf/63cH/+t3B//rdwf/63cH/+t3B//rdwf/63cH/+d3D//ndw//53cP/+d3D//ndw//5 - 3cP/+d3D//ndw//74Mn/++DJ//vgyf/74Mn/++DJ//vgyf/74Mn/++DJ///8+v///Pr///z6///8+v// - /Pr///z6///8+v///Pr/wIxS/8CMUv/AjFL/wIxS/8CMUv/AjFL/wIxS/8CMUv+8h0oPvIdKD7yHSg+8 - h0oPvIdKD7yHSg+8h0oPvIdKDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyHSvm8 - h0r5vIdK+byHSvm8h0r5vIdK+byHSvm8h0r5/Pbw//z28P/89vD//Pbw//z28P/89vD//Pbw//z28P/5 - 38f/+d/H//nfx//538f/+d/H//nfx//538f/+d/H//ncvP/53Lz/+dy8//ncvP/53Lz/+dy8//ncvP/5 - 3Lz/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+ty+//rcvv/628D/+tvA//rbwP/628D/+tvA//rbwP/6 - 28D/+tvA//rdwv/63cL/+t3C//rdwv/63cL/+t3C//rdwv/63cL/+t3B//rdwf/63cH/+t3B//rdwf/6 - 3cH/+t3B//rdwf/53cP/+d3D//ndw//53cP/+d3D//ndw//53cP/+d3D//vgyf/74Mn/++DJ//vgyf/7 - 4Mn/++DJ//vgyf/74Mn///z6///8+v///Pr///z6///8+v///Pr///z6///8+v/AjFL/wIxS/8CMUv/A - jFL/wIxS/8CMUv/AjFL/wIxS/7yHSg+8h0oPvIdKD7yHSg+8h0oPvIdKD7yHSg+8h0oPAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvIdK+byHSvm8h0r5vIdK+byHSvm8h0r5vIdK+byHSvn8 - 9vD//Pbw//z28P/89vD//Pbw//z28P/89vD//Pbw//nfx//538f/+d/H//nfx//538f/+d/H//nfx//5 - 38f/+dy8//ncvP/53Lz/+dy8//ncvP/53Lz/+dy8//ncvP/63L7/+ty+//rcvv/63L7/+ty+//rcvv/6 - 3L7/+ty+//rbwP/628D/+tvA//rbwP/628D/+tvA//rbwP/628D/+t3C//rdwv/63cL/+t3C//rdwv/6 - 3cL/+t3C//rdwv/63cH/+t3B//rdwf/63cH/+t3B//rdwf/63cH/+t3B//ndw//53cP/+d3D//ndw//5 - 3cP/+d3D//ndw//53cP/++DJ//vgyf/74Mn/++DJ//vgyf/74Mn/++DJ//vgyf///Pr///z6///8+v// - /Pr///z6///8+v///Pr///z6/8CMUv/AjFL/wIxS/8CMUv/AjFL/wIxS/8CMUv/AjFL/vIdKD7yHSg+8 - h0oPvIdKD7yHSg+8h0oPvIdKD7yHSg8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8 - h0r5vIdK+byHSvm8h0r5vIdK+byHSvm8h0r5vIdK+fz28P/89vD//Pbw//z28P/89vD//Pbw//z28P/8 - 9vD/+d/H//nfx//538f/+d/H//nfx//538f/+d/H//nfx//53Lz/+dy8//ncvP/53Lz/+dy8//ncvP/5 - 3Lz/+dy8//rcvv/63L7/+ty+//rcvv/63L7/+ty+//rcvv/63L7/+tvA//rbwP/628D/+tvA//rbwP/6 - 28D/+tvA//rbwP/63cL/+t3C//rdwv/63cL/+t3C//rdwv/63cL/+t3C//rdwf/63cH/+t3B//rdwf/6 - 3cH/+t3B//rdwf/63cH/+d3D//ndw//53cP/+d3D//ndw//53cP/+d3D//ndw//74Mn/++DJ//vgyf/7 - 4Mn/++DJ//vgyf/74Mn/++DJ///8+v///Pr///z6///8+v///Pr///z6///8+v///Pr/wIxS/8CMUv/A - jFL/wIxS/8CMUv/AjFL/wIxS/8CMUv+8h0oPvIdKD7yHSg+8h0oPvIdKD7yHSg+8h0oPvIdKDwAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMONTdrDjU3aw41N2sONTdrDjU3aw41N2sONTdrD - jU3a9efY//Xn2P/159j/9efY//Xn2P/159j/9efY//Xn2P/65dL/+uXS//rl0v/65dL/+uXS//rl0v/6 - 5dL/+uXS//nau//52rv/+dq7//nau//52rv/+dq7//nau//52rv/+du7//nbu//527v/+du7//nbu//5 - 27v/+du7//nbu//6277/+tu+//rbvv/6277/+tu+//rbvv/6277/+tu+//rdwP/63cD/+t3A//rdwP/6 - 3cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/53cP/+d3D//ndw//5 - 3cP/+d3D//ndw//53cP/+d3D//vhyP/74cj/++HI//vhyP/74cj/++HI//vhyP/74cj///37///9+/// - /fv///37///9+////fv///37///9+//Ik1b/yJNW/8iTVv/Ik1b/yJNW/8iTVv/Ik1b/yJNW/8ONTRLD - jU0Sw41NEsONTRLDjU0Sw41NEsONTRLDjU0SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAw41N2sONTdrDjU3aw41N2sONTdrDjU3aw41N2sONTdr159j/9efY//Xn2P/159j/9efY//Xn2P/1 - 59j/9efY//rl0v/65dL/+uXS//rl0v/65dL/+uXS//rl0v/65dL/+dq7//nau//52rv/+dq7//nau//5 - 2rv/+dq7//nau//527v/+du7//nbu//527v/+du7//nbu//527v/+du7//rbvv/6277/+tu+//rbvv/6 - 277/+tu+//rbvv/6277/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/6 - 3cD/+t3A//rdwP/63cD/+t3A//ndw//53cP/+d3D//ndw//53cP/+d3D//ndw//53cP/++HI//vhyP/7 - 4cj/++HI//vhyP/74cj/++HI//vhyP///fv///37///9+////fv///37///9+////fv///37/8iTVv/I - k1b/yJNW/8iTVv/Ik1b/yJNW/8iTVv/Ik1b/w41NEsONTRLDjU0Sw41NEsONTRLDjU0Sw41NEsONTRIA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDjU3aw41N2sONTdrDjU3aw41N2sONTdrD - jU3aw41N2vXn2P/159j/9efY//Xn2P/159j/9efY//Xn2P/159j/+uXS//rl0v/65dL/+uXS//rl0v/6 - 5dL/+uXS//rl0v/52rv/+dq7//nau//52rv/+dq7//nau//52rv/+dq7//nbu//527v/+du7//nbu//5 - 27v/+du7//nbu//527v/+tu+//rbvv/6277/+tu+//rbvv/6277/+tu+//rbvv/63cD/+t3A//rdwP/6 - 3cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+d3D//ndw//5 - 3cP/+d3D//ndw//53cP/+d3D//ndw//74cj/++HI//vhyP/74cj/++HI//vhyP/74cj/++HI///9+/// - /fv///37///9+////fv///37///9+////fv/yJNW/8iTVv/Ik1b/yJNW/8iTVv/Ik1b/yJNW/8iTVv/D - jU0Sw41NEsONTRLDjU0Sw41NEsONTRLDjU0Sw41NEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAMONTdrDjU3aw41N2sONTdrDjU3aw41N2sONTdrDjU3a9efY//Xn2P/159j/9efY//Xn2P/1 - 59j/9efY//Xn2P/65dL/+uXS//rl0v/65dL/+uXS//rl0v/65dL/+uXS//nau//52rv/+dq7//nau//5 - 2rv/+dq7//nau//52rv/+du7//nbu//527v/+du7//nbu//527v/+du7//nbu//6277/+tu+//rbvv/6 - 277/+tu+//rbvv/6277/+tu+//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/6 - 3cD/+t3A//rdwP/63cD/+t3A//rdwP/53cP/+d3D//ndw//53cP/+d3D//ndw//53cP/+d3D//vhyP/7 - 4cj/++HI//vhyP/74cj/++HI//vhyP/74cj///37///9+////fv///37///9+////fv///37///9+//I - k1b/yJNW/8iTVv/Ik1b/yJNW/8iTVv/Ik1b/yJNW/8ONTRLDjU0Sw41NEsONTRLDjU0Sw41NEsONTRLD - jU0SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw41N2sONTdrDjU3aw41N2sONTdrD - jU3aw41N2sONTdr159j/9efY//Xn2P/159j/9efY//Xn2P/159j/9efY//rl0v/65dL/+uXS//rl0v/6 - 5dL/+uXS//rl0v/65dL/+dq7//nau//52rv/+dq7//nau//52rv/+dq7//nau//527v/+du7//nbu//5 - 27v/+du7//nbu//527v/+du7//rbvv/6277/+tu+//rbvv/6277/+tu+//rbvv/6277/+t3A//rdwP/6 - 3cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//ndw//5 - 3cP/+d3D//ndw//53cP/+d3D//ndw//53cP/++HI//vhyP/74cj/++HI//vhyP/74cj/++HI//vhyP// - /fv///37///9+////fv///37///9+////fv///37/8iTVv/Ik1b/yJNW/8iTVv/Ik1b/yJNW/8iTVv/I - k1b/w41NEsONTRLDjU0Sw41NEsONTRLDjU0Sw41NEsONTRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADDjU3aw41N2sONTdrDjU3aw41N2sONTdrDjU3aw41N2vXn2P/159j/9efY//Xn2P/1 - 59j/9efY//Xn2P/159j/+uXS//rl0v/65dL/+uXS//rl0v/65dL/+uXS//rl0v/52rv/+dq7//nau//5 - 2rv/+dq7//nau//52rv/+dq7//nbu//527v/+du7//nbu//527v/+du7//nbu//527v/+tu+//rbvv/6 - 277/+tu+//rbvv/6277/+tu+//rbvv/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/6 - 3cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+d3D//ndw//53cP/+d3D//ndw//53cP/+d3D//ndw//7 - 4cj/++HI//vhyP/74cj/++HI//vhyP/74cj/++HI///9+////fv///37///9+////fv///37///9+/// - /fv/yJNW/8iTVv/Ik1b/yJNW/8iTVv/Ik1b/yJNW/8iTVv/DjU0Sw41NEsONTRLDjU0Sw41NEsONTRLD - jU0Sw41NEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMONTdrDjU3aw41N2sONTdrD - jU3aw41N2sONTdrDjU3a9efY//Xn2P/159j/9efY//Xn2P/159j/9efY//Xn2P/65dL/+uXS//rl0v/6 - 5dL/+uXS//rl0v/65dL/+uXS//nau//52rv/+dq7//nau//52rv/+dq7//nau//52rv/+du7//nbu//5 - 27v/+du7//nbu//527v/+du7//nbu//6277/+tu+//rbvv/6277/+tu+//rbvv/6277/+tu+//rdwP/6 - 3cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/5 - 3cP/+d3D//ndw//53cP/+d3D//ndw//53cP/+d3D//vhyP/74cj/++HI//vhyP/74cj/++HI//vhyP/7 - 4cj///37///9+////fv///37///9+////fv///37///9+//Ik1b/yJNW/8iTVv/Ik1b/yJNW/8iTVv/I - k1b/yJNW/8ONTRLDjU0Sw41NEsONTRLDjU0Sw41NEsONTRLDjU0SAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAw41N2sONTdrDjU3aw41N2sONTdrDjU3aw41N2sONTdr159j/9efY//Xn2P/1 - 59j/9efY//Xn2P/159j/9efY//rl0v/65dL/+uXS//rl0v/65dL/+uXS//rl0v/65dL/+dq7//nau//5 - 2rv/+dq7//nau//52rv/+dq7//nau//527v/+du7//nbu//527v/+du7//nbu//527v/+du7//rbvv/6 - 277/+tu+//rbvv/6277/+tu+//rbvv/6277/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/6 - 3cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//ndw//53cP/+d3D//ndw//53cP/+d3D//ndw//5 - 3cP/++HI//vhyP/74cj/++HI//vhyP/74cj/++HI//vhyP///fv///37///9+////fv///37///9+/// - /fv///37/8iTVv/Ik1b/yJNW/8iTVv/Ik1b/yJNW/8iTVv/Ik1b/w41NEsONTRLDjU0Sw41NEsONTRLD - jU0Sw41NEsONTRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKk1G7ypNRu8qTUbvK - k1G7ypNRu8qTUbvKk1G7ypNRu/DZwP/w2cD/8NnA//DZwP/w2cD/8NnA//DZwP/w2cD/++3h//vt4f/7 - 7eH/++3h//vt4f/77eH/++3h//vt4f/52r//+dq///nav//52r//+dq///nav//52r//+dq///ncwf/5 - 3MH/+dzB//ncwf/53MH/+dzB//ncwf/53MH/+d7E//nexP/53sT/+d7E//nexP/53sT/+d7E//nexP/6 - 4Mf/+uDH//rgx//64Mf/+uDH//rgx//64Mf/+uDH//riyv/64sr/+uLK//riyv/64sr/+uLK//riyv/6 - 4sr/+uLN//rizf/64s3/+uLN//rizf/64s3/+uLN//rizf/65dD/+uXQ//rl0P/65dD/+uXQ//rl0P/6 - 5dD/+uXQ///+/f///v3///79///+/f///v3///79///+/f///v3/y45Z/8uOWf/Ljln/y45Z/8uOWf/L - jln/y45Z/8uOWf/Kk1HxypNR8cqTUfHKk1HxypNR8cqTUfHKk1HxypNR8cqTUUXKk1FFypNRRcqTUUXK - k1FFypNRRcqTUUXKk1FFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAMqTUbvKk1G7ypNRu8qTUbvKk1G7ypNRu8qTUbvKk1G78NnA//DZwP/w - 2cD/8NnA//DZwP/w2cD/8NnA//DZwP/77eH/++3h//vt4f/77eH/++3h//vt4f/77eH/++3h//nav//5 - 2r//+dq///nav//52r//+dq///nav//52r//+dzB//ncwf/53MH/+dzB//ncwf/53MH/+dzB//ncwf/5 - 3sT/+d7E//nexP/53sT/+d7E//nexP/53sT/+d7E//rgx//64Mf/+uDH//rgx//64Mf/+uDH//rgx//6 - 4Mf/+uLK//riyv/64sr/+uLK//riyv/64sr/+uLK//riyv/64s3/+uLN//rizf/64s3/+uLN//rizf/6 - 4s3/+uLN//rl0P/65dD/+uXQ//rl0P/65dD/+uXQ//rl0P/65dD///79///+/f///v3///79///+/f// - /v3///79///+/f/Ljln/y45Z/8uOWf/Ljln/y45Z/8uOWf/Ljln/y45Z/8qTUfHKk1HxypNR8cqTUfHK - k1HxypNR8cqTUfHKk1HxypNRRcqTUUXKk1FFypNRRcqTUUXKk1FFypNRRcqTUUUAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAypNRu8qTUbvK - k1G7ypNRu8qTUbvKk1G7ypNRu8qTUbvw2cD/8NnA//DZwP/w2cD/8NnA//DZwP/w2cD/8NnA//vt4f/7 - 7eH/++3h//vt4f/77eH/++3h//vt4f/77eH/+dq///nav//52r//+dq///nav//52r//+dq///nav//5 - 3MH/+dzB//ncwf/53MH/+dzB//ncwf/53MH/+dzB//nexP/53sT/+d7E//nexP/53sT/+d7E//nexP/5 - 3sT/+uDH//rgx//64Mf/+uDH//rgx//64Mf/+uDH//rgx//64sr/+uLK//riyv/64sr/+uLK//riyv/6 - 4sr/+uLK//rizf/64s3/+uLN//rizf/64s3/+uLN//rizf/64s3/+uXQ//rl0P/65dD/+uXQ//rl0P/6 - 5dD/+uXQ//rl0P///v3///79///+/f///v3///79///+/f///v3///79/8uOWf/Ljln/y45Z/8uOWf/L - jln/y45Z/8uOWf/Ljln/ypNR8cqTUfHKk1HxypNR8cqTUfHKk1HxypNR8cqTUfHKk1FFypNRRcqTUUXK - k1FFypNRRcqTUUXKk1FFypNRRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKk1G7ypNRu8qTUbvKk1G7ypNRu8qTUbvKk1G7ypNRu/DZwP/w - 2cD/8NnA//DZwP/w2cD/8NnA//DZwP/w2cD/++3h//vt4f/77eH/++3h//vt4f/77eH/++3h//vt4f/5 - 2r//+dq///nav//52r//+dq///nav//52r//+dq///ncwf/53MH/+dzB//ncwf/53MH/+dzB//ncwf/5 - 3MH/+d7E//nexP/53sT/+d7E//nexP/53sT/+d7E//nexP/64Mf/+uDH//rgx//64Mf/+uDH//rgx//6 - 4Mf/+uDH//riyv/64sr/+uLK//riyv/64sr/+uLK//riyv/64sr/+uLN//rizf/64s3/+uLN//rizf/6 - 4s3/+uLN//rizf/65dD/+uXQ//rl0P/65dD/+uXQ//rl0P/65dD/+uXQ///+/f///v3///79///+/f// - /v3///79///+/f///v3/y45Z/8uOWf/Ljln/y45Z/8uOWf/Ljln/y45Z/8uOWf/Kk1HxypNR8cqTUfHK - k1HxypNR8cqTUfHKk1HxypNR8cqTUUXKk1FFypNRRcqTUUXKk1FFypNRRcqTUUXKk1FFAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMqTUbvK - k1G7ypNRu8qTUbvKk1G7ypNRu8qTUbvKk1G78NnA//DZwP/w2cD/8NnA//DZwP/w2cD/8NnA//DZwP/7 - 7eH/++3h//vt4f/77eH/++3h//vt4f/77eH/++3h//nav//52r//+dq///nav//52r//+dq///nav//5 - 2r//+dzB//ncwf/53MH/+dzB//ncwf/53MH/+dzB//ncwf/53sT/+d7E//nexP/53sT/+d7E//nexP/5 - 3sT/+d7E//rgx//64Mf/+uDH//rgx//64Mf/+uDH//rgx//64Mf/+uLK//riyv/64sr/+uLK//riyv/6 - 4sr/+uLK//riyv/64s3/+uLN//rizf/64s3/+uLN//rizf/64s3/+uLN//rl0P/65dD/+uXQ//rl0P/6 - 5dD/+uXQ//rl0P/65dD///79///+/f///v3///79///+/f///v3///79///+/f/Ljln/y45Z/8uOWf/L - jln/y45Z/8uOWf/Ljln/y45Z/8qTUfHKk1HxypNR8cqTUfHKk1HxypNR8cqTUfHKk1HxypNRRcqTUUXK - k1FFypNRRcqTUUXKk1FFypNRRcqTUUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAypNRu8qTUbvKk1G7ypNRu8qTUbvKk1G7ypNRu8qTUbvw - 2cD/8NnA//DZwP/w2cD/8NnA//DZwP/w2cD/8NnA//vt4f/77eH/++3h//vt4f/77eH/++3h//vt4f/7 - 7eH/+dq///nav//52r//+dq///nav//52r//+dq///nav//53MH/+dzB//ncwf/53MH/+dzB//ncwf/5 - 3MH/+dzB//nexP/53sT/+d7E//nexP/53sT/+d7E//nexP/53sT/+uDH//rgx//64Mf/+uDH//rgx//6 - 4Mf/+uDH//rgx//64sr/+uLK//riyv/64sr/+uLK//riyv/64sr/+uLK//rizf/64s3/+uLN//rizf/6 - 4s3/+uLN//rizf/64s3/+uXQ//rl0P/65dD/+uXQ//rl0P/65dD/+uXQ//rl0P///v3///79///+/f// - /v3///79///+/f///v3///79/8uOWf/Ljln/y45Z/8uOWf/Ljln/y45Z/8uOWf/Ljln/ypNR8cqTUfHK - k1HxypNR8cqTUfHKk1HxypNR8cqTUfHKk1FFypNRRcqTUUXKk1FFypNRRcqTUUXKk1FFypNRRQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADK - k1G7ypNRu8qTUbvKk1G7ypNRu8qTUbvKk1G7ypNRu/DZwP/w2cD/8NnA//DZwP/w2cD/8NnA//DZwP/w - 2cD/++3h//vt4f/77eH/++3h//vt4f/77eH/++3h//vt4f/52r//+dq///nav//52r//+dq///nav//5 - 2r//+dq///ncwf/53MH/+dzB//ncwf/53MH/+dzB//ncwf/53MH/+d7E//nexP/53sT/+d7E//nexP/5 - 3sT/+d7E//nexP/64Mf/+uDH//rgx//64Mf/+uDH//rgx//64Mf/+uDH//riyv/64sr/+uLK//riyv/6 - 4sr/+uLK//riyv/64sr/+uLN//rizf/64s3/+uLN//rizf/64s3/+uLN//rizf/65dD/+uXQ//rl0P/6 - 5dD/+uXQ//rl0P/65dD/+uXQ///+/f///v3///79///+/f///v3///79///+/f///v3/y45Z/8uOWf/L - jln/y45Z/8uOWf/Ljln/y45Z/8uOWf/Kk1HxypNR8cqTUfHKk1HxypNR8cqTUfHKk1HxypNR8cqTUUXK - k1FFypNRRcqTUUXKk1FFypNRRcqTUUXKk1FFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMqTUbvKk1G7ypNRu8qTUbvKk1G7ypNRu8qTUbvK - k1G78NnA//DZwP/w2cD/8NnA//DZwP/w2cD/8NnA//DZwP/77eH/++3h//vt4f/77eH/++3h//vt4f/7 - 7eH/++3h//nav//52r//+dq///nav//52r//+dq///nav//52r//+dzB//ncwf/53MH/+dzB//ncwf/5 - 3MH/+dzB//ncwf/53sT/+d7E//nexP/53sT/+d7E//nexP/53sT/+d7E//rgx//64Mf/+uDH//rgx//6 - 4Mf/+uDH//rgx//64Mf/+uLK//riyv/64sr/+uLK//riyv/64sr/+uLK//riyv/64s3/+uLN//rizf/6 - 4s3/+uLN//rizf/64s3/+uLN//rl0P/65dD/+uXQ//rl0P/65dD/+uXQ//rl0P/65dD///79///+/f// - /v3///79///+/f///v3///79///+/f/Ljln/y45Z/8uOWf/Ljln/y45Z/8uOWf/Ljln/y45Z/8qTUfHK - k1HxypNR8cqTUfHKk1HxypNR8cqTUfHKk1HxypNRRcqTUUXKk1FFypNRRcqTUUXKk1FFypNRRcqTUUUA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAA0JlUpNCZVKTQmVSk0JlUpNCZVKTQmVSk0JlUpNCZVKTt0LH/7dCx/+3Qsf/t0LH/7dCx/+3Qsf/t - 0LH/7dCx///28P//9vD///bw///28P//9vD///bw///28P//9vD/+uHK//rhyv/64cr/+uHK//rhyv/6 - 4cr/+uHK//rhyv/748z/++PM//vjzP/748z/++PM//vjzP/748z/++PM//vj0P/749D/++PQ//vj0P/7 - 49D/++PQ//vj0P/749D/++bT//vm0//75tP/++bT//vm0//75tP/++bT//vm0//76dX/++nV//vp1f/7 - 6dX/++nV//vp1f/76dX/++nV//zp2P/86dj//OnY//zp2P/86dj//OnY//zp2P/86dj//Orb//zq2//8 - 6tv//Orb//zq2//86tv//Orb//zq2/////3////9/////f////3////9/////f////3////9/9KccP/S - nHD/0pxw/9KccP/SnHD/0pxw/9KccP/SnHD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/Q - mVTl0JlU5dCZVOXQmVTl0JlU5dCZVOXQmVTl0JlU5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQmVSk0JlUpNCZVKTQmVSk0JlUpNCZVKTQ - mVSk0JlUpO3Qsf/t0LH/7dCx/+3Qsf/t0LH/7dCx/+3Qsf/t0LH///bw///28P//9vD///bw///28P// - 9vD///bw///28P/64cr/+uHK//rhyv/64cr/+uHK//rhyv/64cr/+uHK//vjzP/748z/++PM//vjzP/7 - 48z/++PM//vjzP/748z/++PQ//vj0P/749D/++PQ//vj0P/749D/++PQ//vj0P/75tP/++bT//vm0//7 - 5tP/++bT//vm0//75tP/++bT//vp1f/76dX/++nV//vp1f/76dX/++nV//vp1f/76dX//OnY//zp2P/8 - 6dj//OnY//zp2P/86dj//OnY//zp2P/86tv//Orb//zq2//86tv//Orb//zq2//86tv//Orb/////f// - //3////9/////f////3////9/////f////3/0pxw/9KccP/SnHD/0pxw/9KccP/SnHD/0pxw/9KccP/u - 2cD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/u2cD/7tnA/9CZVOXQmVTl0JlU5dCZVOXQmVTl0JlU5dCZVOXQ - mVTlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAANCZVKTQmVSk0JlUpNCZVKTQmVSk0JlUpNCZVKTQmVSk7dCx/+3Qsf/t0LH/7dCx/+3Qsf/t - 0LH/7dCx/+3Qsf//9vD///bw///28P//9vD///bw///28P//9vD///bw//rhyv/64cr/+uHK//rhyv/6 - 4cr/+uHK//rhyv/64cr/++PM//vjzP/748z/++PM//vjzP/748z/++PM//vjzP/749D/++PQ//vj0P/7 - 49D/++PQ//vj0P/749D/++PQ//vm0//75tP/++bT//vm0//75tP/++bT//vm0//75tP/++nV//vp1f/7 - 6dX/++nV//vp1f/76dX/++nV//vp1f/86dj//OnY//zp2P/86dj//OnY//zp2P/86dj//OnY//zq2//8 - 6tv//Orb//zq2//86tv//Orb//zq2//86tv////9/////f////3////9/////f////3////9/////f/S - nHD/0pxw/9KccP/SnHD/0pxw/9KccP/SnHD/0pxw/+7ZwP/u2cD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/u - 2cD/0JlU5dCZVOXQmVTl0JlU5dCZVOXQmVTl0JlU5dCZVOUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0JlUpNCZVKTQmVSk0JlUpNCZVKTQ - mVSk0JlUpNCZVKTt0LH/7dCx/+3Qsf/t0LH/7dCx/+3Qsf/t0LH/7dCx///28P//9vD///bw///28P// - 9vD///bw///28P//9vD/+uHK//rhyv/64cr/+uHK//rhyv/64cr/+uHK//rhyv/748z/++PM//vjzP/7 - 48z/++PM//vjzP/748z/++PM//vj0P/749D/++PQ//vj0P/749D/++PQ//vj0P/749D/++bT//vm0//7 - 5tP/++bT//vm0//75tP/++bT//vm0//76dX/++nV//vp1f/76dX/++nV//vp1f/76dX/++nV//zp2P/8 - 6dj//OnY//zp2P/86dj//OnY//zp2P/86dj//Orb//zq2//86tv//Orb//zq2//86tv//Orb//zq2/// - //3////9/////f////3////9/////f////3////9/9KccP/SnHD/0pxw/9KccP/SnHD/0pxw/9KccP/S - nHD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/QmVTl0JlU5dCZVOXQmVTl0JlU5dCZVOXQ - mVTl0JlU5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADQmVSk0JlUpNCZVKTQmVSk0JlUpNCZVKTQmVSk0JlUpO3Qsf/t0LH/7dCx/+3Qsf/t - 0LH/7dCx/+3Qsf/t0LH///bw///28P//9vD///bw///28P//9vD///bw///28P/64cr/+uHK//rhyv/6 - 4cr/+uHK//rhyv/64cr/+uHK//vjzP/748z/++PM//vjzP/748z/++PM//vjzP/748z/++PQ//vj0P/7 - 49D/++PQ//vj0P/749D/++PQ//vj0P/75tP/++bT//vm0//75tP/++bT//vm0//75tP/++bT//vp1f/7 - 6dX/++nV//vp1f/76dX/++nV//vp1f/76dX//OnY//zp2P/86dj//OnY//zp2P/86dj//OnY//zp2P/8 - 6tv//Orb//zq2//86tv//Orb//zq2//86tv//Orb/////f////3////9/////f////3////9/////f// - //3/0pxw/9KccP/SnHD/0pxw/9KccP/SnHD/0pxw/9KccP/u2cD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/u - 2cD/7tnA/9CZVOXQmVTl0JlU5dCZVOXQmVTl0JlU5dCZVOXQmVTlAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCZVKTQmVSk0JlUpNCZVKTQ - mVSk0JlUpNCZVKTQmVSk7dCx/+3Qsf/t0LH/7dCx/+3Qsf/t0LH/7dCx/+3Qsf//9vD///bw///28P// - 9vD///bw///28P//9vD///bw//rhyv/64cr/+uHK//rhyv/64cr/+uHK//rhyv/64cr/++PM//vjzP/7 - 48z/++PM//vjzP/748z/++PM//vjzP/749D/++PQ//vj0P/749D/++PQ//vj0P/749D/++PQ//vm0//7 - 5tP/++bT//vm0//75tP/++bT//vm0//75tP/++nV//vp1f/76dX/++nV//vp1f/76dX/++nV//vp1f/8 - 6dj//OnY//zp2P/86dj//OnY//zp2P/86dj//OnY//zq2//86tv//Orb//zq2//86tv//Orb//zq2//8 - 6tv////9/////f////3////9/////f////3////9/////f/SnHD/0pxw/9KccP/SnHD/0pxw/9KccP/S - nHD/0pxw/+7ZwP/u2cD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/u2cD/0JlU5dCZVOXQmVTl0JlU5dCZVOXQ - mVTl0JlU5dCZVOUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA0JlUpNCZVKTQmVSk0JlUpNCZVKTQmVSk0JlUpNCZVKTt0LH/7dCx/+3Qsf/t - 0LH/7dCx/+3Qsf/t0LH/7dCx///28P//9vD///bw///28P//9vD///bw///28P//9vD/+uHK//rhyv/6 - 4cr/+uHK//rhyv/64cr/+uHK//rhyv/748z/++PM//vjzP/748z/++PM//vjzP/748z/++PM//vj0P/7 - 49D/++PQ//vj0P/749D/++PQ//vj0P/749D/++bT//vm0//75tP/++bT//vm0//75tP/++bT//vm0//7 - 6dX/++nV//vp1f/76dX/++nV//vp1f/76dX/++nV//zp2P/86dj//OnY//zp2P/86dj//OnY//zp2P/8 - 6dj//Orb//zq2//86tv//Orb//zq2//86tv//Orb//zq2/////3////9/////f////3////9/////f// - //3////9/9KccP/SnHD/0pxw/9KccP/SnHD/0pxw/9KccP/SnHD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/u - 2cD/7tnA/+7ZwP/QmVTl0JlU5dCZVOXQmVTl0JlU5dCZVOXQmVTl0JlU5QAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQmVSk0JlUpNCZVKTQ - mVSk0JlUpNCZVKTQmVSk0JlUpO3Qsf/t0LH/7dCx/+3Qsf/t0LH/7dCx/+3Qsf/t0LH///bw///28P// - 9vD///bw///28P//9vD///bw///28P/64cr/+uHK//rhyv/64cr/+uHK//rhyv/64cr/+uHK//vjzP/7 - 48z/++PM//vjzP/748z/++PM//vjzP/748z/++PQ//vj0P/749D/++PQ//vj0P/749D/++PQ//vj0P/7 - 5tP/++bT//vm0//75tP/++bT//vm0//75tP/++bT//vp1f/76dX/++nV//vp1f/76dX/++nV//vp1f/7 - 6dX//OnY//zp2P/86dj//OnY//zp2P/86dj//OnY//zp2P/86tv//Orb//zq2//86tv//Orb//zq2//8 - 6tv//Orb/////f////3////9/////f////3////9/////f////3/0pxw/9KccP/SnHD/0pxw/9KccP/S - nHD/0pxw/9KccP/u2cD/7tnA/+7ZwP/u2cD/7tnA/+7ZwP/u2cD/7tnA/9CZVOXQmVTl0JlU5dCZVOXQ - mVTl0JlU5dCZVOXQmVTlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAANWeV5LVnleS1Z5XktWeV5LVnleS1Z5XktWeV5LVnleS68qk/+vKpP/r - yqT/68qk/+vKpP/ryqT/68qk/+vKpP///fv///37///9+////fv///37///9+////fv///37//3p1f/9 - 6dX//enV//3p1f/96dX//enV//3p1f/96dX//evY//3r2P/969j//evY//3r2P/969j//evY//3r2P/9 - 6tv//erb//3q2//96tv//erb//3q2//96tv//erb//3t3//97d///e3f//3t3//97d///e3f//3t3//9 - 7d///fDi//3w4v/98OL//fDi//3w4v/98OL//fDi//3w4v/98eT//fHk//3x5P/98eT//fHk//3x5P/9 - 8eT//fHk//zw5P/88OT//PDk//zw5P/88OT//PDk//zw5P/88OT///////////////////////////// - ///////////////gn2//4J9v/+Cfb//gn2//4J9v/+Cfb//gn2//4J9v///7+f//+/n///v5///7+f// - +/n///v5///7+f//+/n/37eG/9+3hv/ft4b/37eG/9+3hv/ft4b/37eG/9+3hv8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1Z5XktWeV5LV - nleS1Z5XktWeV5LVnleS1Z5XktWeV5LryqT/68qk/+vKpP/ryqT/68qk/+vKpP/ryqT/68qk///9+/// - /fv///37///9+////fv///37///9+////fv//enV//3p1f/96dX//enV//3p1f/96dX//enV//3p1f/9 - 69j//evY//3r2P/969j//evY//3r2P/969j//evY//3q2//96tv//erb//3q2//96tv//erb//3q2//9 - 6tv//e3f//3t3//97d///e3f//3t3//97d///e3f//3t3//98OL//fDi//3w4v/98OL//fDi//3w4v/9 - 8OL//fDi//3x5P/98eT//fHk//3x5P/98eT//fHk//3x5P/98eT//PDk//zw5P/88OT//PDk//zw5P/8 - 8OT//PDk//zw5P///////////////////////////////////////////+Cfb//gn2//4J9v/+Cfb//g - n2//4J9v/+Cfb//gn2////v5///7+f//+/n///v5///7+f//+/n///v5///7+f/ft4b/37eG/9+3hv/f - t4b/37eG/9+3hv/ft4b/37eG/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVnleS1Z5XktWeV5LVnleS1Z5XktWeV5LVnleS1Z5XkuvKpP/r - yqT/68qk/+vKpP/ryqT/68qk/+vKpP/ryqT///37///9+////fv///37///9+////fv///37///9+//9 - 6dX//enV//3p1f/96dX//enV//3p1f/96dX//enV//3r2P/969j//evY//3r2P/969j//evY//3r2P/9 - 69j//erb//3q2//96tv//erb//3q2//96tv//erb//3q2//97d///e3f//3t3//97d///e3f//3t3//9 - 7d///e3f//3w4v/98OL//fDi//3w4v/98OL//fDi//3w4v/98OL//fHk//3x5P/98eT//fHk//3x5P/9 - 8eT//fHk//3x5P/88OT//PDk//zw5P/88OT//PDk//zw5P/88OT//PDk//////////////////////// - ////////////////////4J9v/+Cfb//gn2//4J9v/+Cfb//gn2//4J9v/+Cfb///+/n///v5///7+f// - +/n///v5///7+f//+/n///v5/9+3hv/ft4b/37eG/9+3hv/ft4b/37eG/9+3hv/ft4b/AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANWeV5LV - nleS1Z5XktWeV5LVnleS1Z5XktWeV5LVnleS68qk/+vKpP/ryqT/68qk/+vKpP/ryqT/68qk/+vKpP// - /fv///37///9+////fv///37///9+////fv///37//3p1f/96dX//enV//3p1f/96dX//enV//3p1f/9 - 6dX//evY//3r2P/969j//evY//3r2P/969j//evY//3r2P/96tv//erb//3q2//96tv//erb//3q2//9 - 6tv//erb//3t3//97d///e3f//3t3//97d///e3f//3t3//97d///fDi//3w4v/98OL//fDi//3w4v/9 - 8OL//fDi//3w4v/98eT//fHk//3x5P/98eT//fHk//3x5P/98eT//fHk//zw5P/88OT//PDk//zw5P/8 - 8OT//PDk//zw5P/88OT////////////////////////////////////////////gn2//4J9v/+Cfb//g - n2//4J9v/+Cfb//gn2//4J9v///7+f//+/n///v5///7+f//+/n///v5///7+f//+/n/37eG/9+3hv/f - t4b/37eG/9+3hv/ft4b/37eG/9+3hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1Z5XktWeV5LVnleS1Z5XktWeV5LVnleS1Z5XktWeV5Lr - yqT/68qk/+vKpP/ryqT/68qk/+vKpP/ryqT/68qk///9+////fv///37///9+////fv///37///9+/// - /fv//enV//3p1f/96dX//enV//3p1f/96dX//enV//3p1f/969j//evY//3r2P/969j//evY//3r2P/9 - 69j//evY//3q2//96tv//erb//3q2//96tv//erb//3q2//96tv//e3f//3t3//97d///e3f//3t3//9 - 7d///e3f//3t3//98OL//fDi//3w4v/98OL//fDi//3w4v/98OL//fDi//3x5P/98eT//fHk//3x5P/9 - 8eT//fHk//3x5P/98eT//PDk//zw5P/88OT//PDk//zw5P/88OT//PDk//zw5P////////////////// - /////////////////////////+Cfb//gn2//4J9v/+Cfb//gn2//4J9v/+Cfb//gn2////v5///7+f// - +/n///v5///7+f//+/n///v5///7+f/ft4b/37eG/9+3hv/ft4b/37eG/9+3hv/ft4b/37eG/wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV - nleS1Z5XktWeV5LVnleS1Z5XktWeV5LVnleS1Z5XkuvKpP/ryqT/68qk/+vKpP/ryqT/68qk/+vKpP/r - yqT///37///9+////fv///37///9+////fv///37///9+//96dX//enV//3p1f/96dX//enV//3p1f/9 - 6dX//enV//3r2P/969j//evY//3r2P/969j//evY//3r2P/969j//erb//3q2//96tv//erb//3q2//9 - 6tv//erb//3q2//97d///e3f//3t3//97d///e3f//3t3//97d///e3f//3w4v/98OL//fDi//3w4v/9 - 8OL//fDi//3w4v/98OL//fHk//3x5P/98eT//fHk//3x5P/98eT//fHk//3x5P/88OT//PDk//zw5P/8 - 8OT//PDk//zw5P/88OT//PDk////////////////////////////////////////////4J9v/+Cfb//g - n2//4J9v/+Cfb//gn2//4J9v/+Cfb///+/n///v5///7+f//+/n///v5///7+f//+/n///v5/9+3hv/f - t4b/37eG/9+3hv/ft4b/37eG/9+3hv/ft4b/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANWeV5LVnleS1Z5XktWeV5LVnleS1Z5XktWeV5LV - nleS68qk/+vKpP/ryqT/68qk/+vKpP/ryqT/68qk/+vKpP///fv///37///9+////fv///37///9+/// - /fv///37//3p1f/96dX//enV//3p1f/96dX//enV//3p1f/96dX//evY//3r2P/969j//evY//3r2P/9 - 69j//evY//3r2P/96tv//erb//3q2//96tv//erb//3q2//96tv//erb//3t3//97d///e3f//3t3//9 - 7d///e3f//3t3//97d///fDi//3w4v/98OL//fDi//3w4v/98OL//fDi//3w4v/98eT//fHk//3x5P/9 - 8eT//fHk//3x5P/98eT//fHk//zw5P/88OT//PDk//zw5P/88OT//PDk//zw5P/88OT///////////// - ///////////////////////////////gn2//4J9v/+Cfb//gn2//4J9v/+Cfb//gn2//4J9v///7+f// - +/n///v5///7+f//+/n///v5///7+f//+/n/37eG/9+3hv/ft4b/37eG/9+3hv/ft4b/37eG/9+3hv8A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAA1Z5XktWeV5LVnleS1Z5XktWeV5LVnleS1Z5XktWeV5LryqT/68qk/+vKpP/ryqT/68qk/+vKpP/r - yqT/68qk///9+////fv///37///9+////fv///37///9+////fv//enV//3p1f/96dX//enV//3p1f/9 - 6dX//enV//3p1f/969j//evY//3r2P/969j//evY//3r2P/969j//evY//3q2//96tv//erb//3q2//9 - 6tv//erb//3q2//96tv//e3f//3t3//97d///e3f//3t3//97d///e3f//3t3//98OL//fDi//3w4v/9 - 8OL//fDi//3w4v/98OL//fDi//3x5P/98eT//fHk//3x5P/98eT//fHk//3x5P/98eT//PDk//zw5P/8 - 8OT//PDk//zw5P/88OT//PDk//zw5P///////////////////////////////////////////+Cfb//g - n2//4J9v/+Cfb//gn2//4J9v/+Cfb//gn2////v5///7+f//+/n///v5///7+f//+/n///v5///7+f/f - t4b/37eG/9+3hv/ft4b/37eG/9+3hv/ft4b/37eG/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADao1qE2qNahNqjWoTao1qE2qNahNqjWoTa - o1qE2qNahOvFmf/rxZn/68WZ/+vFmf/rxZn/68WZ/+vFmf/rxZn///////////////////////////// - ///////////////87+L//O/i//zv4v/87+L//O/i//zv4v/87+L//O/i//3w5//98Of//fDn//3w5//9 - 8Of//fDn//3w5//98Of//fHr//3x6//98ev//fHr//3x6//98ev//fHr//3x6//99e7//fXu//317v/9 - 9e7//fXu//317v/99e7//fXu//348f/9+PH//fjx//348f/9+PH//fjx//348f/9+PH//fr3//369//9 - +vf//fr3//369//9+vf//fr3//369////Pr///z6///8+v///Pr///z6///8+v///Pr///z6//////// - /////////////////////////////////////vv3//779//++/f//vv3//779//++/f//vv3//779//0 - 2r//9Nq///Tav//02r//9Nq///Tav//02r//9Nq//9qjWurao1rq2qNa6tqjWurao1rq2qNa6tqjWura - o1rqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAANqjWoTao1qE2qNahNqjWoTao1qE2qNahNqjWoTao1qE68WZ/+vFmf/rxZn/68WZ/+vFmf/r - xZn/68WZ/+vFmf////////////////////////////////////////////zv4v/87+L//O/i//zv4v/8 - 7+L//O/i//zv4v/87+L//fDn//3w5//98Of//fDn//3w5//98Of//fDn//3w5//98ev//fHr//3x6//9 - 8ev//fHr//3x6//98ev//fHr//317v/99e7//fXu//317v/99e7//fXu//317v/99e7//fjx//348f/9 - +PH//fjx//348f/9+PH//fjx//348f/9+vf//fr3//369//9+vf//fr3//369//9+vf//fr3///8+v// - /Pr///z6///8+v///Pr///z6///8+v///Pr////////////////////////////////////////////+ - +/f//vv3//779//++/f//vv3//779//++/f//vv3//Tav//02r//9Nq///Tav//02r//9Nq///Tav//0 - 2r//2qNa6tqjWurao1rq2qNa6tqjWurao1rq2qNa6tqjWuoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2qNahNqjWoTao1qE2qNahNqjWoTa - o1qE2qNahNqjWoTrxZn/68WZ/+vFmf/rxZn/68WZ/+vFmf/rxZn/68WZ//////////////////////// - /////////////////////O/i//zv4v/87+L//O/i//zv4v/87+L//O/i//zv4v/98Of//fDn//3w5//9 - 8Of//fDn//3w5//98Of//fDn//3x6//98ev//fHr//3x6//98ev//fHr//3x6//98ev//fXu//317v/9 - 9e7//fXu//317v/99e7//fXu//317v/9+PH//fjx//348f/9+PH//fjx//348f/9+PH//fjx//369//9 - +vf//fr3//369//9+vf//fr3//369//9+vf///z6///8+v///Pr///z6///8+v///Pr///z6///8+v// - //////////////////////////////////////////779//++/f//vv3//779//++/f//vv3//779//+ - +/f/9Nq///Tav//02r//9Nq///Tav//02r//9Nq///Tav//ao1rq2qNa6tqjWurao1rq2qNa6tqjWura - o1rq2qNa6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADao1qE2qNahNqjWoTao1qE2qNahNqjWoTao1qE2qNahOvFmf/rxZn/68WZ/+vFmf/r - xZn/68WZ/+vFmf/rxZn////////////////////////////////////////////87+L//O/i//zv4v/8 - 7+L//O/i//zv4v/87+L//O/i//3w5//98Of//fDn//3w5//98Of//fDn//3w5//98Of//fHr//3x6//9 - 8ev//fHr//3x6//98ev//fHr//3x6//99e7//fXu//317v/99e7//fXu//317v/99e7//fXu//348f/9 - +PH//fjx//348f/9+PH//fjx//348f/9+PH//fr3//369//9+vf//fr3//369//9+vf//fr3//369/// - /Pr///z6///8+v///Pr///z6///8+v///Pr///z6//////////////////////////////////////// - /////vv3//779//++/f//vv3//779//++/f//vv3//779//02r//9Nq///Tav//02r//9Nq///Tav//0 - 2r//9Nq//9qjWurao1rq2qNa6tqjWurao1rq2qNa6tqjWurao1rqAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqjWoTao1qE2qNahNqjWoTa - o1qE2qNahNqjWoTao1qE68WZ/+vFmf/rxZn/68WZ/+vFmf/rxZn/68WZ/+vFmf////////////////// - //////////////////////////zv4v/87+L//O/i//zv4v/87+L//O/i//zv4v/87+L//fDn//3w5//9 - 8Of//fDn//3w5//98Of//fDn//3w5//98ev//fHr//3x6//98ev//fHr//3x6//98ev//fHr//317v/9 - 9e7//fXu//317v/99e7//fXu//317v/99e7//fjx//348f/9+PH//fjx//348f/9+PH//fjx//348f/9 - +vf//fr3//369//9+vf//fr3//369//9+vf//fr3///8+v///Pr///z6///8+v///Pr///z6///8+v// - /Pr////////////////////////////////////////////++/f//vv3//779//++/f//vv3//779//+ - +/f//vv3//Tav//02r//9Nq///Tav//02r//9Nq///Tav//02r//2qNa6tqjWurao1rq2qNa6tqjWura - o1rq2qNa6tqjWuoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA2qNahNqjWoTao1qE2qNahNqjWoTao1qE2qNahNqjWoTrxZn/68WZ/+vFmf/r - xZn/68WZ/+vFmf/rxZn/68WZ/////////////////////////////////////////////O/i//zv4v/8 - 7+L//O/i//zv4v/87+L//O/i//zv4v/98Of//fDn//3w5//98Of//fDn//3w5//98Of//fDn//3x6//9 - 8ev//fHr//3x6//98ev//fHr//3x6//98ev//fXu//317v/99e7//fXu//317v/99e7//fXu//317v/9 - +PH//fjx//348f/9+PH//fjx//348f/9+PH//fjx//369//9+vf//fr3//369//9+vf//fr3//369//9 - +vf///z6///8+v///Pr///z6///8+v///Pr///z6///8+v////////////////////////////////// - //////////779//++/f//vv3//779//++/f//vv3//779//++/f/9Nq///Tav//02r//9Nq///Tav//0 - 2r//9Nq///Tav//ao1rq2qNa6tqjWurao1rq2qNa6tqjWurao1rq2qNa6gAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADao1qE2qNahNqjWoTa - o1qE2qNahNqjWoTao1qE2qNahOvFmf/rxZn/68WZ/+vFmf/rxZn/68WZ/+vFmf/rxZn///////////// - ///////////////////////////////87+L//O/i//zv4v/87+L//O/i//zv4v/87+L//O/i//3w5//9 - 8Of//fDn//3w5//98Of//fDn//3w5//98Of//fHr//3x6//98ev//fHr//3x6//98ev//fHr//3x6//9 - 9e7//fXu//317v/99e7//fXu//317v/99e7//fXu//348f/9+PH//fjx//348f/9+PH//fjx//348f/9 - +PH//fr3//369//9+vf//fr3//369//9+vf//fr3//369////Pr///z6///8+v///Pr///z6///8+v// - /Pr///z6/////////////////////////////////////////////vv3//779//++/f//vv3//779//+ - +/f//vv3//779//02r//9Nq///Tav//02r//9Nq///Tav//02r//9Nq//9qjWurao1rq2qNa6tqjWura - o1rq2qNa6tqjWurao1rqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAANqjWoTao1qE2qNahNqjWoTao1qE2qNahNqjWoTao1qE68WZ/+vFmf/r - xZn/68WZ/+vFmf/rxZn/68WZ/+vFmf////////////////////////////////////////////zv4v/8 - 7+L//O/i//zv4v/87+L//O/i//zv4v/87+L//fDn//3w5//98Of//fDn//3w5//98Of//fDn//3w5//9 - 8ev//fHr//3x6//98ev//fHr//3x6//98ev//fHr//317v/99e7//fXu//317v/99e7//fXu//317v/9 - 9e7//fjx//348f/9+PH//fjx//348f/9+PH//fjx//348f/9+vf//fr3//369//9+vf//fr3//369//9 - +vf//fr3///8+v///Pr///z6///8+v///Pr///z6///8+v///Pr///////////////////////////// - ///////////////++/f//vv3//779//++/f//vv3//779//++/f//vv3//Tav//02r//9Nq///Tav//0 - 2r//9Nq///Tav//02r//2qNa6tqjWurao1rq2qNa6tqjWurao1rq2qNa6tqjWuoAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3qdcbd6nXG3e - p1xt3qdcbd6nXG3ep1xt3qdcbd6nXG3qv4v/6r+L/+q/i//qv4v/6r+L/+q/i//qv4v/6r+L//////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////fn0//359P/9+fT//fn0//359P/9+fT//fn0//359P/78+r/+/Pq//vz6v/78+r/+/Pq//vz6v/7 - 8+r/+/Pq//jr2f/469n/+OvZ//jr2f/469n/+OvZ//jr2f/469n/+ObT//jm0//45tP/+ObT//jm0//4 - 5tP/+ObT//jm0//138X/9d/F//Xfxf/138X/9d/F//Xfxf/138X/9d/F/+nLpf/py6X/6cul/+nLpf/p - y6X/6cul/+nLpf/py6X/3qdc7d6nXO3ep1zt3qdc7d6nXO3ep1zt3qdc7d6nXO3ep1xd3qdcXd6nXF3e - p1xd3qdcXd6nXF3ep1xd3qdcXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADep1xt3qdcbd6nXG3ep1xt3qdcbd6nXG3ep1xt3qdcbeq/i//q - v4v/6r+L/+q/i//qv4v/6r+L/+q/i//qv4v///////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////9+fT//fn0//359P/9+fT//fn0//359P/9 - +fT//fn0//vz6v/78+r/+/Pq//vz6v/78+r/+/Pq//vz6v/78+r/+OvZ//jr2f/469n/+OvZ//jr2f/4 - 69n/+OvZ//jr2f/45tP/+ObT//jm0//45tP/+ObT//jm0//45tP/+ObT//Xfxf/138X/9d/F//Xfxf/1 - 38X/9d/F//Xfxf/138X/6cul/+nLpf/py6X/6cul/+nLpf/py6X/6cul/+nLpf/ep1zt3qdc7d6nXO3e - p1zt3qdc7d6nXO3ep1zt3qdc7d6nXF3ep1xd3qdcXd6nXF3ep1xd3qdcXd6nXF3ep1xdAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6nXG3e - p1xt3qdcbd6nXG3ep1xt3qdcbd6nXG3ep1xt6r+L/+q/i//qv4v/6r+L/+q/i//qv4v/6r+L/+q/i/// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////359P/9+fT//fn0//359P/9+fT//fn0//359P/9+fT/+/Pq//vz6v/78+r/+/Pq//vz6v/7 - 8+r/+/Pq//vz6v/469n/+OvZ//jr2f/469n/+OvZ//jr2f/469n/+OvZ//jm0//45tP/+ObT//jm0//4 - 5tP/+ObT//jm0//45tP/9d/F//Xfxf/138X/9d/F//Xfxf/138X/9d/F//Xfxf/py6X/6cul/+nLpf/p - y6X/6cul/+nLpf/py6X/6cul/96nXO3ep1zt3qdc7d6nXO3ep1zt3qdc7d6nXO3ep1zt3qdcXd6nXF3e - p1xd3qdcXd6nXF3ep1xd3qdcXd6nXF0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3qdcbd6nXG3ep1xt3qdcbd6nXG3ep1xt3qdcbd6nXG3q - v4v/6r+L/+q/i//qv4v/6r+L/+q/i//qv4v/6r+L//////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////fn0//359P/9+fT//fn0//359P/9 - +fT//fn0//359P/78+r/+/Pq//vz6v/78+r/+/Pq//vz6v/78+r/+/Pq//jr2f/469n/+OvZ//jr2f/4 - 69n/+OvZ//jr2f/469n/+ObT//jm0//45tP/+ObT//jm0//45tP/+ObT//jm0//138X/9d/F//Xfxf/1 - 38X/9d/F//Xfxf/138X/9d/F/+nLpf/py6X/6cul/+nLpf/py6X/6cul/+nLpf/py6X/3qdc7d6nXO3e - p1zt3qdc7d6nXO3ep1zt3qdc7d6nXO3ep1xd3qdcXd6nXF3ep1xd3qdcXd6nXF3ep1xd3qdcXQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADe - p1xt3qdcbd6nXG3ep1xt3qdcbd6nXG3ep1xt3qdcbeq/i//qv4v/6r+L/+q/i//qv4v/6r+L/+q/i//q - v4v///////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////9+fT//fn0//359P/9+fT//fn0//359P/9+fT//fn0//vz6v/78+r/+/Pq//vz6v/7 - 8+r/+/Pq//vz6v/78+r/+OvZ//jr2f/469n/+OvZ//jr2f/469n/+OvZ//jr2f/45tP/+ObT//jm0//4 - 5tP/+ObT//jm0//45tP/+ObT//Xfxf/138X/9d/F//Xfxf/138X/9d/F//Xfxf/138X/6cul/+nLpf/p - y6X/6cul/+nLpf/py6X/6cul/+nLpf/ep1zt3qdc7d6nXO3ep1zt3qdc7d6nXO3ep1zt3qdc7d6nXF3e - p1xd3qdcXd6nXF3ep1xd3qdcXd6nXF3ep1xdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6nXG3ep1xt3qdcbd6nXG3ep1xt3qdcbd6nXG3e - p1xt6r+L/+q/i//qv4v/6r+L/+q/i//qv4v/6r+L/+q/i/////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////359P/9+fT//fn0//359P/9 - +fT//fn0//359P/9+fT/+/Pq//vz6v/78+r/+/Pq//vz6v/78+r/+/Pq//vz6v/469n/+OvZ//jr2f/4 - 69n/+OvZ//jr2f/469n/+OvZ//jm0//45tP/+ObT//jm0//45tP/+ObT//jm0//45tP/9d/F//Xfxf/1 - 38X/9d/F//Xfxf/138X/9d/F//Xfxf/py6X/6cul/+nLpf/py6X/6cul/+nLpf/py6X/6cul/96nXO3e - p1zt3qdc7d6nXO3ep1zt3qdc7d6nXO3ep1zt3qdcXd6nXF3ep1xd3qdcXd6nXF3ep1xd3qdcXd6nXF0A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAA3qdcbd6nXG3ep1xt3qdcbd6nXG3ep1xt3qdcbd6nXG3qv4v/6r+L/+q/i//qv4v/6r+L/+q/i//q - v4v/6r+L//////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////fn0//359P/9+fT//fn0//359P/9+fT//fn0//359P/78+r/+/Pq//vz6v/7 - 8+r/+/Pq//vz6v/78+r/+/Pq//jr2f/469n/+OvZ//jr2f/469n/+OvZ//jr2f/469n/+ObT//jm0//4 - 5tP/+ObT//jm0//45tP/+ObT//jm0//138X/9d/F//Xfxf/138X/9d/F//Xfxf/138X/9d/F/+nLpf/p - y6X/6cul/+nLpf/py6X/6cul/+nLpf/py6X/3qdc7d6nXO3ep1zt3qdc7d6nXO3ep1zt3qdc7d6nXO3e - p1xd3qdcXd6nXF3ep1xd3qdcXd6nXF3ep1xd3qdcXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADep1xt3qdcbd6nXG3ep1xt3qdcbd6nXG3e - p1xt3qdcbeq/i//qv4v/6r+L/+q/i//qv4v/6r+L/+q/i//qv4v///////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////////////9+fT//fn0//359P/9 - +fT//fn0//359P/9+fT//fn0//vz6v/78+r/+/Pq//vz6v/78+r/+/Pq//vz6v/78+r/+OvZ//jr2f/4 - 69n/+OvZ//jr2f/469n/+OvZ//jr2f/45tP/+ObT//jm0//45tP/+ObT//jm0//45tP/+ObT//Xfxf/1 - 38X/9d/F//Xfxf/138X/9d/F//Xfxf/138X/6cul/+nLpf/py6X/6cul/+nLpf/py6X/6cul/+nLpf/e - p1zt3qdc7d6nXO3ep1zt3qdc7d6nXO3ep1zt3qdc7d6nXF3ep1xd3qdcXd6nXF3ep1xd3qdcXd6nXF3e - p1xdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAOKrXjbiq1424qteNuKrXjbiq1424qteNuKrXjbiq1424qtexuKrXsbiq17G4qtexuKrXsbi - q17G4qtexuKrXsbqu4D/6ruA/+q7gP/qu4D/6ruA/+q7gP/qu4D/6ruA/+i2dv/otnb/6LZ2/+i2dv/o - tnb/6LZ2/+i2dv/otnb/5rFs/+axbP/msWz/5rFs/+axbP/msWz/5rFs/+axbP/kr2f/5K9n/+SvZ//k - r2f/5K9n/+SvZ//kr2f/5K9n/+KrXvDiq17w4qte8OKrXvDiq17w4qte8OKrXvDiq17w4qte4+KrXuPi - q17j4qte4+KrXuPiq17j4qte4+KrXuPiq17P4qtez+KrXs/iq17P4qtez+KrXs/iq17P4qtez+KrXszi - q17M4qtezOKrXsziq17M4qtezOKrXsziq17M4qteu+KrXrviq1674qteu+KrXrviq1674qteu+KrXrvi - q16o4qteqOKrXqjiq16o4qteqOKrXqjiq16o4qteqOKrXkviq15L4qteS+KrXkviq15L4qteS+KrXkvi - q15L4qteBeKrXgXiq14F4qteBeKrXgXiq14F4qteBeKrXgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4qteNuKrXjbiq1424qteNuKrXjbi - q1424qteNuKrXjbiq17G4qtexuKrXsbiq17G4qtexuKrXsbiq17G4qtexuq7gP/qu4D/6ruA/+q7gP/q - u4D/6ruA/+q7gP/qu4D/6LZ2/+i2dv/otnb/6LZ2/+i2dv/otnb/6LZ2/+i2dv/msWz/5rFs/+axbP/m - sWz/5rFs/+axbP/msWz/5rFs/+SvZ//kr2f/5K9n/+SvZ//kr2f/5K9n/+SvZ//kr2f/4qte8OKrXvDi - q17w4qte8OKrXvDiq17w4qte8OKrXvDiq17j4qte4+KrXuPiq17j4qte4+KrXuPiq17j4qte4+KrXs/i - q17P4qtez+KrXs/iq17P4qtez+KrXs/iq17P4qtezOKrXsziq17M4qtezOKrXsziq17M4qtezOKrXszi - q1674qteu+KrXrviq1674qteu+KrXrviq1674qteu+KrXqjiq16o4qteqOKrXqjiq16o4qteqOKrXqji - q16o4qteS+KrXkviq15L4qteS+KrXkviq15L4qteS+KrXkviq14F4qteBeKrXgXiq14F4qteBeKrXgXi - q14F4qteBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADiq1424qteNuKrXjbiq1424qteNuKrXjbiq1424qteNuKrXsbiq17G4qtexuKrXsbi - q17G4qtexuKrXsbiq17G6ruA/+q7gP/qu4D/6ruA/+q7gP/qu4D/6ruA/+q7gP/otnb/6LZ2/+i2dv/o - tnb/6LZ2/+i2dv/otnb/6LZ2/+axbP/msWz/5rFs/+axbP/msWz/5rFs/+axbP/msWz/5K9n/+SvZ//k - r2f/5K9n/+SvZ//kr2f/5K9n/+SvZ//iq17w4qte8OKrXvDiq17w4qte8OKrXvDiq17w4qte8OKrXuPi - q17j4qte4+KrXuPiq17j4qte4+KrXuPiq17j4qtez+KrXs/iq17P4qtez+KrXs/iq17P4qtez+KrXs/i - q17M4qtezOKrXsziq17M4qtezOKrXsziq17M4qtezOKrXrviq1674qteu+KrXrviq1674qteu+KrXrvi - q1674qteqOKrXqjiq16o4qteqOKrXqjiq16o4qteqOKrXqjiq15L4qteS+KrXkviq15L4qteS+KrXkvi - q15L4qteS+KrXgXiq14F4qteBeKrXgXiq14F4qteBeKrXgXiq14FAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOKrXjbiq1424qteNuKrXjbi - q1424qteNuKrXjbiq1424qtexuKrXsbiq17G4qtexuKrXsbiq17G4qtexuKrXsbqu4D/6ruA/+q7gP/q - u4D/6ruA/+q7gP/qu4D/6ruA/+i2dv/otnb/6LZ2/+i2dv/otnb/6LZ2/+i2dv/otnb/5rFs/+axbP/m - sWz/5rFs/+axbP/msWz/5rFs/+axbP/kr2f/5K9n/+SvZ//kr2f/5K9n/+SvZ//kr2f/5K9n/+KrXvDi - q17w4qte8OKrXvDiq17w4qte8OKrXvDiq17w4qte4+KrXuPiq17j4qte4+KrXuPiq17j4qte4+KrXuPi - q17P4qtez+KrXs/iq17P4qtez+KrXs/iq17P4qtez+KrXsziq17M4qtezOKrXsziq17M4qtezOKrXszi - q17M4qteu+KrXrviq1674qteu+KrXrviq1674qteu+KrXrviq16o4qteqOKrXqjiq16o4qteqOKrXqji - q16o4qteqOKrXkviq15L4qteS+KrXkviq15L4qteS+KrXkviq15L4qteBeKrXgXiq14F4qteBeKrXgXi - q14F4qteBeKrXgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA4qteNuKrXjbiq1424qteNuKrXjbiq1424qteNuKrXjbiq17G4qtexuKrXsbi - q17G4qtexuKrXsbiq17G4qtexuq7gP/qu4D/6ruA/+q7gP/qu4D/6ruA/+q7gP/qu4D/6LZ2/+i2dv/o - tnb/6LZ2/+i2dv/otnb/6LZ2/+i2dv/msWz/5rFs/+axbP/msWz/5rFs/+axbP/msWz/5rFs/+SvZ//k - r2f/5K9n/+SvZ//kr2f/5K9n/+SvZ//kr2f/4qte8OKrXvDiq17w4qte8OKrXvDiq17w4qte8OKrXvDi - q17j4qte4+KrXuPiq17j4qte4+KrXuPiq17j4qte4+KrXs/iq17P4qtez+KrXs/iq17P4qtez+KrXs/i - q17P4qtezOKrXsziq17M4qtezOKrXsziq17M4qtezOKrXsziq1674qteu+KrXrviq1674qteu+KrXrvi - q1674qteu+KrXqjiq16o4qteqOKrXqjiq16o4qteqOKrXqjiq16o4qteS+KrXkviq15L4qteS+KrXkvi - q15L4qteS+KrXkviq14F4qteBeKrXgXiq14F4qteBeKrXgXiq14F4qteBQAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADiq1424qteNuKrXjbi - q1424qteNuKrXjbiq1424qteNuKrXsbiq17G4qtexuKrXsbiq17G4qtexuKrXsbiq17G6ruA/+q7gP/q - u4D/6ruA/+q7gP/qu4D/6ruA/+q7gP/otnb/6LZ2/+i2dv/otnb/6LZ2/+i2dv/otnb/6LZ2/+axbP/m - sWz/5rFs/+axbP/msWz/5rFs/+axbP/msWz/5K9n/+SvZ//kr2f/5K9n/+SvZ//kr2f/5K9n/+SvZ//i - q17w4qte8OKrXvDiq17w4qte8OKrXvDiq17w4qte8OKrXuPiq17j4qte4+KrXuPiq17j4qte4+KrXuPi - q17j4qtez+KrXs/iq17P4qtez+KrXs/iq17P4qtez+KrXs/iq17M4qtezOKrXsziq17M4qtezOKrXszi - q17M4qtezOKrXrviq1674qteu+KrXrviq1674qteu+KrXrviq1674qteqOKrXqjiq16o4qteqOKrXqji - q16o4qteqOKrXqjiq15L4qteS+KrXkviq15L4qteS+KrXkviq15L4qteS+KrXgXiq14F4qteBeKrXgXi - q14F4qteBeKrXgXiq14FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAOKrXjbiq1424qteNuKrXjbiq1424qteNuKrXjbiq1424qtexuKrXsbi - q17G4qtexuKrXsbiq17G4qtexuKrXsbqu4D/6ruA/+q7gP/qu4D/6ruA/+q7gP/qu4D/6ruA/+i2dv/o - tnb/6LZ2/+i2dv/otnb/6LZ2/+i2dv/otnb/5rFs/+axbP/msWz/5rFs/+axbP/msWz/5rFs/+axbP/k - r2f/5K9n/+SvZ//kr2f/5K9n/+SvZ//kr2f/5K9n/+KrXvDiq17w4qte8OKrXvDiq17w4qte8OKrXvDi - q17w4qte4+KrXuPiq17j4qte4+KrXuPiq17j4qte4+KrXuPiq17P4qtez+KrXs/iq17P4qtez+KrXs/i - q17P4qtez+KrXsziq17M4qtezOKrXsziq17M4qtezOKrXsziq17M4qteu+KrXrviq1674qteu+KrXrvi - q1674qteu+KrXrviq16o4qteqOKrXqjiq16o4qteqOKrXqjiq16o4qteqOKrXkviq15L4qteS+KrXkvi - q15L4qteS+KrXkviq15L4qteBeKrXgXiq14F4qteBeKrXgXiq14F4qteBeKrXgUAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4qteNuKrXjbi - q1424qteNuKrXjbiq1424qteNuKrXjbiq17G4qtexuKrXsbiq17G4qtexuKrXsbiq17G4qtexuq7gP/q - u4D/6ruA/+q7gP/qu4D/6ruA/+q7gP/qu4D/6LZ2/+i2dv/otnb/6LZ2/+i2dv/otnb/6LZ2/+i2dv/m - sWz/5rFs/+axbP/msWz/5rFs/+axbP/msWz/5rFs/+SvZ//kr2f/5K9n/+SvZ//kr2f/5K9n/+SvZ//k - r2f/4qte8OKrXvDiq17w4qte8OKrXvDiq17w4qte8OKrXvDiq17j4qte4+KrXuPiq17j4qte4+KrXuPi - q17j4qte4+KrXs/iq17P4qtez+KrXs/iq17P4qtez+KrXs/iq17P4qtezOKrXsziq17M4qtezOKrXszi - q17M4qtezOKrXsziq1674qteu+KrXrviq1674qteu+KrXrviq1674qteu+KrXqjiq16o4qteqOKrXqji - q16o4qteqOKrXqjiq16o4qteS+KrXkviq15L4qteS+KrXkviq15L4qteS+KrXkviq14F4qteBeKrXgXi - q14F4qteBeKrXgXiq14F4qteBQAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAA - AAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8A - AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA - AP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAA - AAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8A - AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA - AP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAA - AAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//// - AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAA - AP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAAAA - AAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAD///8AAAAA - AAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//// - AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAA - AAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAA - AAAAAAAA//8AAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAA - AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP// - /wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA - AAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAA - AAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAP//AAAA - AAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/ - /wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA - AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA - AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAA - AAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/ - /wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA - AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA - AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAA - AAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/ - /wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA - AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA - AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAA - AAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAKAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAww4AAMMOAAAA - AAAAAAAAAI9aMBSPWjAUj1owFI9aMBSPWjCEj1owhI9aMISPWjCEj1owo49aMKOPWjCjj1owo49aMLaP - WjC2j1owto9aMLaPWjDJj1owyY9aMMmPWjDJj1ow2o9aMNqPWjDaj1ow2o9aMOuPWjDrj1ow649aMOuP - WjD6j1ow+o9aMPqPWjD6lGA4/5RgOP+UYDj/lGA4/5loQP+ZaED/mWhA/5loQP+ic07/onNO/6JzTv+i - c07/rIFe/6yBXv+sgV7/rIFe/49aMNmPWjDZj1ow2Y9aMNmPWjA0j1owNI9aMDSPWjA0AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPWjAUj1owFI9aMBSPWjAUj1owhI9aMISPWjCEj1owhI9aMKOP - WjCjj1owo49aMKOPWjC2j1owto9aMLaPWjC2j1owyY9aMMmPWjDJj1owyY9aMNqPWjDaj1ow2o9aMNqP - WjDrj1ow649aMOuPWjDrj1ow+o9aMPqPWjD6j1ow+pRgOP+UYDj/lGA4/5RgOP+ZaED/mWhA/5loQP+Z - aED/onNO/6JzTv+ic07/onNO/6yBXv+sgV7/rIFe/6yBXv+PWjDZj1ow2Y9aMNmPWjDZj1owNI9aMDSP - WjA0j1owNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj1owFI9aMBSPWjAUj1owFI9aMISP - WjCEj1owhI9aMISPWjCjj1owo49aMKOPWjCjj1owto9aMLaPWjC2j1owto9aMMmPWjDJj1owyY9aMMmP - WjDaj1ow2o9aMNqPWjDaj1ow649aMOuPWjDrj1ow649aMPqPWjD6j1ow+o9aMPqUYDj/lGA4/5RgOP+U - YDj/mWhA/5loQP+ZaED/mWhA/6JzTv+ic07/onNO/6JzTv+sgV7/rIFe/6yBXv+sgV7/j1ow2Y9aMNmP - WjDZj1ow2Y9aMDSPWjA0j1owNI9aMDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI9aMBSP - WjAUj1owFI9aMBSPWjCEj1owhI9aMISPWjCEj1owo49aMKOPWjCjj1owo49aMLaPWjC2j1owto9aMLaP - WjDJj1owyY9aMMmPWjDJj1ow2o9aMNqPWjDaj1ow2o9aMOuPWjDrj1ow649aMOuPWjD6j1ow+o9aMPqP - WjD6lGA4/5RgOP+UYDj/lGA4/5loQP+ZaED/mWhA/5loQP+ic07/onNO/6JzTv+ic07/rIFe/6yBXv+s - gV7/rIFe/49aMNmPWjDZj1ow2Y9aMNmPWjA0j1owNI9aMDSPWjA0AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACTXjJok14yaJNeMmiTXjJot49s/7ePbP+3j2z/t49s/9a5ov/WuaL/1rmi/9a5ov/f - xbL/38Wy/9/Fsv/fxbL/59TC/+fUwv/n1ML/59TC/+7f0//u39P/7t/T/+7f0//16uL/9eri//Xq4v/1 - 6uL/+/Tv//v07//79O//+/Tv//369v/9+vb//fr2//369v///v3///79///+/f///v3/++vf//vr3//7 - 69//++vf//vv5v/77+b/++/m//vv5v/AnH//wJx//8Ccf//AnH//k14yb5NeMm+TXjJvk14ybwAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk14yaJNeMmiTXjJok14yaLePbP+3j2z/t49s/7ePbP/W - uaL/1rmi/9a5ov/WuaL/38Wy/9/Fsv/fxbL/38Wy/+fUwv/n1ML/59TC/+fUwv/u39P/7t/T/+7f0//u - 39P/9eri//Xq4v/16uL/9eri//v07//79O//+/Tv//v07//9+vb//fr2//369v/9+vb///79///+/f// - /v3///79//vr3//769//++vf//vr3//77+b/++/m//vv5v/77+b/wJx//8Ccf//AnH//wJx//5NeMm+T - XjJvk14yb5NeMm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJNeMmiTXjJok14yaJNeMmi3 - j2z/t49s/7ePbP+3j2z/1rmi/9a5ov/WuaL/1rmi/9/Fsv/fxbL/38Wy/9/Fsv/n1ML/59TC/+fUwv/n - 1ML/7t/T/+7f0//u39P/7t/T//Xq4v/16uL/9eri//Xq4v/79O//+/Tv//v07//79O///fr2//369v/9 - +vb//fr2///+/f///v3///79///+/f/769//++vf//vr3//769//++/m//vv5v/77+b/++/m/8Ccf//A - nH//wJx//8Ccf/+TXjJvk14yb5NeMm+TXjJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACT - XjJok14yaJNeMmiTXjJot49s/7ePbP+3j2z/t49s/9a5ov/WuaL/1rmi/9a5ov/fxbL/38Wy/9/Fsv/f - xbL/59TC/+fUwv/n1ML/59TC/+7f0//u39P/7t/T/+7f0//16uL/9eri//Xq4v/16uL/+/Tv//v07//7 - 9O//+/Tv//369v/9+vb//fr2//369v///v3///79///+/f///v3/++vf//vr3//769//++vf//vv5v/7 - 7+b/++/m//vv5v/AnH//wJx//8Ccf//AnH//k14yb5NeMm+TXjJvk14ybwAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAmGM1iZhjNYmYYzWJmGM1icejhP/Ho4T/x6OE/8ejhP////////////////// - //////////////////////////////////////////////////////////////////////78///+/P// - /vz///78//779//++/f//vv3//779//+9/H//vfx//738f/+9/H//vbx//728f/+9vH//vbx/+Sthf/k - rYX/5K2F/+Sthf/66Nv/+ujb//ro2//66Nv/zq6U/86ulP/OrpT/zq6U/5hjNYuYYzWLmGM1i5hjNYsA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhjNYmYYzWJmGM1iZhjNYnHo4T/x6OE/8ejhP/H - o4T///////////////////////////////////////////////////////////////////////////// - ///////////+/P///vz///78///+/P/++/f//vv3//779//++/f//vfx//738f/+9/H//vfx//728f/+ - 9vH//vbx//728f/krYX/5K2F/+Sthf/krYX/+ujb//ro2//66Nv/+ujb/86ulP/OrpT/zq6U/86ulP+Y - YzWLmGM1i5hjNYuYYzWLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYYzWJmGM1iZhjNYmY - YzWJx6OE/8ejhP/Ho4T/x6OE//////////////////////////////////////////////////////// - /////////////////////////////////vz///78///+/P///vz//vv3//779//++/f//vv3//738f/+ - 9/H//vfx//738f/+9vH//vbx//728f/+9vH/5K2F/+Sthf/krYX/5K2F//ro2//66Nv/+ujb//ro2//O - rpT/zq6U/86ulP/OrpT/mGM1i5hjNYuYYzWLmGM1iwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAmGM1iZhjNYmYYzWJmGM1icejhP/Ho4T/x6OE/8ejhP////////////////////////////////// - //////////////////////////////////////////////////////78///+/P///vz///78//779//+ - +/f//vv3//779//+9/H//vfx//738f/+9/H//vbx//728f/+9vH//vbx/+Sthf/krYX/5K2F/+Sthf/6 - 6Nv/+ujb//ro2//66Nv/zq6U/86ulP/OrpT/zq6U/5hjNYuYYzWLmGM1i5hjNYsAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAJ1oOFedaDhXnWg4V51oOFedaDj2nWg49p1oOPadaDj2s4RY/7OEWP+z - hFj/s4RY/9mkev/ZpHr/2aR6/9mkev/YnW7/2J1u/9idbv/YnW7/15pp/9eaaf/Xmmn/15pp/9iVYv/Y - lWL/2JVi/9iVYv/WkVz/1pFc/9aRXP/WkVz/1I5Y/9SOWP/Ujlj/1I5Y/9ONVv/TjVb/041W/9ONVv/i - nGj/4pxo/+KcaP/inGj/+uPR//rj0f/649H/+uPR/9i6of/YuqH/2Lqh/9i6of+daDienWg4np1oOJ6d - aDieAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdaDhXnWg4V51oOFedaDhXnWg49p1oOPad - aDj2nWg49rOEWP+zhFj/s4RY/7OEWP/ZpHr/2aR6/9mkev/ZpHr/2J1u/9idbv/YnW7/2J1u/9eaaf/X - mmn/15pp/9eaaf/YlWL/2JVi/9iVYv/YlWL/1pFc/9aRXP/WkVz/1pFc/9SOWP/Ujlj/1I5Y/9SOWP/T - jVb/041W/9ONVv/TjVb/4pxo/+KcaP/inGj/4pxo//rj0f/649H/+uPR//rj0f/YuqH/2Lqh/9i6of/Y - uqH/nWg4np1oOJ6daDienWg4ngAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnWg4V51oOFed - aDhXnWg4V51oOPadaDj2nWg49p1oOPazhFj/s4RY/7OEWP+zhFj/2aR6/9mkev/ZpHr/2aR6/9idbv/Y - nW7/2J1u/9idbv/Xmmn/15pp/9eaaf/Xmmn/2JVi/9iVYv/YlWL/2JVi/9aRXP/WkVz/1pFc/9aRXP/U - jlj/1I5Y/9SOWP/Ujlj/041W/9ONVv/TjVb/041W/+KcaP/inGj/4pxo/+KcaP/649H/+uPR//rj0f/6 - 49H/2Lqh/9i6of/YuqH/2Lqh/51oOJ6daDienWg4np1oOJ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAJ1oOFedaDhXnWg4V51oOFedaDj2nWg49p1oOPadaDj2s4RY/7OEWP+zhFj/s4RY/9mkev/Z - pHr/2aR6/9mkev/YnW7/2J1u/9idbv/YnW7/15pp/9eaaf/Xmmn/15pp/9iVYv/YlWL/2JVi/9iVYv/W - kVz/1pFc/9aRXP/WkVz/1I5Y/9SOWP/Ujlj/1I5Y/9ONVv/TjVb/041W/9ONVv/inGj/4pxo/+KcaP/i - nGj/+uPR//rj0f/649H/+uPR/9i6of/YuqH/2Lqh/9i6of+daDienWg4np1oOJ6daDieAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjbjsUo247FKNuOxSjbjsUo247q6NuO6ujbjuro247q9Wti//V - rYv/1a2L/9Wti//98OX//fDl//3w5f/98OX/98eh//fHof/3x6H/98eh//fPrP/3z6z/98+s//fPrP/5 - 1bT/+dW0//nVtP/51bT/+Nq8//javP/42rz/+Nq8//jewf/43sH/+N7B//jewf/64cX/+uHF//rhxf/6 - 4cX/+uTM//rkzP/65Mz/+uTM//317P/99ez//fXs//317P/izrn/4s65/+LOuf/izrn/o247s6NuO7Oj - bjuzo247swAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo247FKNuOxSjbjsUo247FKNuO6uj - bjuro247q6NuO6vVrYv/1a2L/9Wti//VrYv//fDl//3w5f/98OX//fDl//fHof/3x6H/98eh//fHof/3 - z6z/98+s//fPrP/3z6z/+dW0//nVtP/51bT/+dW0//javP/42rz/+Nq8//javP/43sH/+N7B//jewf/4 - 3sH/+uHF//rhxf/64cX/+uHF//rkzP/65Mz/+uTM//rkzP/99ez//fXs//317P/99ez/4s65/+LOuf/i - zrn/4s65/6NuO7Ojbjuzo247s6NuO7MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKNuOxSj - bjsUo247FKNuOxSjbjuro247q6NuO6ujbjur1a2L/9Wti//VrYv/1a2L//3w5f/98OX//fDl//3w5f/3 - x6H/98eh//fHof/3x6H/98+s//fPrP/3z6z/98+s//nVtP/51bT/+dW0//nVtP/42rz/+Nq8//javP/4 - 2rz/+N7B//jewf/43sH/+N7B//rhxf/64cX/+uHF//rhxf/65Mz/+uTM//rkzP/65Mz//fXs//317P/9 - 9ez//fXs/+LOuf/izrn/4s65/+LOuf+jbjuzo247s6NuO7OjbjuzAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACjbjsUo247FKNuOxSjbjsUo247q6NuO6ujbjuro247q9Wti//VrYv/1a2L/9Wti//9 - 8OX//fDl//3w5f/98OX/98eh//fHof/3x6H/98eh//fPrP/3z6z/98+s//fPrP/51bT/+dW0//nVtP/5 - 1bT/+Nq8//javP/42rz/+Nq8//jewf/43sH/+N7B//jewf/64cX/+uHF//rhxf/64cX/+uTM//rkzP/6 - 5Mz/+uTM//317P/99ez//fXs//317P/izrn/4s65/+LOuf/izrn/o247s6NuO7Ojbjuzo247swAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKl0PyipdD8oqXQ/KKl0Pyi2 - hVX/toVV/7aFVf+2hVX//v79//7+/f/+/v3//v79//rewf/63sH/+t7B//rewf/63L7/+ty+//rcvv/6 - 3L7/+du///nbv//527//+du///nbv//527//+du///nbv//53cD/+d3A//ndwP/53cD/+tu///rbv//6 - 27//+tu///rcwv/63ML/+tzC//rcwv/9697//eve//3r3v/9697/7NzN/+zczf/s3M3/7NzN/6l0P8qp - dD/KqXQ/yql0P8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACp - dD8oqXQ/KKl0PyipdD8otoVV/7aFVf+2hVX/toVV//7+/f/+/v3//v79//7+/f/63sH/+t7B//rewf/6 - 3sH/+ty+//rcvv/63L7/+ty+//nbv//527//+du///nbv//527//+du///nbv//527//+d3A//ndwP/5 - 3cD/+d3A//rbv//627//+tu///rbv//63ML/+tzC//rcwv/63ML//eve//3r3v/9697//eve/+zczf/s - 3M3/7NzN/+zczf+pdD/KqXQ/yql0P8qpdD/KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAqXQ/KKl0PyipdD8oqXQ/KLaFVf+2hVX/toVV/7aFVf/+/v3//v79//7+/f/+ - /v3/+t7B//rewf/63sH/+t7B//rcvv/63L7/+ty+//rcvv/527//+du///nbv//527//+du///nbv//5 - 27//+du///ndwP/53cD/+d3A//ndwP/627//+tu///rbv//627//+tzC//rcwv/63ML/+tzC//3r3v/9 - 697//eve//3r3v/s3M3/7NzN/+zczf/s3M3/qXQ/yql0P8qpdD/KqXQ/ygAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKl0PyipdD8oqXQ/KKl0Pyi2hVX/toVV/7aFVf+2 - hVX//v79//7+/f/+/v3//v79//rewf/63sH/+t7B//rewf/63L7/+ty+//rcvv/63L7/+du///nbv//5 - 27//+du///nbv//527//+du///nbv//53cD/+d3A//ndwP/53cD/+tu///rbv//627//+tu///rcwv/6 - 3ML/+tzC//rcwv/9697//eve//3r3v/9697/7NzN/+zczf/s3M3/7NzN/6l0P8qpdD/KqXQ/yql0P8oA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwekIesHpCHrB6Qh6w - ekIeuIVR/7iFUf+4hVH/uIVR//78+f/+/Pn//vz5//78+f/53L7/+dy+//ncvv/53L7/+Nu+//jbvv/4 - 277/+Nu+//jcv//43L//+Ny///jcv//528H/+dvB//nbwf/528H/+dzA//ncwP/53MD/+dzA//ndwf/5 - 3cH/+d3B//ndwf/63cL/+t3C//rdwv/63cL/++fU//vn1P/759T/++fU//Xt4v/17eL/9e3i//Xt4v+w - ekLksHpC5LB6QuSwekLkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAsHpCHrB6Qh6wekIesHpCHriFUf+4hVH/uIVR/7iFUf/+/Pn//vz5//78+f/+/Pn/+dy+//ncvv/5 - 3L7/+dy+//jbvv/4277/+Nu+//jbvv/43L//+Ny///jcv//43L//+dvB//nbwf/528H/+dvB//ncwP/5 - 3MD/+dzA//ncwP/53cH/+d3B//ndwf/53cH/+t3C//rdwv/63cL/+t3C//vn1P/759T/++fU//vn1P/1 - 7eL/9e3i//Xt4v/17eL/sHpC5LB6QuSwekLksHpC5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAALB6Qh6wekIesHpCHrB6Qh64hVH/uIVR/7iFUf+4hVH//vz5//78+f/+ - /Pn//vz5//ncvv/53L7/+dy+//ncvv/4277/+Nu+//jbvv/4277/+Ny///jcv//43L//+Ny///nbwf/5 - 28H/+dvB//nbwf/53MD/+dzA//ncwP/53MD/+d3B//ndwf/53cH/+d3B//rdwv/63cL/+t3C//rdwv/7 - 59T/++fU//vn1P/759T/9e3i//Xt4v/17eL/9e3i/7B6QuSwekLksHpC5LB6QuQAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwekIesHpCHrB6Qh6wekIeuIVR/7iFUf+4 - hVH/uIVR//78+f/+/Pn//vz5//78+f/53L7/+dy+//ncvv/53L7/+Nu+//jbvv/4277/+Nu+//jcv//4 - 3L//+Ny///jcv//528H/+dvB//nbwf/528H/+dzA//ncwP/53MD/+dzA//ndwf/53cH/+d3B//ndwf/6 - 3cL/+t3C//rdwv/63cL/++fU//vn1P/759T/++fU//Xt4v/17eL/9e3i//Xt4v+wekLksHpC5LB6QuSw - ekLkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtoFGCbaBRgm2 - gUYJtoFGCbiESv+4hEr/uIRK/7iESv/++/f//vv3//779//++/f/+dzA//ncwP/53MD/+dzA//jcvv/4 - 3L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Nu///jbv//427//+Nu///ndv//53b//+d2///ndv//5 - 3b//+d2///ndv//53b//+d3C//ndwv/53cL/+d3C//viy//74sv/++LL//viy//8+fX//Pn1//z59f/8 - +fX/toFG+7aBRvu2gUb7toFG+7aBRgG2gUYBtoFGAbaBRgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAALaBRgm2gUYJtoFGCbaBRgm4hEr/uIRK/7iESv+4hEr//vv3//779//++/f//vv3//ncwP/5 - 3MD/+dzA//ncwP/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jbv//427//+Nu///jbv//5 - 3b//+d2///ndv//53b//+d2///ndv//53b//+d2///ndwv/53cL/+d3C//ndwv/74sv/++LL//viy//7 - 4sv//Pn1//z59f/8+fX//Pn1/7aBRvu2gUb7toFG+7aBRvu2gUYBtoFGAbaBRgG2gUYBAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2gUYJtoFGCbaBRgm2gUYJuIRK/7iESv+4hEr/uIRK//779//+ - +/f//vv3//779//53MD/+dzA//ncwP/53MD/+Ny+//jcvv/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/4 - 27//+Nu///jbv//427//+d2///ndv//53b//+d2///ndv//53b//+d2///ndv//53cL/+d3C//ndwv/5 - 3cL/++LL//viy//74sv/++LL//z59f/8+fX//Pn1//z59f+2gUb7toFG+7aBRvu2gUb7toFGAbaBRgG2 - gUYBtoFGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtoFGCbaBRgm2gUYJtoFGCbiESv+4 - hEr/uIRK/7iESv/++/f//vv3//779//++/f/+dzA//ncwP/53MD/+dzA//jcvv/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/43L7/+Nu///jbv//427//+Nu///ndv//53b//+d2///ndv//53b//+d2///ndv//5 - 3b//+d3C//ndwv/53cL/+d3C//viy//74sv/++LL//viy//8+fX//Pn1//z59f/8+fX/toFG+7aBRvu2 - gUb7toFG+7aBRgG2gUYBtoFGAbaBRgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAC8h0r5vIdK+byHSvm8h0r5/Pbw//z28P/89vD//Pbw//nfx//538f/+d/H//nfx//5 - 3Lz/+dy8//ncvP/53Lz/+ty+//rcvv/63L7/+ty+//rbwP/628D/+tvA//rbwP/63cL/+t3C//rdwv/6 - 3cL/+t3B//rdwf/63cH/+t3B//ndw//53cP/+d3D//ndw//74Mn/++DJ//vgyf/74Mn///z6///8+v// - /Pr///z6/8CMUv/AjFL/wIxS/8CMUv+8h0oPvIdKD7yHSg+8h0oPAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvIdK+byHSvm8h0r5vIdK+fz28P/89vD//Pbw//z28P/5 - 38f/+d/H//nfx//538f/+dy8//ncvP/53Lz/+dy8//rcvv/63L7/+ty+//rcvv/628D/+tvA//rbwP/6 - 28D/+t3C//rdwv/63cL/+t3C//rdwf/63cH/+t3B//rdwf/53cP/+d3D//ndw//53cP/++DJ//vgyf/7 - 4Mn/++DJ///8+v///Pr///z6///8+v/AjFL/wIxS/8CMUv/AjFL/vIdKD7yHSg+8h0oPvIdKDwAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyHSvm8h0r5vIdK+byHSvn8 - 9vD//Pbw//z28P/89vD/+d/H//nfx//538f/+d/H//ncvP/53Lz/+dy8//ncvP/63L7/+ty+//rcvv/6 - 3L7/+tvA//rbwP/628D/+tvA//rdwv/63cL/+t3C//rdwv/63cH/+t3B//rdwf/63cH/+d3D//ndw//5 - 3cP/+d3D//vgyf/74Mn/++DJ//vgyf///Pr///z6///8+v///Pr/wIxS/8CMUv/AjFL/wIxS/7yHSg+8 - h0oPvIdKD7yHSg8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8 - h0r5vIdK+byHSvm8h0r5/Pbw//z28P/89vD//Pbw//nfx//538f/+d/H//nfx//53Lz/+dy8//ncvP/5 - 3Lz/+ty+//rcvv/63L7/+ty+//rbwP/628D/+tvA//rbwP/63cL/+t3C//rdwv/63cL/+t3B//rdwf/6 - 3cH/+t3B//ndw//53cP/+d3D//ndw//74Mn/++DJ//vgyf/74Mn///z6///8+v///Pr///z6/8CMUv/A - jFL/wIxS/8CMUv+8h0oPvIdKD7yHSg+8h0oPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAw41N2sONTdrDjU3aw41N2vXn2P/159j/9efY//Xn2P/65dL/+uXS//rl0v/6 - 5dL/+dq7//nau//52rv/+dq7//nbu//527v/+du7//nbu//6277/+tu+//rbvv/6277/+t3A//rdwP/6 - 3cD/+t3A//rdwP/63cD/+t3A//rdwP/53cP/+d3D//ndw//53cP/++HI//vhyP/74cj/++HI///9+/// - /fv///37///9+//Ik1b/yJNW/8iTVv/Ik1b/w41NEsONTRLDjU0Sw41NEgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMONTdrDjU3aw41N2sONTdr159j/9efY//Xn2P/1 - 59j/+uXS//rl0v/65dL/+uXS//nau//52rv/+dq7//nau//527v/+du7//nbu//527v/+tu+//rbvv/6 - 277/+tu+//rdwP/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+d3D//ndw//53cP/+d3D//vhyP/7 - 4cj/++HI//vhyP///fv///37///9+////fv/yJNW/8iTVv/Ik1b/yJNW/8ONTRLDjU0Sw41NEsONTRIA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDjU3aw41N2sONTdrD - jU3a9efY//Xn2P/159j/9efY//rl0v/65dL/+uXS//rl0v/52rv/+dq7//nau//52rv/+du7//nbu//5 - 27v/+du7//rbvv/6277/+tu+//rbvv/63cD/+t3A//rdwP/63cD/+t3A//rdwP/63cD/+t3A//ndw//5 - 3cP/+d3D//ndw//74cj/++HI//vhyP/74cj///37///9+////fv///37/8iTVv/Ik1b/yJNW/8iTVv/D - jU0Sw41NEsONTRLDjU0SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAw41N2sONTdrDjU3aw41N2vXn2P/159j/9efY//Xn2P/65dL/+uXS//rl0v/65dL/+dq7//nau//5 - 2rv/+dq7//nbu//527v/+du7//nbu//6277/+tu+//rbvv/6277/+t3A//rdwP/63cD/+t3A//rdwP/6 - 3cD/+t3A//rdwP/53cP/+d3D//ndw//53cP/++HI//vhyP/74cj/++HI///9+////fv///37///9+//I - k1b/yJNW/8iTVv/Ik1b/w41NEsONTRLDjU0Sw41NEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAMqTUbvKk1G7ypNRu8qTUbvw2cD/8NnA//DZwP/w2cD/++3h//vt4f/7 - 7eH/++3h//nav//52r//+dq///nav//53MH/+dzB//ncwf/53MH/+d7E//nexP/53sT/+d7E//rgx//6 - 4Mf/+uDH//rgx//64sr/+uLK//riyv/64sr/+uLN//rizf/64s3/+uLN//rl0P/65dD/+uXQ//rl0P// - /v3///79///+/f///v3/y45Z/8uOWf/Ljln/y45Z/8qTUfHKk1HxypNR8cqTUfHKk1FFypNRRcqTUUXK - k1FFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKk1G7ypNRu8qTUbvKk1G78NnA//DZwP/w - 2cD/8NnA//vt4f/77eH/++3h//vt4f/52r//+dq///nav//52r//+dzB//ncwf/53MH/+dzB//nexP/5 - 3sT/+d7E//nexP/64Mf/+uDH//rgx//64Mf/+uLK//riyv/64sr/+uLK//rizf/64s3/+uLN//rizf/6 - 5dD/+uXQ//rl0P/65dD///79///+/f///v3///79/8uOWf/Ljln/y45Z/8uOWf/Kk1HxypNR8cqTUfHK - k1HxypNRRcqTUUXKk1FFypNRRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAypNRu8qTUbvK - k1G7ypNRu/DZwP/w2cD/8NnA//DZwP/77eH/++3h//vt4f/77eH/+dq///nav//52r//+dq///ncwf/5 - 3MH/+dzB//ncwf/53sT/+d7E//nexP/53sT/+uDH//rgx//64Mf/+uDH//riyv/64sr/+uLK//riyv/6 - 4s3/+uLN//rizf/64s3/+uXQ//rl0P/65dD/+uXQ///+/f///v3///79///+/f/Ljln/y45Z/8uOWf/L - jln/ypNR8cqTUfHKk1HxypNR8cqTUUXKk1FFypNRRcqTUUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAMqTUbvKk1G7ypNRu8qTUbvw2cD/8NnA//DZwP/w2cD/++3h//vt4f/77eH/++3h//nav//5 - 2r//+dq///nav//53MH/+dzB//ncwf/53MH/+d7E//nexP/53sT/+d7E//rgx//64Mf/+uDH//rgx//6 - 4sr/+uLK//riyv/64sr/+uLN//rizf/64s3/+uLN//rl0P/65dD/+uXQ//rl0P///v3///79///+/f// - /v3/y45Z/8uOWf/Ljln/y45Z/8qTUfHKk1HxypNR8cqTUfHKk1FFypNRRcqTUUXKk1FFAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQmVSk0JlUpNCZVKTQmVSk7dCx/+3Qsf/t0LH/7dCx///28P// - 9vD///bw///28P/64cr/+uHK//rhyv/64cr/++PM//vjzP/748z/++PM//vj0P/749D/++PQ//vj0P/7 - 5tP/++bT//vm0//75tP/++nV//vp1f/76dX/++nV//zp2P/86dj//OnY//zp2P/86tv//Orb//zq2//8 - 6tv////9/////f////3////9/9KccP/SnHD/0pxw/9KccP/u2cD/7tnA/+7ZwP/u2cD/0JlU5dCZVOXQ - mVTl0JlU5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0JlUpNCZVKTQmVSk0JlUpO3Qsf/t - 0LH/7dCx/+3Qsf//9vD///bw///28P//9vD/+uHK//rhyv/64cr/+uHK//vjzP/748z/++PM//vjzP/7 - 49D/++PQ//vj0P/749D/++bT//vm0//75tP/++bT//vp1f/76dX/++nV//vp1f/86dj//OnY//zp2P/8 - 6dj//Orb//zq2//86tv//Orb/////f////3////9/////f/SnHD/0pxw/9KccP/SnHD/7tnA/+7ZwP/u - 2cD/7tnA/9CZVOXQmVTl0JlU5dCZVOUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCZVKTQ - mVSk0JlUpNCZVKTt0LH/7dCx/+3Qsf/t0LH///bw///28P//9vD///bw//rhyv/64cr/+uHK//rhyv/7 - 48z/++PM//vjzP/748z/++PQ//vj0P/749D/++PQ//vm0//75tP/++bT//vm0//76dX/++nV//vp1f/7 - 6dX//OnY//zp2P/86dj//OnY//zq2//86tv//Orb//zq2/////3////9/////f////3/0pxw/9KccP/S - nHD/0pxw/+7ZwP/u2cD/7tnA/+7ZwP/QmVTl0JlU5dCZVOXQmVTlAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADQmVSk0JlUpNCZVKTQmVSk7dCx/+3Qsf/t0LH/7dCx///28P//9vD///bw///28P/6 - 4cr/+uHK//rhyv/64cr/++PM//vjzP/748z/++PM//vj0P/749D/++PQ//vj0P/75tP/++bT//vm0//7 - 5tP/++nV//vp1f/76dX/++nV//zp2P/86dj//OnY//zp2P/86tv//Orb//zq2//86tv////9/////f// - //3////9/9KccP/SnHD/0pxw/9KccP/u2cD/7tnA/+7ZwP/u2cD/0JlU5dCZVOXQmVTl0JlU5QAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1Z5XktWeV5LVnleS1Z5XkuvKpP/ryqT/68qk/+vKpP// - /fv///37///9+////fv//enV//3p1f/96dX//enV//3r2P/969j//evY//3r2P/96tv//erb//3q2//9 - 6tv//e3f//3t3//97d///e3f//3w4v/98OL//fDi//3w4v/98eT//fHk//3x5P/98eT//PDk//zw5P/8 - 8OT//PDk///////////////////////gn2//4J9v/+Cfb//gn2////v5///7+f//+/n///v5/9+3hv/f - t4b/37eG/9+3hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANWeV5LVnleS1Z5XktWeV5Lr - yqT/68qk/+vKpP/ryqT///37///9+////fv///37//3p1f/96dX//enV//3p1f/969j//evY//3r2P/9 - 69j//erb//3q2//96tv//erb//3t3//97d///e3f//3t3//98OL//fDi//3w4v/98OL//fHk//3x5P/9 - 8eT//fHk//zw5P/88OT//PDk//zw5P//////////////////////4J9v/+Cfb//gn2//4J9v///7+f// - +/n///v5///7+f/ft4b/37eG/9+3hv/ft4b/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV - nleS1Z5XktWeV5LVnleS68qk/+vKpP/ryqT/68qk///9+////fv///37///9+//96dX//enV//3p1f/9 - 6dX//evY//3r2P/969j//evY//3q2//96tv//erb//3q2//97d///e3f//3t3//97d///fDi//3w4v/9 - 8OL//fDi//3x5P/98eT//fHk//3x5P/88OT//PDk//zw5P/88OT//////////////////////+Cfb//g - n2//4J9v/+Cfb///+/n///v5///7+f//+/n/37eG/9+3hv/ft4b/37eG/wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA1Z5XktWeV5LVnleS1Z5XkuvKpP/ryqT/68qk/+vKpP///fv///37///9+/// - /fv//enV//3p1f/96dX//enV//3r2P/969j//evY//3r2P/96tv//erb//3q2//96tv//e3f//3t3//9 - 7d///e3f//3w4v/98OL//fDi//3w4v/98eT//fHk//3x5P/98eT//PDk//zw5P/88OT//PDk//////// - ///////////////gn2//4J9v/+Cfb//gn2////v5///7+f//+/n///v5/9+3hv/ft4b/37eG/9+3hv8A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqjWoTao1qE2qNahNqjWoTrxZn/68WZ/+vFmf/r - xZn///////////////////////zv4v/87+L//O/i//zv4v/98Of//fDn//3w5//98Of//fHr//3x6//9 - 8ev//fHr//317v/99e7//fXu//317v/9+PH//fjx//348f/9+PH//fr3//369//9+vf//fr3///8+v// - /Pr///z6///8+v///////////////////////vv3//779//++/f//vv3//Tav//02r//9Nq///Tav//a - o1rq2qNa6tqjWurao1rqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADao1qE2qNahNqjWoTa - o1qE68WZ/+vFmf/rxZn/68WZ///////////////////////87+L//O/i//zv4v/87+L//fDn//3w5//9 - 8Of//fDn//3x6//98ev//fHr//3x6//99e7//fXu//317v/99e7//fjx//348f/9+PH//fjx//369//9 - +vf//fr3//369////Pr///z6///8+v///Pr///////////////////////779//++/f//vv3//779//0 - 2r//9Nq///Tav//02r//2qNa6tqjWurao1rq2qNa6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAA2qNahNqjWoTao1qE2qNahOvFmf/rxZn/68WZ/+vFmf///////////////////////O/i//zv4v/8 - 7+L//O/i//3w5//98Of//fDn//3w5//98ev//fHr//3x6//98ev//fXu//317v/99e7//fXu//348f/9 - +PH//fjx//348f/9+vf//fr3//369//9+vf///z6///8+v///Pr///z6///////////////////////+ - +/f//vv3//779//++/f/9Nq///Tav//02r//9Nq//9qjWurao1rq2qNa6tqjWuoAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAANqjWoTao1qE2qNahNqjWoTrxZn/68WZ/+vFmf/rxZn///////////// - //////////zv4v/87+L//O/i//zv4v/98Of//fDn//3w5//98Of//fHr//3x6//98ev//fHr//317v/9 - 9e7//fXu//317v/9+PH//fjx//348f/9+PH//fr3//369//9+vf//fr3///8+v///Pr///z6///8+v// - /////////////////////vv3//779//++/f//vv3//Tav//02r//9Nq///Tav//ao1rq2qNa6tqjWura - o1rqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADep1xt3qdcbd6nXG3ep1xt6r+L/+q/i//q - v4v/6r+L//////////////////////////////////////////////////////////////////////// - ///////////////9+fT//fn0//359P/9+fT/+/Pq//vz6v/78+r/+/Pq//jr2f/469n/+OvZ//jr2f/4 - 5tP/+ObT//jm0//45tP/9d/F//Xfxf/138X/9d/F/+nLpf/py6X/6cul/+nLpf/ep1zt3qdc7d6nXO3e - p1zt3qdcXd6nXF3ep1xd3qdcXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3qdcbd6nXG3e - p1xt3qdcbeq/i//qv4v/6r+L/+q/i/////////////////////////////////////////////////// - /////////////////////////////////////fn0//359P/9+fT//fn0//vz6v/78+r/+/Pq//vz6v/4 - 69n/+OvZ//jr2f/469n/+ObT//jm0//45tP/+ObT//Xfxf/138X/9d/F//Xfxf/py6X/6cul/+nLpf/p - y6X/3qdc7d6nXO3ep1zt3qdc7d6nXF3ep1xd3qdcXd6nXF0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAN6nXG3ep1xt3qdcbd6nXG3qv4v/6r+L/+q/i//qv4v///////////////////////////// - //////////////////////////////////////////////////////////359P/9+fT//fn0//359P/7 - 8+r/+/Pq//vz6v/78+r/+OvZ//jr2f/469n/+OvZ//jm0//45tP/+ObT//jm0//138X/9d/F//Xfxf/1 - 38X/6cul/+nLpf/py6X/6cul/96nXO3ep1zt3qdc7d6nXO3ep1xd3qdcXd6nXF3ep1xdAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADep1xt3qdcbd6nXG3ep1xt6r+L/+q/i//qv4v/6r+L//////// - ///////////////////////////////////////////////////////////////////////////////9 - +fT//fn0//359P/9+fT/+/Pq//vz6v/78+r/+/Pq//jr2f/469n/+OvZ//jr2f/45tP/+ObT//jm0//4 - 5tP/9d/F//Xfxf/138X/9d/F/+nLpf/py6X/6cul/+nLpf/ep1zt3qdc7d6nXO3ep1zt3qdcXd6nXF3e - p1xd3qdcXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4qteNuKrXjbiq1424qteNuKrXsbi - q17G4qtexuKrXsbqu4D/6ruA/+q7gP/qu4D/6LZ2/+i2dv/otnb/6LZ2/+axbP/msWz/5rFs/+axbP/k - r2f/5K9n/+SvZ//kr2f/4qte8OKrXvDiq17w4qte8OKrXuPiq17j4qte4+KrXuPiq17P4qtez+KrXs/i - q17P4qtezOKrXsziq17M4qtezOKrXrviq1674qteu+KrXrviq16o4qteqOKrXqjiq16o4qteS+KrXkvi - q15L4qteS+KrXgXiq14F4qteBeKrXgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOKrXjbi - q1424qteNuKrXjbiq17G4qtexuKrXsbiq17G6ruA/+q7gP/qu4D/6ruA/+i2dv/otnb/6LZ2/+i2dv/m - sWz/5rFs/+axbP/msWz/5K9n/+SvZ//kr2f/5K9n/+KrXvDiq17w4qte8OKrXvDiq17j4qte4+KrXuPi - q17j4qtez+KrXs/iq17P4qtez+KrXsziq17M4qtezOKrXsziq1674qteu+KrXrviq1674qteqOKrXqji - q16o4qteqOKrXkviq15L4qteS+KrXkviq14F4qteBeKrXgXiq14FAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADiq1424qteNuKrXjbiq1424qtexuKrXsbiq17G4qtexuq7gP/qu4D/6ruA/+q7gP/o - tnb/6LZ2/+i2dv/otnb/5rFs/+axbP/msWz/5rFs/+SvZ//kr2f/5K9n/+SvZ//iq17w4qte8OKrXvDi - q17w4qte4+KrXuPiq17j4qte4+KrXs/iq17P4qtez+KrXs/iq17M4qtezOKrXsziq17M4qteu+KrXrvi - q1674qteu+KrXqjiq16o4qteqOKrXqjiq15L4qteS+KrXkviq15L4qteBeKrXgXiq14F4qteBQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4qteNuKrXjbiq1424qteNuKrXsbiq17G4qtexuKrXsbq - u4D/6ruA/+q7gP/qu4D/6LZ2/+i2dv/otnb/6LZ2/+axbP/msWz/5rFs/+axbP/kr2f/5K9n/+SvZ//k - r2f/4qte8OKrXvDiq17w4qte8OKrXuPiq17j4qte4+KrXuPiq17P4qtez+KrXs/iq17P4qtezOKrXszi - q17M4qtezOKrXrviq1674qteu+KrXrviq16o4qteqOKrXqjiq16o4qteS+KrXkviq15L4qteS+KrXgXi - q14F4qteBeKrXgUAAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8A - AAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAA - AAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAAP/w - AAAAAAAA//AAAAAAAAD/8AAAAAAAAP/wAAAAAAAA//AAAAAAAAD/8AAAAAAAAP/wAAAAAAAA//AAAAAA - AAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP/wAAAAAAAA//AAAAAAAAD/8AAAAAAAAP/wAAAAAAAA// - AAAAAAAAD/8AAAAAAAAP/wAAAAAAAA//AAAAAAAAD/8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAA - AAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/ - AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAA - AAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAACgAAAAwAAAAYAAAAAEAIAAA - AAAAACQAAMMOAADDDgAAAAAAAAAAAACPWjAUj1owFI9aMBSPWjCEj1owhI9aMISPWjCjj1owo49aMKOP - WjC2j1owto9aMLaPWjDJj1owyY9aMMmPWjDaj1ow2o9aMNqPWjDrj1ow649aMOuPWjD6j1ow+o9aMPqU - YDj/lGA4/5RgOP+ZaED/mWhA/5loQP+ic07/onNO/6JzTv+sgV7/rIFe/6yBXv+PWjDZj1ow2Y9aMNmP - WjA0j1owNI9aMDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPWjAUj1owFI9aMBSPWjCEj1owhI9aMISP - WjCjj1owo49aMKOPWjC2j1owto9aMLaPWjDJj1owyY9aMMmPWjDaj1ow2o9aMNqPWjDrj1ow649aMOuP - WjD6j1ow+o9aMPqUYDj/lGA4/5RgOP+ZaED/mWhA/5loQP+ic07/onNO/6JzTv+sgV7/rIFe/6yBXv+P - WjDZj1ow2Y9aMNmPWjA0j1owNI9aMDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPWjAUj1owFI9aMBSP - WjCEj1owhI9aMISPWjCjj1owo49aMKOPWjC2j1owto9aMLaPWjDJj1owyY9aMMmPWjDaj1ow2o9aMNqP - WjDrj1ow649aMOuPWjD6j1ow+o9aMPqUYDj/lGA4/5RgOP+ZaED/mWhA/5loQP+ic07/onNO/6JzTv+s - gV7/rIFe/6yBXv+PWjDZj1ow2Y9aMNmPWjA0j1owNI9aMDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACT - XjJok14yaJNeMmi3j2z/t49s/7ePbP/WuaL/1rmi/9a5ov/fxbL/38Wy/9/Fsv/n1ML/59TC/+fUwv/u - 39P/7t/T/+7f0//16uL/9eri//Xq4v/79O//+/Tv//v07//9+vb//fr2//369v///v3///79///+/f/7 - 69//++vf//vr3//77+b/++/m//vv5v/AnH//wJx//8Ccf/+TXjJvk14yb5NeMm8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACTXjJok14yaJNeMmi3j2z/t49s/7ePbP/WuaL/1rmi/9a5ov/fxbL/38Wy/9/Fsv/n - 1ML/59TC/+fUwv/u39P/7t/T/+7f0//16uL/9eri//Xq4v/79O//+/Tv//v07//9+vb//fr2//369v// - /v3///79///+/f/769//++vf//vr3//77+b/++/m//vv5v/AnH//wJx//8Ccf/+TXjJvk14yb5NeMm8A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTXjJok14yaJNeMmi3j2z/t49s/7ePbP/WuaL/1rmi/9a5ov/f - xbL/38Wy/9/Fsv/n1ML/59TC/+fUwv/u39P/7t/T/+7f0//16uL/9eri//Xq4v/79O//+/Tv//v07//9 - +vb//fr2//369v///v3///79///+/f/769//++vf//vr3//77+b/++/m//vv5v/AnH//wJx//8Ccf/+T - XjJvk14yb5NeMm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYYzWJmGM1iZhjNYnHo4T/x6OE/8ejhP// - /////////////////////////////////////////////////////////////////vz///78///+/P/+ - +/f//vv3//779//+9/H//vfx//738f/+9vH//vbx//728f/krYX/5K2F/+Sthf/66Nv/+ujb//ro2//O - rpT/zq6U/86ulP+YYzWLmGM1i5hjNYsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYYzWJmGM1iZhjNYnH - o4T/x6OE/8ejhP////////////////////////////////////////////////////////////////// - /vz///78///+/P/++/f//vv3//779//+9/H//vfx//738f/+9vH//vbx//728f/krYX/5K2F/+Sthf/6 - 6Nv/+ujb//ro2//OrpT/zq6U/86ulP+YYzWLmGM1i5hjNYsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACY - YzWJmGM1iZhjNYnHo4T/x6OE/8ejhP////////////////////////////////////////////////// - /////////////////vz///78///+/P/++/f//vv3//779//+9/H//vfx//738f/+9vH//vbx//728f/k - rYX/5K2F/+Sthf/66Nv/+ujb//ro2//OrpT/zq6U/86ulP+YYzWLmGM1i5hjNYsAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACdaDhXnWg4V51oOFedaDj2nWg49p1oOPazhFj/s4RY/7OEWP/ZpHr/2aR6/9mkev/Y - nW7/2J1u/9idbv/Xmmn/15pp/9eaaf/YlWL/2JVi/9iVYv/WkVz/1pFc/9aRXP/Ujlj/1I5Y/9SOWP/T - jVb/041W/9ONVv/inGj/4pxo/+KcaP/649H/+uPR//rj0f/YuqH/2Lqh/9i6of+daDienWg4np1oOJ4A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdaDhXnWg4V51oOFedaDj2nWg49p1oOPazhFj/s4RY/7OEWP/Z - pHr/2aR6/9mkev/YnW7/2J1u/9idbv/Xmmn/15pp/9eaaf/YlWL/2JVi/9iVYv/WkVz/1pFc/9aRXP/U - jlj/1I5Y/9SOWP/TjVb/041W/9ONVv/inGj/4pxo/+KcaP/649H/+uPR//rj0f/YuqH/2Lqh/9i6of+d - aDienWg4np1oOJ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdaDhXnWg4V51oOFedaDj2nWg49p1oOPaz - hFj/s4RY/7OEWP/ZpHr/2aR6/9mkev/YnW7/2J1u/9idbv/Xmmn/15pp/9eaaf/YlWL/2JVi/9iVYv/W - kVz/1pFc/9aRXP/Ujlj/1I5Y/9SOWP/TjVb/041W/9ONVv/inGj/4pxo/+KcaP/649H/+uPR//rj0f/Y - uqH/2Lqh/9i6of+daDienWg4np1oOJ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjbjsUo247FKNuOxSj - bjuro247q6NuO6vVrYv/1a2L/9Wti//98OX//fDl//3w5f/3x6H/98eh//fHof/3z6z/98+s//fPrP/5 - 1bT/+dW0//nVtP/42rz/+Nq8//javP/43sH/+N7B//jewf/64cX/+uHF//rhxf/65Mz/+uTM//rkzP/9 - 9ez//fXs//317P/izrn/4s65/+LOuf+jbjuzo247s6NuO7MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj - bjsUo247FKNuOxSjbjuro247q6NuO6vVrYv/1a2L/9Wti//98OX//fDl//3w5f/3x6H/98eh//fHof/3 - z6z/98+s//fPrP/51bT/+dW0//nVtP/42rz/+Nq8//javP/43sH/+N7B//jewf/64cX/+uHF//rhxf/6 - 5Mz/+uTM//rkzP/99ez//fXs//317P/izrn/4s65/+LOuf+jbjuzo247s6NuO7MAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACjbjsUo247FKNuOxSjbjuro247q6NuO6vVrYv/1a2L/9Wti//98OX//fDl//3w5f/3 - x6H/98eh//fHof/3z6z/98+s//fPrP/51bT/+dW0//nVtP/42rz/+Nq8//javP/43sH/+N7B//jewf/6 - 4cX/+uHF//rhxf/65Mz/+uTM//rkzP/99ez//fXs//317P/izrn/4s65/+LOuf+jbjuzo247s6NuO7MA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpdD8oqXQ/KKl0Pyi2hVX/toVV/7aFVf/+ - /v3//v79//7+/f/63sH/+t7B//rewf/63L7/+ty+//rcvv/527//+du///nbv//527//+du///nbv//5 - 3cD/+d3A//ndwP/627//+tu///rbv//63ML/+tzC//rcwv/9697//eve//3r3v/s3M3/7NzN/+zczf+p - dD/KqXQ/yql0P8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpdD8oqXQ/KKl0Pyi2 - hVX/toVV/7aFVf/+/v3//v79//7+/f/63sH/+t7B//rewf/63L7/+ty+//rcvv/527//+du///nbv//5 - 27//+du///nbv//53cD/+d3A//ndwP/627//+tu///rbv//63ML/+tzC//rcwv/9697//eve//3r3v/s - 3M3/7NzN/+zczf+pdD/KqXQ/yql0P8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACp - dD8oqXQ/KKl0Pyi2hVX/toVV/7aFVf/+/v3//v79//7+/f/63sH/+t7B//rewf/63L7/+ty+//rcvv/5 - 27//+du///nbv//527//+du///nbv//53cD/+d3A//ndwP/627//+tu///rbv//63ML/+tzC//rcwv/9 - 697//eve//3r3v/s3M3/7NzN/+zczf+pdD/KqXQ/yql0P8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACwekIesHpCHrB6Qh64hVH/uIVR/7iFUf/+/Pn//vz5//78+f/53L7/+dy+//ncvv/4 - 277/+Nu+//jbvv/43L//+Ny///jcv//528H/+dvB//nbwf/53MD/+dzA//ncwP/53cH/+d3B//ndwf/6 - 3cL/+t3C//rdwv/759T/++fU//vn1P/17eL/9e3i//Xt4v+wekLksHpC5LB6QuQAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwekIesHpCHrB6Qh64hVH/uIVR/7iFUf/+/Pn//vz5//78+f/5 - 3L7/+dy+//ncvv/4277/+Nu+//jbvv/43L//+Ny///jcv//528H/+dvB//nbwf/53MD/+dzA//ncwP/5 - 3cH/+d3B//ndwf/63cL/+t3C//rdwv/759T/++fU//vn1P/17eL/9e3i//Xt4v+wekLksHpC5LB6QuQA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwekIesHpCHrB6Qh64hVH/uIVR/7iFUf/+ - /Pn//vz5//78+f/53L7/+dy+//ncvv/4277/+Nu+//jbvv/43L//+Ny///jcv//528H/+dvB//nbwf/5 - 3MD/+dzA//ncwP/53cH/+d3B//ndwf/63cL/+t3C//rdwv/759T/++fU//vn1P/17eL/9e3i//Xt4v+w - ekLksHpC5LB6QuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2gUYJtoFGCbaBRgm4 - hEr/uIRK/7iESv/++/f//vv3//779//53MD/+dzA//ncwP/43L7/+Ny+//jcvv/43L7/+Ny+//jcvv/4 - 27//+Nu///jbv//53b//+d2///ndv//53b//+d2///ndv//53cL/+d3C//ndwv/74sv/++LL//viy//8 - +fX//Pn1//z59f+2gUb7toFG+7aBRvu2gUYBtoFGAbaBRgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2 - gUYJtoFGCbaBRgm4hEr/uIRK/7iESv/++/f//vv3//779//53MD/+dzA//ncwP/43L7/+Ny+//jcvv/4 - 3L7/+Ny+//jcvv/427//+Nu///jbv//53b//+d2///ndv//53b//+d2///ndv//53cL/+d3C//ndwv/7 - 4sv/++LL//viy//8+fX//Pn1//z59f+2gUb7toFG+7aBRvu2gUYBtoFGAbaBRgEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAC2gUYJtoFGCbaBRgm4hEr/uIRK/7iESv/++/f//vv3//779//53MD/+dzA//ncwP/4 - 3L7/+Ny+//jcvv/43L7/+Ny+//jcvv/427//+Nu///jbv//53b//+d2///ndv//53b//+d2///ndv//5 - 3cL/+d3C//ndwv/74sv/++LL//viy//8+fX//Pn1//z59f+2gUb7toFG+7aBRvu2gUYBtoFGAbaBRgEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8h0r5vIdK+byHSvn89vD//Pbw//z28P/5 - 38f/+d/H//nfx//53Lz/+dy8//ncvP/63L7/+ty+//rcvv/628D/+tvA//rbwP/63cL/+t3C//rdwv/6 - 3cH/+t3B//rdwf/53cP/+d3D//ndw//74Mn/++DJ//vgyf///Pr///z6///8+v/AjFL/wIxS/8CMUv+8 - h0oPvIdKD7yHSg8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8h0r5vIdK+byHSvn8 - 9vD//Pbw//z28P/538f/+d/H//nfx//53Lz/+dy8//ncvP/63L7/+ty+//rcvv/628D/+tvA//rbwP/6 - 3cL/+t3C//rdwv/63cH/+t3B//rdwf/53cP/+d3D//ndw//74Mn/++DJ//vgyf///Pr///z6///8+v/A - jFL/wIxS/8CMUv+8h0oPvIdKD7yHSg8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8 - h0r5vIdK+byHSvn89vD//Pbw//z28P/538f/+d/H//nfx//53Lz/+dy8//ncvP/63L7/+ty+//rcvv/6 - 28D/+tvA//rbwP/63cL/+t3C//rdwv/63cH/+t3B//rdwf/53cP/+d3D//ndw//74Mn/++DJ//vgyf// - /Pr///z6///8+v/AjFL/wIxS/8CMUv+8h0oPvIdKD7yHSg8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADDjU3aw41N2sONTdr159j/9efY//Xn2P/65dL/+uXS//rl0v/52rv/+dq7//nau//5 - 27v/+du7//nbu//6277/+tu+//rbvv/63cD/+t3A//rdwP/63cD/+t3A//rdwP/53cP/+d3D//ndw//7 - 4cj/++HI//vhyP///fv///37///9+//Ik1b/yJNW/8iTVv/DjU0Sw41NEsONTRIAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDjU3aw41N2sONTdr159j/9efY//Xn2P/65dL/+uXS//rl0v/5 - 2rv/+dq7//nau//527v/+du7//nbu//6277/+tu+//rbvv/63cD/+t3A//rdwP/63cD/+t3A//rdwP/5 - 3cP/+d3D//ndw//74cj/++HI//vhyP///fv///37///9+//Ik1b/yJNW/8iTVv/DjU0Sw41NEsONTRIA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDjU3aw41N2sONTdr159j/9efY//Xn2P/6 - 5dL/+uXS//rl0v/52rv/+dq7//nau//527v/+du7//nbu//6277/+tu+//rbvv/63cD/+t3A//rdwP/6 - 3cD/+t3A//rdwP/53cP/+d3D//ndw//74cj/++HI//vhyP///fv///37///9+//Ik1b/yJNW/8iTVv/D - jU0Sw41NEsONTRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKk1G7ypNRu8qTUbvw - 2cD/8NnA//DZwP/77eH/++3h//vt4f/52r//+dq///nav//53MH/+dzB//ncwf/53sT/+d7E//nexP/6 - 4Mf/+uDH//rgx//64sr/+uLK//riyv/64s3/+uLN//rizf/65dD/+uXQ//rl0P///v3///79///+/f/L - jln/y45Z/8uOWf/Kk1HxypNR8cqTUfHKk1FFypNRRcqTUUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADK - k1G7ypNRu8qTUbvw2cD/8NnA//DZwP/77eH/++3h//vt4f/52r//+dq///nav//53MH/+dzB//ncwf/5 - 3sT/+d7E//nexP/64Mf/+uDH//rgx//64sr/+uLK//riyv/64s3/+uLN//rizf/65dD/+uXQ//rl0P// - /v3///79///+/f/Ljln/y45Z/8uOWf/Kk1HxypNR8cqTUfHKk1FFypNRRcqTUUUAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADKk1G7ypNRu8qTUbvw2cD/8NnA//DZwP/77eH/++3h//vt4f/52r//+dq///nav//5 - 3MH/+dzB//ncwf/53sT/+d7E//nexP/64Mf/+uDH//rgx//64sr/+uLK//riyv/64s3/+uLN//rizf/6 - 5dD/+uXQ//rl0P///v3///79///+/f/Ljln/y45Z/8uOWf/Kk1HxypNR8cqTUfHKk1FFypNRRcqTUUUA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQmVSk0JlUpNCZVKTt0LH/7dCx/+3Qsf//9vD///bw///28P/6 - 4cr/+uHK//rhyv/748z/++PM//vjzP/749D/++PQ//vj0P/75tP/++bT//vm0//76dX/++nV//vp1f/8 - 6dj//OnY//zp2P/86tv//Orb//zq2/////3////9/////f/SnHD/0pxw/9KccP/u2cD/7tnA/+7ZwP/Q - mVTl0JlU5dCZVOUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQmVSk0JlUpNCZVKTt0LH/7dCx/+3Qsf// - 9vD///bw///28P/64cr/+uHK//rhyv/748z/++PM//vjzP/749D/++PQ//vj0P/75tP/++bT//vm0//7 - 6dX/++nV//vp1f/86dj//OnY//zp2P/86tv//Orb//zq2/////3////9/////f/SnHD/0pxw/9KccP/u - 2cD/7tnA/+7ZwP/QmVTl0JlU5dCZVOUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQmVSk0JlUpNCZVKTt - 0LH/7dCx/+3Qsf//9vD///bw///28P/64cr/+uHK//rhyv/748z/++PM//vjzP/749D/++PQ//vj0P/7 - 5tP/++bT//vm0//76dX/++nV//vp1f/86dj//OnY//zp2P/86tv//Orb//zq2/////3////9/////f/S - nHD/0pxw/9KccP/u2cD/7tnA/+7ZwP/QmVTl0JlU5dCZVOUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV - nleS1Z5XktWeV5LryqT/68qk/+vKpP///fv///37///9+//96dX//enV//3p1f/969j//evY//3r2P/9 - 6tv//erb//3q2//97d///e3f//3t3//98OL//fDi//3w4v/98eT//fHk//3x5P/88OT//PDk//zw5P// - ///////////////gn2//4J9v/+Cfb///+/n///v5///7+f/ft4b/37eG/9+3hv8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADVnleS1Z5XktWeV5LryqT/68qk/+vKpP///fv///37///9+//96dX//enV//3p1f/9 - 69j//evY//3r2P/96tv//erb//3q2//97d///e3f//3t3//98OL//fDi//3w4v/98eT//fHk//3x5P/8 - 8OT//PDk//zw5P/////////////////gn2//4J9v/+Cfb///+/n///v5///7+f/ft4b/37eG/9+3hv8A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVnleS1Z5XktWeV5LryqT/68qk/+vKpP///fv///37///9+//9 - 6dX//enV//3p1f/969j//evY//3r2P/96tv//erb//3q2//97d///e3f//3t3//98OL//fDi//3w4v/9 - 8eT//fHk//3x5P/88OT//PDk//zw5P/////////////////gn2//4J9v/+Cfb///+/n///v5///7+f/f - t4b/37eG/9+3hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADao1qE2qNahNqjWoTrxZn/68WZ/+vFmf// - ///////////////87+L//O/i//zv4v/98Of//fDn//3w5//98ev//fHr//3x6//99e7//fXu//317v/9 - +PH//fjx//348f/9+vf//fr3//369////Pr///z6///8+v/////////////////++/f//vv3//779//0 - 2r//9Nq///Tav//ao1rq2qNa6tqjWuoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADao1qE2qNahNqjWoTr - xZn/68WZ/+vFmf/////////////////87+L//O/i//zv4v/98Of//fDn//3w5//98ev//fHr//3x6//9 - 9e7//fXu//317v/9+PH//fjx//348f/9+vf//fr3//369////Pr///z6///8+v/////////////////+ - +/f//vv3//779//02r//9Nq///Tav//ao1rq2qNa6tqjWuoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADa - o1qE2qNahNqjWoTrxZn/68WZ/+vFmf/////////////////87+L//O/i//zv4v/98Of//fDn//3w5//9 - 8ev//fHr//3x6//99e7//fXu//317v/9+PH//fjx//348f/9+vf//fr3//369////Pr///z6///8+v// - ///////////////++/f//vv3//779//02r//9Nq///Tav//ao1rq2qNa6tqjWuoAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADep1xt3qdcbd6nXG3qv4v/6r+L/+q/i/////////////////////////////////// - ///////////////////////////////9+fT//fn0//359P/78+r/+/Pq//vz6v/469n/+OvZ//jr2f/4 - 5tP/+ObT//jm0//138X/9d/F//Xfxf/py6X/6cul/+nLpf/ep1zt3qdc7d6nXO3ep1xd3qdcXd6nXF0A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADep1xt3qdcbd6nXG3qv4v/6r+L/+q/i/////////////////// - ///////////////////////////////////////////////9+fT//fn0//359P/78+r/+/Pq//vz6v/4 - 69n/+OvZ//jr2f/45tP/+ObT//jm0//138X/9d/F//Xfxf/py6X/6cul/+nLpf/ep1zt3qdc7d6nXO3e - p1xd3qdcXd6nXF0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADep1xt3qdcbd6nXG3qv4v/6r+L/+q/i/// - ///////////////////////////////////////////////////////////////9+fT//fn0//359P/7 - 8+r/+/Pq//vz6v/469n/+OvZ//jr2f/45tP/+ObT//jm0//138X/9d/F//Xfxf/py6X/6cul/+nLpf/e - p1zt3qdc7d6nXO3ep1xd3qdcXd6nXF0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADiq1424qteNuKrXjbi - q17G4qtexuKrXsbqu4D/6ruA/+q7gP/otnb/6LZ2/+i2dv/msWz/5rFs/+axbP/kr2f/5K9n/+SvZ//i - q17w4qte8OKrXvDiq17j4qte4+KrXuPiq17P4qtez+KrXs/iq17M4qtezOKrXsziq1674qteu+KrXrvi - q16o4qteqOKrXqjiq15L4qteS+KrXkviq14F4qteBeKrXgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADi - q1424qteNuKrXjbiq17G4qtexuKrXsbqu4D/6ruA/+q7gP/otnb/6LZ2/+i2dv/msWz/5rFs/+axbP/k - r2f/5K9n/+SvZ//iq17w4qte8OKrXvDiq17j4qte4+KrXuPiq17P4qtez+KrXs/iq17M4qtezOKrXszi - q1674qteu+KrXrviq16o4qteqOKrXqjiq15L4qteS+KrXkviq14F4qteBeKrXgUAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAADiq1424qteNuKrXjbiq17G4qtexuKrXsbqu4D/6ruA/+q7gP/otnb/6LZ2/+i2dv/m - sWz/5rFs/+axbP/kr2f/5K9n/+SvZ//iq17w4qte8OKrXvDiq17j4qte4+KrXuPiq17P4qtez+KrXs/i - q17M4qtezOKrXsziq1674qteu+KrXrviq16o4qteqOKrXqjiq15L4qteS+KrXkviq14F4qteBeKrXgUA - AAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAA - PwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AADg - AAAAAD8AAOAAAAAAPwAA4AAAAAA/AADgAAAAAD8AAOAAAAAAPwAA4AAAAAA/AADgAAAAAAcAAOAAAAAA - BwAA4AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8 - AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAA - AAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8 - AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAADDDgAAww4AAAAAAAAA - AAAAj1owFI9aMBSPWjCEj1owhI9aMKOPWjCjj1owto9aMLaPWjDJj1owyY9aMNqPWjDaj1ow649aMOuP - WjD6j1ow+pRgOP+UYDj/mWhA/5loQP+ic07/onNO/6yBXv+sgV7/j1ow2Y9aMNmPWjA0j1owNAAAAAAA - AAAAAAAAAAAAAACPWjAUj1owFI9aMISPWjCEj1owo49aMKOPWjC2j1owto9aMMmPWjDJj1ow2o9aMNqP - WjDrj1ow649aMPqPWjD6lGA4/5RgOP+ZaED/mWhA/6JzTv+ic07/rIFe/6yBXv+PWjDZj1ow2Y9aMDSP - WjA0AAAAAAAAAAAAAAAAAAAAAJNeMmiTXjJot49s/7ePbP/WuaL/1rmi/9/Fsv/fxbL/59TC/+fUwv/u - 39P/7t/T//Xq4v/16uL/+/Tv//v07//9+vb//fr2///+/f///v3/++vf//vr3//77+b/++/m/8Ccf//A - nH//k14yb5NeMm8AAAAAAAAAAAAAAAAAAAAAk14yaJNeMmi3j2z/t49s/9a5ov/WuaL/38Wy/9/Fsv/n - 1ML/59TC/+7f0//u39P/9eri//Xq4v/79O//+/Tv//369v/9+vb///79///+/f/769//++vf//vv5v/7 - 7+b/wJx//8Ccf/+TXjJvk14ybwAAAAAAAAAAAAAAAAAAAACYYzWJmGM1icejhP/Ho4T///////////// - /////////////////////////////////vz///78//779//++/f//vfx//738f/+9vH//vbx/+Sthf/k - rYX/+ujb//ro2//OrpT/zq6U/5hjNYuYYzWLAAAAAAAAAAAAAAAAAAAAAJhjNYmYYzWJx6OE/8ejhP// - ///////////////////////////////////////////+/P///vz//vv3//779//+9/H//vfx//728f/+ - 9vH/5K2F/+Sthf/66Nv/+ujb/86ulP/OrpT/mGM1i5hjNYsAAAAAAAAAAAAAAAAAAAAAnWg4V51oOFed - aDj2nWg49rOEWP+zhFj/2aR6/9mkev/YnW7/2J1u/9eaaf/Xmmn/2JVi/9iVYv/WkVz/1pFc/9SOWP/U - jlj/041W/9ONVv/inGj/4pxo//rj0f/649H/2Lqh/9i6of+daDienWg4ngAAAAAAAAAAAAAAAAAAAACd - aDhXnWg4V51oOPadaDj2s4RY/7OEWP/ZpHr/2aR6/9idbv/YnW7/15pp/9eaaf/YlWL/2JVi/9aRXP/W - kVz/1I5Y/9SOWP/TjVb/041W/+KcaP/inGj/+uPR//rj0f/YuqH/2Lqh/51oOJ6daDieAAAAAAAAAAAA - AAAAAAAAAKNuOxSjbjsUo247q6NuO6vVrYv/1a2L//3w5f/98OX/98eh//fHof/3z6z/98+s//nVtP/5 - 1bT/+Nq8//javP/43sH/+N7B//rhxf/64cX/+uTM//rkzP/99ez//fXs/+LOuf/izrn/o247s6NuO7MA - AAAAAAAAAAAAAAAAAAAAo247FKNuOxSjbjuro247q9Wti//VrYv//fDl//3w5f/3x6H/98eh//fPrP/3 - z6z/+dW0//nVtP/42rz/+Nq8//jewf/43sH/+uHF//rhxf/65Mz/+uTM//317P/99ez/4s65/+LOuf+j - bjuzo247swAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKl0PyipdD8otoVV/7aFVf/+/v3//v79//rewf/6 - 3sH/+ty+//rcvv/527//+du///nbv//527//+d3A//ndwP/627//+tu///rcwv/63ML//eve//3r3v/s - 3M3/7NzN/6l0P8qpdD/KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqXQ/KKl0Pyi2hVX/toVV//7+/f/+ - /v3/+t7B//rewf/63L7/+ty+//nbv//527//+du///nbv//53cD/+d3A//rbv//627//+tzC//rcwv/9 - 697//eve/+zczf/s3M3/qXQ/yql0P8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwekIesHpCHriFUf+4 - hVH//vz5//78+f/53L7/+dy+//jbvv/4277/+Ny///jcv//528H/+dvB//ncwP/53MD/+d3B//ndwf/6 - 3cL/+t3C//vn1P/759T/9e3i//Xt4v+wekLksHpC5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALB6Qh6w - ekIeuIVR/7iFUf/+/Pn//vz5//ncvv/53L7/+Nu+//jbvv/43L//+Ny///nbwf/528H/+dzA//ncwP/5 - 3cH/+d3B//rdwv/63cL/++fU//vn1P/17eL/9e3i/7B6QuSwekLkAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAtoFGCbaBRgm4hEr/uIRK//779//++/f/+dzA//ncwP/43L7/+Ny+//jcvv/43L7/+Nu///jbv//5 - 3b//+d2///ndv//53b//+d3C//ndwv/74sv/++LL//z59f/8+fX/toFG+7aBRvu2gUYBtoFGAQAAAAAA - AAAAAAAAAAAAAAC2gUYJtoFGCbiESv+4hEr//vv3//779//53MD/+dzA//jcvv/43L7/+Ny+//jcvv/4 - 27//+Nu///ndv//53b//+d2///ndv//53cL/+d3C//viy//74sv//Pn1//z59f+2gUb7toFG+7aBRgG2 - gUYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvIdK+byHSvn89vD//Pbw//nfx//538f/+dy8//ncvP/6 - 3L7/+ty+//rbwP/628D/+t3C//rdwv/63cH/+t3B//ndw//53cP/++DJ//vgyf///Pr///z6/8CMUv/A - jFL/vIdKD7yHSg8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8h0r5vIdK+fz28P/89vD/+d/H//nfx//5 - 3Lz/+dy8//rcvv/63L7/+tvA//rbwP/63cL/+t3C//rdwf/63cH/+d3D//ndw//74Mn/++DJ///8+v// - /Pr/wIxS/8CMUv+8h0oPvIdKDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMONTdrDjU3a9efY//Xn2P/6 - 5dL/+uXS//nau//52rv/+du7//nbu//6277/+tu+//rdwP/63cD/+t3A//rdwP/53cP/+d3D//vhyP/7 - 4cj///37///9+//Ik1b/yJNW/8ONTRLDjU0SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw41N2sONTdr1 - 59j/9efY//rl0v/65dL/+dq7//nau//527v/+du7//rbvv/6277/+t3A//rdwP/63cD/+t3A//ndw//5 - 3cP/++HI//vhyP///fv///37/8iTVv/Ik1b/w41NEsONTRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADK - k1G7ypNRu/DZwP/w2cD/++3h//vt4f/52r//+dq///ncwf/53MH/+d7E//nexP/64Mf/+uDH//riyv/6 - 4sr/+uLN//rizf/65dD/+uXQ///+/f///v3/y45Z/8uOWf/Kk1HxypNR8cqTUUXKk1FFAAAAAAAAAAAA - AAAAAAAAAMqTUbvKk1G78NnA//DZwP/77eH/++3h//nav//52r//+dzB//ncwf/53sT/+d7E//rgx//6 - 4Mf/+uLK//riyv/64s3/+uLN//rl0P/65dD///79///+/f/Ljln/y45Z/8qTUfHKk1HxypNRRcqTUUUA - AAAAAAAAAAAAAAAAAAAA0JlUpNCZVKTt0LH/7dCx///28P//9vD/+uHK//rhyv/748z/++PM//vj0P/7 - 49D/++bT//vm0//76dX/++nV//zp2P/86dj//Orb//zq2/////3////9/9KccP/SnHD/7tnA/+7ZwP/Q - mVTl0JlU5QAAAAAAAAAAAAAAAAAAAADQmVSk0JlUpO3Qsf/t0LH///bw///28P/64cr/+uHK//vjzP/7 - 48z/++PQ//vj0P/75tP/++bT//vp1f/76dX//OnY//zp2P/86tv//Orb/////f////3/0pxw/9KccP/u - 2cD/7tnA/9CZVOXQmVTlAAAAAAAAAAAAAAAAAAAAANWeV5LVnleS68qk/+vKpP///fv///37//3p1f/9 - 6dX//evY//3r2P/96tv//erb//3t3//97d///fDi//3w4v/98eT//fHk//zw5P/88OT////////////g - n2//4J9v///7+f//+/n/37eG/9+3hv8AAAAAAAAAAAAAAAAAAAAA1Z5XktWeV5LryqT/68qk///9+/// - /fv//enV//3p1f/969j//evY//3q2//96tv//e3f//3t3//98OL//fDi//3x5P/98eT//PDk//zw5P// - /////////+Cfb//gn2////v5///7+f/ft4b/37eG/wAAAAAAAAAAAAAAAAAAAADao1qE2qNahOvFmf/r - xZn////////////87+L//O/i//3w5//98Of//fHr//3x6//99e7//fXu//348f/9+PH//fr3//369/// - /Pr///z6/////////////vv3//779//02r//9Nq//9qjWurao1rqAAAAAAAAAAAAAAAAAAAAANqjWoTa - o1qE68WZ/+vFmf////////////zv4v/87+L//fDn//3w5//98ev//fHr//317v/99e7//fjx//348f/9 - +vf//fr3///8+v///Pr////////////++/f//vv3//Tav//02r//2qNa6tqjWuoAAAAAAAAAAAAAAAAA - AAAA3qdcbd6nXG3qv4v/6r+L/////////////////////////////////////////////fn0//359P/7 - 8+r/+/Pq//jr2f/469n/+ObT//jm0//138X/9d/F/+nLpf/py6X/3qdc7d6nXO3ep1xd3qdcXQAAAAAA - AAAAAAAAAAAAAADep1xt3qdcbeq/i//qv4v////////////////////////////////////////////9 - +fT//fn0//vz6v/78+r/+OvZ//jr2f/45tP/+ObT//Xfxf/138X/6cul/+nLpf/ep1zt3qdc7d6nXF3e - p1xdAAAAAAAAAAAAAAAAAAAAAOKrXjbiq1424qtexuKrXsbqu4D/6ruA/+i2dv/otnb/5rFs/+axbP/k - r2f/5K9n/+KrXvDiq17w4qte4+KrXuPiq17P4qtez+KrXsziq17M4qteu+KrXrviq16o4qteqOKrXkvi - q15L4qteBeKrXgUAAAAAAAAAAAAAAAAAAAAA4qteNuKrXjbiq17G4qtexuq7gP/qu4D/6LZ2/+i2dv/m - sWz/5rFs/+SvZ//kr2f/4qte8OKrXvDiq17j4qte4+KrXs/iq17P4qtezOKrXsziq1674qteu+KrXqji - q16o4qteS+KrXkviq14F4qteBQAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA/A - AAAPwAAAD8AAAA/AAAAPwAAAA8AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAPAAAADwAAAA8AAAAPAAAADw - AAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAAKAAAABAAAAAgAAAAAQAgAAAAAAAABAAAww4AAMMOAAAA - AAAAAAAAAI9aMBSPWjCEj1owo49aMLaPWjDJj1ow2o9aMOuPWjD6lGA4/5loQP+ic07/rIFe/49aMNmP - WjA0AAAAAAAAAACTXjJot49s/9a5ov/fxbL/59TC/+7f0//16uL/+/Tv//369v///v3/++vf//vv5v/A - nH//k14ybwAAAAAAAAAAmGM1icejhP////////////////////////78//779//+9/H//vbx/+Sthf/6 - 6Nv/zq6U/5hjNYsAAAAAAAAAAJ1oOFedaDj2s4RY/9mkev/YnW7/15pp/9iVYv/WkVz/1I5Y/9ONVv/i - nGj/+uPR/9i6of+daDieAAAAAAAAAACjbjsUo247q9Wti//98OX/98eh//fPrP/51bT/+Nq8//jewf/6 - 4cX/+uTM//317P/izrn/o247swAAAAAAAAAAAAAAAKl0Pyi2hVX//v79//rewf/63L7/+du///nbv//5 - 3cD/+tu///rcwv/9697/7NzN/6l0P8oAAAAAAAAAAAAAAACwekIeuIVR//78+f/53L7/+Nu+//jcv//5 - 28H/+dzA//ndwf/63cL/++fU//Xt4v+wekLkAAAAAAAAAAAAAAAAtoFGCbiESv/++/f/+dzA//jcvv/4 - 3L7/+Nu///ndv//53b//+d3C//viy//8+fX/toFG+7aBRgEAAAAAAAAAAAAAAAC8h0r5/Pbw//nfx//5 - 3Lz/+ty+//rbwP/63cL/+t3B//ndw//74Mn///z6/8CMUv+8h0oPAAAAAAAAAAAAAAAAw41N2vXn2P/6 - 5dL/+dq7//nbu//6277/+t3A//rdwP/53cP/++HI///9+//Ik1b/w41NEgAAAAAAAAAAAAAAAMqTUbvw - 2cD/++3h//nav//53MH/+d7E//rgx//64sr/+uLN//rl0P///v3/y45Z/8qTUfHKk1FFAAAAAAAAAADQ - mVSk7dCx///28P/64cr/++PM//vj0P/75tP/++nV//zp2P/86tv////9/9KccP/u2cD/0JlU5QAAAAAA - AAAA1Z5XkuvKpP///fv//enV//3r2P/96tv//e3f//3w4v/98eT//PDk///////gn2////v5/9+3hv8A - AAAAAAAAANqjWoTrxZn///////zv4v/98Of//fHr//317v/9+PH//fr3///8+v///////vv3//Tav//a - o1rqAAAAAAAAAADep1xt6r+L///////////////////////9+fT/+/Pq//jr2f/45tP/9d/F/+nLpf/e - p1zt3qdcXQAAAAAAAAAA4qteNuKrXsbqu4D/6LZ2/+axbP/kr2f/4qte8OKrXuPiq17P4qtezOKrXrvi - q16o4qteS+KrXgUAAwAAAAMAAAADAAAAAwAAAAMAAIADAACAAwAAgAEAAMABAADAAQAAwAAAAMAAAADA - AAAAwAAAAMAAAADAAAAA - - - \ No newline at end of file diff --git a/Novetus/Novetus.ClientScriptTester/Novetus.ClientScriptTester.csproj b/Novetus/Novetus.ClientScriptTester/Novetus.ClientScriptTester.csproj deleted file mode 100644 index bb378aa..0000000 --- a/Novetus/Novetus.ClientScriptTester/Novetus.ClientScriptTester.csproj +++ /dev/null @@ -1,113 +0,0 @@ - - - - - Debug - AnyCPU - {83B08607-65B8-4F9C-8D0F-AB1C8EEFFAE0} - WinExe - Novetus.ClientScriptTester - ClientScriptTester - v4.8 - 512 - - - - AnyCPU - true - full - false - bin\Debug\ - TRACE;DEBUG;TESTER;NOVETUS_APPS - prompt - 4 - false - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE;TESTER;NOVETUS_APPS;NET481 - prompt - 4 - false - - - NovetusIcon.ico - - - app.manifest - - - - - - - - - - - - - - - - - - - - - - Form - - - ClientScriptTestForm.cs - - - - - ClientScriptTestForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - SET path=$(SolutionDir)build -if not exist "%25path%25" mkdir "%25path%25" -SET path2=%25path%25\ClientScriptTester -if not exist "%25path2%25" mkdir "%25path2%25" -copy $(ProjectDir)$(OutDir) "%25path2%25"\* -del "%25path%25"\$(TargetName).vshost.exe -del "%25path%25"\$(TargetName).vshost.exe.config -del "%25path%25"\$(TargetName).vshost.exe.manifest -del "%25path%25"\$(TargetName).xml - - - - - - \ No newline at end of file diff --git a/Novetus/Novetus.ClientScriptTester/NovetusIcon.ico b/Novetus/Novetus.ClientScriptTester/NovetusIcon.ico deleted file mode 100644 index 8cd1cbe..0000000 Binary files a/Novetus/Novetus.ClientScriptTester/NovetusIcon.ico and /dev/null differ diff --git a/Novetus/Novetus.ClientScriptTester/Properties/AssemblyInfo.cs b/Novetus/Novetus.ClientScriptTester/Properties/AssemblyInfo.cs deleted file mode 100644 index 63b9fe1..0000000 --- a/Novetus/Novetus.ClientScriptTester/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region Usings -using System.Reflection; -using System.Runtime.InteropServices; -#endregion - - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ClientScript tester")] -[assembly: AssemblyDescription("ClientScript tester tor testing ClientScript variables.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Bitl")] -[assembly: AssemblyProduct("Novetus")] -[assembly: AssemblyCopyright("(c) Bitl 2018-2021. All rights to Roblox go to the Roblox Corporation.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.3.*")] diff --git a/Novetus/Novetus.ClientScriptTester/Properties/Resources.Designer.cs b/Novetus/Novetus.ClientScriptTester/Properties/Resources.Designer.cs deleted file mode 100644 index 8ac6056..0000000 --- a/Novetus/Novetus.ClientScriptTester/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Novetus.ClientScriptTester.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [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("Novetus.ClientScriptTester.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [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/Novetus/Novetus.ClientScriptTester/Properties/Resources.resx b/Novetus/Novetus.ClientScriptTester/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/Novetus/Novetus.ClientScriptTester/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/Novetus/Novetus.ClientScriptTester/Properties/Settings.Designer.cs b/Novetus/Novetus.ClientScriptTester/Properties/Settings.Designer.cs deleted file mode 100644 index 42f97fc..0000000 --- a/Novetus/Novetus.ClientScriptTester/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Novetus.ClientScriptTester.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.2.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/Novetus/Novetus.ClientScriptTester/Properties/Settings.settings b/Novetus/Novetus.ClientScriptTester/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/Novetus/Novetus.ClientScriptTester/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Novetus/Novetus.ClientScriptTester/Resources/ClientScriptTester.ico b/Novetus/Novetus.ClientScriptTester/Resources/ClientScriptTester.ico deleted file mode 100644 index ced545e..0000000 Binary files a/Novetus/Novetus.ClientScriptTester/Resources/ClientScriptTester.ico and /dev/null differ diff --git a/Novetus/Novetus.ClientScriptTester/Resources/NovetusIcon.ico b/Novetus/Novetus.ClientScriptTester/Resources/NovetusIcon.ico deleted file mode 100644 index 8cd1cbe..0000000 Binary files a/Novetus/Novetus.ClientScriptTester/Resources/NovetusIcon.ico and /dev/null differ diff --git a/Novetus/Novetus.ClientScriptTester/app.config b/Novetus/Novetus.ClientScriptTester/app.config deleted file mode 100644 index da4575c..0000000 --- a/Novetus/Novetus.ClientScriptTester/app.config +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/Novetus/Novetus.ClientScriptTester/app.manifest b/Novetus/Novetus.ClientScriptTester/app.manifest deleted file mode 100644 index 5064322..0000000 --- a/Novetus/Novetus.ClientScriptTester/app.manifest +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true/pm - permonitorv2,permonitor - true - true - - - - - - - - - - diff --git a/Novetus/Novetus.ReleasePreparer/Novetus.Internal.ReleasePreparer.csproj b/Novetus/Novetus.ReleasePreparer/Novetus.Internal.ReleasePreparer.csproj deleted file mode 100644 index 5c14202..0000000 --- a/Novetus/Novetus.ReleasePreparer/Novetus.Internal.ReleasePreparer.csproj +++ /dev/null @@ -1,76 +0,0 @@ - - - - - Debug - AnyCPU - {64A99062-3C1C-4D2E-99E4-D6D92443AC98} - Exe - Novetus.ReleasePreparer - ReleasePreparer - v4.8 - 512 - false - - - - AnyCPU - true - full - false - bin\Debug\ - TRACE;DEBUG;PREPARER;NET481 - prompt - 4 - false - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE;PREPARER;NET481 - prompt - 4 - false - - - NovetusIcon.ico - - - - - - - - - - - - - INIFile.cs - - - - - - - - - - - - - SET path=$(SolutionDir)build -if not exist "%25path%25" mkdir "%25path%25" -copy $(ProjectDir)$(OutDir) "%25path%25"\* -del "%25path%25"\$(TargetName).vshost.exe -del "%25path%25"\$(TargetName).vshost.exe.config -del "%25path%25"\$(TargetName).vshost.exe.manifest -del "%25path%25"\$(TargetName).xml - - - - - - \ No newline at end of file diff --git a/Novetus/Novetus.ReleasePreparer/NovetusIcon.ico b/Novetus/Novetus.ReleasePreparer/NovetusIcon.ico deleted file mode 100644 index 8cd1cbe..0000000 Binary files a/Novetus/Novetus.ReleasePreparer/NovetusIcon.ico and /dev/null differ diff --git a/Novetus/Novetus.ReleasePreparer/Properties/AssemblyInfo.cs b/Novetus/Novetus.ReleasePreparer/Properties/AssemblyInfo.cs deleted file mode 100644 index 441fdf7..0000000 --- a/Novetus/Novetus.ReleasePreparer/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ReleasePreparer")] -[assembly: AssemblyDescription("A utility designed for faster releases.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Bitl")] -[assembly: AssemblyProduct("ReleasePreparer")] -[assembly: AssemblyCopyright("(c) Bitl 2018-2021. All rights to Roblox go to the Roblox Corporation.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("64a99062-3c1c-4d2e-99e4-d6d92443ac98")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.3.*")] diff --git a/Novetus/Novetus.ReleasePreparer/ReleasePreparer.cs b/Novetus/Novetus.ReleasePreparer/ReleasePreparer.cs deleted file mode 100644 index 3680341..0000000 --- a/Novetus/Novetus.ReleasePreparer/ReleasePreparer.cs +++ /dev/null @@ -1,156 +0,0 @@ -#region Usings -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Reflection; -#endregion - -namespace Novetus.ReleasePreparer -{ - #region ReleasePreparer - class ReleasePreparer - { - static void Main(string[] args) - { - string novpath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\\Novetus"; - - if (args.Length > 0) - { - if (args.Contains("-snapshot")) - { - string infopath = novpath + @"\\config\\info.ini"; - string currver = GetBranch(infopath); - TurnOnInitialSequence(infopath); - - string pathbeta = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\\betaversion.txt"; - Console.WriteLine("Creating " + pathbeta); - if (!File.Exists(pathbeta)) - { - // Create a file to write to. - using (StreamWriter sw = File.CreateText(pathbeta)) - { - sw.Write(currver); - } - } - Console.WriteLine("Created " + pathbeta); - } - else if (args.Contains("-release")) - { - DoRelease(novpath); - } - } - else - { - DoRelease(novpath); - } - } - - public static void DoRelease(string novpath) - { - string infopath = novpath + @"\\config\\info.ini"; - string currbranch = GetBranch(infopath); - TurnOnInitialSequence(infopath); - - string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\\releaseversion.txt"; - Console.WriteLine("Creating " + path); - if (!File.Exists(path)) - { - // Create a file to write to. - using (StreamWriter sw = File.CreateText(path)) - { - sw.Write(currbranch); - } - } - Console.WriteLine("Created " + path); - } - - public static void FixedFileCopy(string src, string dest, bool overwrite) - { - if (File.Exists(dest)) - { - File.SetAttributes(dest, FileAttributes.Normal); - } - - File.Copy(src, dest, overwrite); - File.SetAttributes(dest, FileAttributes.Normal); - } - - public static void FixedFileDelete(string src) - { - if (File.Exists(src)) - { - File.SetAttributes(src, FileAttributes.Normal); - File.Delete(src); - } - } - - public static string GetBranch(string infopath) - { - INIFile ini = new INIFile(infopath); - return GetBranch(ini, infopath); - } - - public static string GetBranch(INIFile ini, string infopath) - { - //READ - string versionbranch, extendedVersionNumber, extendedVersionTemplate, extendedVersionRevision, isLite; - string section = "ProgramInfo"; - versionbranch = ini.IniReadValue(section, "Branch", "0.0"); - extendedVersionNumber = ini.IniReadValue(section, "ExtendedVersionNumber", "False"); - extendedVersionTemplate = ini.IniReadValue(section, "ExtendedVersionTemplate", "%version%"); - extendedVersionRevision = ini.IniReadValue(section, "ExtendedVersionRevision", "-1"); - isLite = ini.IniReadValue(section, "IsLite", "False"); - - string novpath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\\Novetus\\bin\\Novetus.exe"; - - if (!extendedVersionNumber.Equals("False")) - { - var versionInfo = FileVersionInfo.GetVersionInfo(novpath); - return extendedVersionTemplate.Replace("%version%", versionbranch) - .Replace("%build%", versionInfo.ProductBuildPart.ToString()) - .Replace("%revision%", versionInfo.FilePrivatePart.ToString()) - .Replace("%extended-revision%", (!extendedVersionRevision.Equals("-1") ? extendedVersionRevision : "")) - .Replace("%lite%", (!isLite.Equals("False") ? " (Lite)" : "")); - } - else - { - return versionbranch; - } - } - - public static void SetToLite(string infopath) - { - INIFile ini = new INIFile(infopath); - string section = "ProgramInfo"; - string isLite = ini.IniReadValue(section, "IsLite", "False"); - - try - { - if (!isLite.Equals("True")) - { - ini.IniWriteValue(section, "IsLite", "True"); - } - } - catch (Exception) - { - SetToLite(infopath); - } - } - - public static void TurnOnInitialSequence(string infopath) - { - //READ - INIFile ini = new INIFile(infopath); - string section = "ProgramInfo"; - - string initialBootup = ini.IniReadValue(section, "InitialBootup", "True"); - if (Convert.ToBoolean(initialBootup) == false) - { - ini.IniWriteValue(section, "InitialBootup", "True"); - } - } - } - #endregion -} diff --git a/Novetus/Novetus.ReleasePreparer/Resources/NovetusIcon.ico b/Novetus/Novetus.ReleasePreparer/Resources/NovetusIcon.ico deleted file mode 100644 index 8cd1cbe..0000000 Binary files a/Novetus/Novetus.ReleasePreparer/Resources/NovetusIcon.ico and /dev/null differ diff --git a/Novetus/Novetus.ReleasePreparer/app.config b/Novetus/Novetus.ReleasePreparer/app.config deleted file mode 100644 index 3e0e37c..0000000 --- a/Novetus/Novetus.ReleasePreparer/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Novetus/Novetus.Tools.sln b/Novetus/Novetus.Tools.sln deleted file mode 100644 index f90a1a5..0000000 --- a/Novetus/Novetus.Tools.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.2.32630.192 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Novetus.Internal.ReleasePreparer", "Novetus.ReleasePreparer\Novetus.Internal.ReleasePreparer.csproj", "{64A99062-3C1C-4D2E-99E4-D6D92443AC98}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Novetus.ClientScriptTester", "Novetus.ClientScriptTester\Novetus.ClientScriptTester.csproj", "{83B08607-65B8-4F9C-8D0F-AB1C8EEFFAE0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64A99062-3C1C-4D2E-99E4-D6D92443AC98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {64A99062-3C1C-4D2E-99E4-D6D92443AC98}.Debug|Any CPU.Build.0 = Debug|Any CPU - {64A99062-3C1C-4D2E-99E4-D6D92443AC98}.Release|Any CPU.ActiveCfg = Release|Any CPU - {64A99062-3C1C-4D2E-99E4-D6D92443AC98}.Release|Any CPU.Build.0 = Release|Any CPU - {83B08607-65B8-4F9C-8D0F-AB1C8EEFFAE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {83B08607-65B8-4F9C-8D0F-AB1C8EEFFAE0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {83B08607-65B8-4F9C-8D0F-AB1C8EEFFAE0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {83B08607-65B8-4F9C-8D0F-AB1C8EEFFAE0}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {66CA6CE5-670E-48AA-A2DA-9347371D4CA0} - EndGlobalSection -EndGlobal diff --git a/Novetus/NovetusCore/Classes/IDiscordRPC.cs b/Novetus/NovetusCore/Classes/IDiscordRPC.cs index afda33f..e3e7ece 100644 --- a/Novetus/NovetusCore/Classes/IDiscordRPC.cs +++ b/Novetus/NovetusCore/Classes/IDiscordRPC.cs @@ -6,7 +6,8 @@ namespace Novetus.Core { #region Discord RPC //code by discord obv. just renamed it to fit better. - public class DiscordRPC + //TODO: add proper c# implementation. + public class IDiscordRPC { [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate void ReadyCallback(); @@ -95,5 +96,57 @@ namespace Novetus.Core [DllImport("discord-rpc", EntryPoint = "Discord_Respond", CallingConvention = CallingConvention.Cdecl)] public static extern void Respond(string userId, Reply reply); } - #endregion + + public class DiscordRPC + { + public static void ReadyCallback() + { + Util.ConsolePrint("Discord RPC: Ready", 3); + } + + public static void DisconnectedCallback(int errorCode, string message) + { + Util.ConsolePrint("Discord RPC: Disconnected. Reason - " + errorCode + ": " + message, 2); + } + + public static void ErrorCallback(int errorCode, string message) + { + Util.ConsolePrint("Discord RPC: Error. Reason - " + errorCode + ": " + message, 2); + } + + public static void JoinCallback(string secret) + { + } + + public static void SpectateCallback(string secret) + { + } + + public static void RequestCallback(IDiscordRPC.JoinRequest request) + { + } + + public static void StartDiscord() + { + if (GlobalVars.UserConfiguration.DiscordPresence) + { + GlobalVars.handlers = new IDiscordRPC.EventHandlers(); + GlobalVars.handlers.readyCallback = ReadyCallback; + GlobalVars.handlers.disconnectedCallback += DisconnectedCallback; + GlobalVars.handlers.errorCallback += ErrorCallback; + GlobalVars.handlers.joinCallback += JoinCallback; + GlobalVars.handlers.spectateCallback += SpectateCallback; + GlobalVars.handlers.requestCallback += RequestCallback; + IDiscordRPC.Initialize(GlobalVars.appid, ref GlobalVars.handlers, true, ""); + Util.ConsolePrint("Discord RPC: Initalized", 3); + +#if URI + ClientManagement.UpdateRichPresence(GlobalVars.LauncherState.LoadingURI, true); +#else + ClientManagement.UpdateRichPresence(ClientManagement.GetStateForType(GlobalVars.GameOpened), true); +#endif + } + } + } +#endregion } diff --git a/Novetus/NovetusCore/NovetusCore.projitems b/Novetus/NovetusCore/NovetusCore.projitems index 658dacc..660bc3b 100644 --- a/Novetus/NovetusCore/NovetusCore.projitems +++ b/Novetus/NovetusCore/NovetusCore.projitems @@ -24,6 +24,9 @@ + + + diff --git a/Novetus/NovetusCore/StorageAndFunctions/ClientManagement.cs b/Novetus/NovetusCore/StorageAndFunctions/ClientManagement.cs index cad8171..3965103 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/ClientManagement.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/ClientManagement.cs @@ -6,9 +6,9 @@ using System.Globalization; using System.IO; using System.Linq; using System.Text; -using System.Windows.Forms; using System.Xml.Linq; using System.Security.Cryptography; +using System.Windows.Forms; using System.Reflection; #endregion @@ -198,24 +198,24 @@ namespace Novetus.Core DefaultClientInfo.Description = desc; string[] lines = { - SecurityFuncs.Base64Encode(DefaultClientInfo.UsesPlayerName.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.UsesID.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.Warning.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.LegacyMode.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.ClientMD5.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.ScriptMD5.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.Description.ToString()), - SecurityFuncs.Base64Encode(placeholder.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.Fix2007.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.AlreadyHasSecurity.ToString()), - SecurityFuncs.Base64Encode(((int)DefaultClientInfo.ClientLoadOptions).ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.SeperateFolders.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.UsesCustomClientEXEName.ToString()), - SecurityFuncs.Base64Encode(DefaultClientInfo.CustomClientEXEName.ToString().Replace("\\", "")), - SecurityFuncs.Base64Encode(DefaultClientInfo.CommandLineArgs.ToString()) + SecurityFuncs.Encode(DefaultClientInfo.UsesPlayerName.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.UsesID.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.Warning.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.LegacyMode.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.ClientMD5.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.ScriptMD5.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.Description.ToString()), + SecurityFuncs.Encode(placeholder.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.Fix2007.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.AlreadyHasSecurity.ToString()), + SecurityFuncs.Encode(((int)DefaultClientInfo.ClientLoadOptions).ToString()), + SecurityFuncs.Encode(DefaultClientInfo.SeperateFolders.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.UsesCustomClientEXEName.ToString()), + SecurityFuncs.Encode(DefaultClientInfo.CustomClientEXEName.ToString().Replace("\\", "")), + SecurityFuncs.Encode(DefaultClientInfo.CommandLineArgs.ToString()) }; - File.WriteAllText(path + "\\clientinfo.nov", SecurityFuncs.Base64Encode(string.Join("|", lines))); + File.WriteAllText(path + "\\clientinfo.nov", SecurityFuncs.Encode(string.Join("|", lines))); } //NOT FOR SDK. @@ -260,36 +260,36 @@ namespace Novetus.Core file = reader.ReadLine(); } - string ConvertedLine = SecurityFuncs.Base64Decode(file); + string ConvertedLine = SecurityFuncs.Decode(file); string[] result = ConvertedLine.Split('|'); - usesplayername = SecurityFuncs.Base64Decode(result[0]); - usesid = SecurityFuncs.Base64Decode(result[1]); - warning = SecurityFuncs.Base64Decode(result[2]); - legacymode = SecurityFuncs.Base64Decode(result[3]); - clientmd5 = SecurityFuncs.Base64Decode(result[4]); - scriptmd5 = SecurityFuncs.Base64Decode(result[5]); - desc = SecurityFuncs.Base64Decode(result[6]); - fix2007 = SecurityFuncs.Base64Decode(result[8]); - alreadyhassecurity = SecurityFuncs.Base64Decode(result[9]); - clientloadoptions = SecurityFuncs.Base64Decode(result[10]); + usesplayername = SecurityFuncs.Decode(result[0]); + usesid = SecurityFuncs.Decode(result[1]); + warning = SecurityFuncs.Decode(result[2]); + legacymode = SecurityFuncs.Decode(result[3]); + clientmd5 = SecurityFuncs.Decode(result[4]); + scriptmd5 = SecurityFuncs.Decode(result[5]); + desc = SecurityFuncs.Decode(result[6]); + fix2007 = SecurityFuncs.Decode(result[8]); + alreadyhassecurity = SecurityFuncs.Decode(result[9]); + clientloadoptions = SecurityFuncs.Decode(result[10]); folders = "False"; usescustomname = "False"; customname = ""; try { - commandlineargs = SecurityFuncs.Base64Decode(result[11]); + commandlineargs = SecurityFuncs.Decode(result[11]); bool parsedValue; if (bool.TryParse(commandlineargs, out parsedValue)) { - folders = SecurityFuncs.Base64Decode(result[11]); - commandlineargs = SecurityFuncs.Base64Decode(result[12]); + folders = SecurityFuncs.Decode(result[11]); + commandlineargs = SecurityFuncs.Decode(result[12]); bool parsedValue2; if (bool.TryParse(commandlineargs, out parsedValue2)) { - usescustomname = SecurityFuncs.Base64Decode(result[12]); - customname = SecurityFuncs.Base64Decode(result[13]); - commandlineargs = SecurityFuncs.Base64Decode(result[14]); + usescustomname = SecurityFuncs.Decode(result[12]); + customname = SecurityFuncs.Decode(result[13]); + commandlineargs = SecurityFuncs.Decode(result[14]); } } } @@ -297,7 +297,7 @@ namespace Novetus.Core { //fake this option until we properly apply it. clientloadoptions = "2"; - commandlineargs = SecurityFuncs.Base64Decode(result[10]); + commandlineargs = SecurityFuncs.Decode(result[10]); } info.UsesPlayerName = Convert.ToBoolean(usesplayername); @@ -365,7 +365,8 @@ namespace Novetus.Core if (initial) { GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large; - GlobalVars.presence.startTimestamp = SecurityFuncs.UnixTimeNow(); + var timeSpan = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)); + GlobalVars.presence.startTimestamp = (long)timeSpan.TotalSeconds; } string ValidMapname = (string.IsNullOrWhiteSpace(mapname) ? "Place1" : mapname); @@ -425,7 +426,7 @@ namespace Novetus.Core break; } - DiscordRPC.UpdatePresence(ref GlobalVars.presence); + IDiscordRPC.UpdatePresence(ref GlobalVars.presence); } } @@ -1046,7 +1047,7 @@ namespace Novetus.Core string fileMD5 = parsedFileParams[1]; string fullFilePath = GlobalPaths.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\" + filePath; - if (!SecurityFuncs.CheckMD5(fileMD5, fullFilePath)) + if (!CheckMD5(fileMD5, fullFilePath)) { #if URI UpdateStatus(label, "The client has been detected as modified."); @@ -1074,10 +1075,90 @@ namespace Novetus.Core } } + public static bool CheckMD5(string MD5Hash, string path) + { + if (!File.Exists(path)) + return false; + + using (var md5 = MD5.Create()) + { + using (var stream = File.OpenRead(path)) + { + byte[] hash = md5.ComputeHash(stream); + string clientMD5 = BitConverter.ToString(hash).Replace("-", ""); + if (clientMD5.Equals(MD5Hash)) + { + return true; + } + else + { + return false; + } + } + } + } + + public static bool checkClientMD5(string client) + { + if (!GlobalVars.AdminMode) + { + if (!GlobalVars.SelectedClientInfo.AlreadyHasSecurity) + { + string rbxexe = ""; + string BasePath = GlobalPaths.BasePath + "\\clients\\" + client; + if (GlobalVars.SelectedClientInfo.LegacyMode) + { + rbxexe = BasePath + "\\RobloxApp.exe"; + } + else if (GlobalVars.SelectedClientInfo.SeperateFolders) + { + rbxexe = BasePath + "\\client\\RobloxApp_client.exe"; + } + else if (GlobalVars.SelectedClientInfo.UsesCustomClientEXEName) + { + rbxexe = BasePath + @"\\" + GlobalVars.SelectedClientInfo.CustomClientEXEName; + } + else + { + rbxexe = BasePath + "\\RobloxApp_client.exe"; + } + return CheckMD5(GlobalVars.SelectedClientInfo.ClientMD5, rbxexe); + } + else + { + return true; + } + } + else + { + return true; + } + } + + public static bool checkScriptMD5(string client) + { + if (!GlobalVars.AdminMode) + { + if (!GlobalVars.SelectedClientInfo.AlreadyHasSecurity) + { + string rbxscript = GlobalPaths.BasePath + "\\clients\\" + client + "\\content\\scripts\\" + GlobalPaths.ScriptName + ".lua"; + return CheckMD5(GlobalVars.SelectedClientInfo.ScriptMD5, rbxscript); + } + else + { + return true; + } + } + else + { + return true; + } + } + #if URI public static void LaunchRBXClient(string ClientName, ScriptType type, bool no3d, bool nomap, EventHandler e, Label label) #else - public static void LaunchRBXClient(string ClientName, ScriptType type, bool no3d, bool nomap, EventHandler e) + public static void LaunchRBXClient(string ClientName, ScriptType type, bool no3d, bool nomap, EventHandler e) #endif { #if LAUNCHER @@ -1271,7 +1352,7 @@ namespace Novetus.Core { if (info.AlreadyHasSecurity != true) { - if (SecurityFuncs.checkClientMD5(ClientName) && SecurityFuncs.checkScriptMD5(ClientName)) + if (checkClientMD5(ClientName) && checkScriptMD5(ClientName)) { OpenClient(type, rbxexe, args, ClientName, mapname, e); } @@ -1755,6 +1836,13 @@ namespace Novetus.Core } } + public static string CopyMapToRBXAsset() + { + string clientcontentpath = GlobalPaths.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\temp.rbxl"; + Util.FixedFileCopy(GlobalVars.UserConfiguration.MapPath, clientcontentpath, true); + return GlobalPaths.AltBaseGameDir + "temp.rbxl"; + } + public static string CompileScript(string code, string tag, string endtag, string mapfile, string luafile, string rbxexe, bool usesharedtags = true) { return CompileScript(GlobalVars.UserConfiguration.SelectedClient, code, tag, endtag, mapfile, luafile, rbxexe, usesharedtags); @@ -1823,7 +1911,7 @@ namespace Novetus.Core string extractedCode = GetArgsFromTag(code, start, end); #if LAUNCHER - string md5dir = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(Assembly.GetExecutingAssembly().Location) : ""; + string md5dir = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(Assembly.GetExecutingAssembly().Location) : ""; #else string md5dir = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(GlobalPaths.RootPathLauncher + "\\Novetus.exe") : ""; #endif @@ -1878,7 +1966,7 @@ namespace Novetus.Core .Replace("%extrad%", GlobalPaths.extraGameDir + GlobalVars.UserCustomization.Extra) .Replace("%hat4d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Extra) .Replace("%mapfiled%", GlobalPaths.BaseGameDir + GlobalVars.UserConfiguration.MapPathSnip.Replace(@"\\", @"\").Replace(@"/", @"\")) - .Replace("%mapfilec%", extractedCode.Contains("%mapfilec%") ? NovetusFuncs.CopyMapToRBXAsset() : "") + .Replace("%mapfilec%", extractedCode.Contains("%mapfilec%") ? CopyMapToRBXAsset() : "") .Replace("%tripcode%", GlobalVars.PlayerTripcode) .Replace("%scripttype%", Generator.GetNameForType(type)) .Replace("%notifications%", GlobalVars.UserConfiguration.ShowServerNotifications.ToString().ToLower()) diff --git a/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs b/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs index 14ae392..af0bb27 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs @@ -11,7 +11,8 @@ using System.Drawing.Imaging; using System.Text.RegularExpressions; using System.Windows.Forms; using System.Xml.Serialization; -using System.Runtime.Versioning; +using System.Xml; +using System.Xml.Linq; #endregion namespace Novetus.Core @@ -971,7 +972,8 @@ namespace Novetus.Core if (!forcewrite) { - string curval = NovetusFuncs.GenerateAndReturnTripcode(); + //Powered by https://github.com/davcs86/csharp-uhwid + string curval = UHWIDEngine.AdvancedUid; if (!GlobalVars.PlayerTripcode.Equals(curval)) { GlobalVars.PlayerTripcode = curval; @@ -1360,6 +1362,101 @@ namespace Novetus.Core GlobalVars.UserCustomization = new FileFormat.CustomizationConfig(); ReloadLoadoutValue(); } + public static string GetItemTextureLocalPath(string item, string nameprefix) + { + //don't bother, we're offline. + if (GlobalVars.ExternalIP.Equals("localhost")) + return ""; + + if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeonlineclothing%")) + return ""; + + if (item.Contains("http://") || item.Contains("https://")) + { + string peram = "id="; + string fullname = nameprefix + "Temp.png"; + + if (item.Contains(peram)) + { + string id = item.After(peram); + fullname = id + ".png"; + } + else + { + return item; + } + + Downloader download = new Downloader(item, fullname, "", GlobalPaths.AssetCacheDirAssets); + + try + { + string path = download.GetFullDLPath(); + download.InitDownloadNoDialog(path); + return GlobalPaths.AssetCacheAssetsGameDir + download.fileName; + } +#if URI || LAUNCHER || BASICLAUNCHER + catch (Exception ex) + { + Util.LogExceptions(ex); +#else + catch (Exception) + { +#endif + } + } + + return ""; + } + + public static string GetItemTextureID(string item, string name, AssetCacheDefBasic assetCacheDef) + { + //don't bother, we're offline. + if (GlobalVars.ExternalIP.Equals("localhost")) + return ""; + + if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeonlineclothing%")) + return ""; + + if (item.Contains("http://") || item.Contains("https://")) + { + string peram = "id="; + if (!item.Contains(peram)) + { + return item; + } + + Downloader download = new Downloader(item, name + "Temp.rbxm", "", GlobalPaths.AssetCacheDirAssets); + + try + { + string path = download.GetFullDLPath(); + download.InitDownloadNoDialog(path); + string oldfile = File.ReadAllText(path); + string fixedfile = RobloxXML.RemoveInvalidXmlChars(RobloxXML.ReplaceHexadecimalSymbols(oldfile)).Replace(" ", "\t").Replace("#9;", "\t"); + XDocument doc = null; + XmlReaderSettings xmlReaderSettings = new XmlReaderSettings { CheckCharacters = false }; + Stream filestream = Util.GenerateStreamFromString(fixedfile); + using (XmlReader xmlReader = XmlReader.Create(filestream, xmlReaderSettings)) + { + xmlReader.MoveToContent(); + doc = XDocument.Load(xmlReader); + } + + return RobloxXML.GetURLInNodes(doc, assetCacheDef.Class, assetCacheDef.Id[0], item); + } +#if URI || LAUNCHER || BASICLAUNCHER + catch (Exception ex) + { + Util.LogExceptions(ex); +#else + catch (Exception) + { +#endif + } + } + + return ""; + } public static void ReloadLoadoutValue(bool localizeOnlineClothing = false) { @@ -1404,15 +1501,15 @@ namespace Novetus.Core if (localizeOnlineClothing) { - GlobalVars.TShirtTextureID = NovetusFuncs.GetItemTextureID(GlobalVars.UserCustomization.TShirt, "TShirt", new AssetCacheDefBasic("ShirtGraphic", new string[] { "Graphic" })); - GlobalVars.ShirtTextureID = NovetusFuncs.GetItemTextureID(GlobalVars.UserCustomization.Shirt, "Shirt", new AssetCacheDefBasic("Shirt", new string[] { "ShirtTemplate" })); - GlobalVars.PantsTextureID = NovetusFuncs.GetItemTextureID(GlobalVars.UserCustomization.Pants, "Pants", new AssetCacheDefBasic("Pants", new string[] { "PantsTemplate" })); - GlobalVars.FaceTextureID = NovetusFuncs.GetItemTextureID(GlobalVars.UserCustomization.Face, "Face", new AssetCacheDefBasic("Decal", new string[] { "Texture" })); + GlobalVars.TShirtTextureID = GetItemTextureID(GlobalVars.UserCustomization.TShirt, "TShirt", new AssetCacheDefBasic("ShirtGraphic", new string[] { "Graphic" })); + GlobalVars.ShirtTextureID = GetItemTextureID(GlobalVars.UserCustomization.Shirt, "Shirt", new AssetCacheDefBasic("Shirt", new string[] { "ShirtTemplate" })); + GlobalVars.PantsTextureID = GetItemTextureID(GlobalVars.UserCustomization.Pants, "Pants", new AssetCacheDefBasic("Pants", new string[] { "PantsTemplate" })); + GlobalVars.FaceTextureID = GetItemTextureID(GlobalVars.UserCustomization.Face, "Face", new AssetCacheDefBasic("Decal", new string[] { "Texture" })); - GlobalVars.TShirtTextureLocal = NovetusFuncs.GetItemTextureLocalPath(GlobalVars.TShirtTextureID, "TShirt"); - GlobalVars.ShirtTextureLocal = NovetusFuncs.GetItemTextureLocalPath(GlobalVars.ShirtTextureID, "Shirt"); - GlobalVars.PantsTextureLocal = NovetusFuncs.GetItemTextureLocalPath(GlobalVars.PantsTextureID, "Pants"); - GlobalVars.FaceTextureLocal = NovetusFuncs.GetItemTextureLocalPath(GlobalVars.FaceTextureID, "Face"); + GlobalVars.TShirtTextureLocal = GetItemTextureLocalPath(GlobalVars.TShirtTextureID, "TShirt"); + GlobalVars.ShirtTextureLocal = GetItemTextureLocalPath(GlobalVars.ShirtTextureID, "Shirt"); + GlobalVars.PantsTextureLocal = GetItemTextureLocalPath(GlobalVars.PantsTextureID, "Pants"); + GlobalVars.FaceTextureLocal = GetItemTextureLocalPath(GlobalVars.FaceTextureID, "Face"); } } diff --git a/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs b/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs index 8465a11..0908ede 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs @@ -81,7 +81,7 @@ namespace Novetus.Core LoadingURI = 6 } - public static DiscordRPC.EventHandlers handlers; + public static IDiscordRPC.EventHandlers handlers; #endregion #region Class definitions @@ -97,7 +97,7 @@ namespace Novetus.Core public static string DefaultIP = "localhost"; public static int DefaultRobloxPort = 53640; public static GameServer CurrentServer = new GameServer(DefaultIP, DefaultRobloxPort); - public static string ExternalIP = SecurityFuncs.GetExternalIPAddress(); + public static string ExternalIP = NovetusFuncs.GetExternalIPAddress(); public static ScriptType GameOpened = ScriptType.None; public static string PlayerTripcode = ""; #if LAUNCHER || URI @@ -127,7 +127,7 @@ namespace Novetus.Core #region Discord Variables //discord - public static DiscordRPC.RichPresence presence; + public static IDiscordRPC.RichPresence presence; public static string appid = "505955125727330324"; public static string imagekey_large = "novetus_large"; public static string image_ingame = "ingame_small"; diff --git a/Novetus/NovetusCore/StorageAndFunctions/NetFuncs.cs b/Novetus/NovetusCore/StorageAndFunctions/NetFuncs.cs index f27dc3c..125240a 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/NetFuncs.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/NetFuncs.cs @@ -10,15 +10,40 @@ using Titanium.Web.Proxy.Models; namespace Novetus.Core { #region NetFuncs - public static class NetFuncs { - public static void InitUPnP(EventHandler DeviceFound, EventHandler DeviceLost) + public static void InitUPnP() { if (GlobalVars.UserConfiguration.UPnP) { - NatUtility.DeviceFound += DeviceFound; - NatUtility.StartDiscovery(); + try + { + NatUtility.DeviceFound += DeviceFound; + NatUtility.StartDiscovery(); + Util.ConsolePrint("UPnP: Service initialized", 3); + } + catch (Exception ex) + { + Util.LogExceptions(ex); + Util.ConsolePrint("UPnP: Unable to initialize UPnP. Reason - " + ex.Message, 2); + } + } + } + + public static void DeviceFound(object sender, DeviceEventArgs args) + { + try + { + INatDevice device = args.Device; + string IP = !string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : device.GetExternalIP().ToString(); + Util.ConsolePrint("UPnP: Device '" + IP + "' registered.", 3); + StartUPnP(device, Protocol.Udp, GlobalVars.UserConfiguration.RobloxPort); + StartUPnP(device, Protocol.Tcp, GlobalVars.UserConfiguration.RobloxPort); + } + catch (Exception ex) + { + Util.LogExceptions(ex); + Util.ConsolePrint("UPnP: Unable to register device. Reason - " + ex.Message, 2); } } @@ -26,14 +51,25 @@ namespace Novetus.Core { if (GlobalVars.UserConfiguration.UPnP) { - Mapping checker = device.GetSpecificMapping(protocol, port); - int mapPublic = checker.PublicPort; - int mapPrivate = checker.PrivatePort; - - if (mapPublic == -1 && mapPrivate == -1) + try { - Mapping portmap = new Mapping(protocol, port, port); - device.CreatePortMap(portmap); + Mapping checker = device.GetSpecificMapping(protocol, port); + int mapPublic = checker.PublicPort; + int mapPrivate = checker.PrivatePort; + + if (mapPublic == -1 && mapPrivate == -1) + { + Mapping portmap = new Mapping(protocol, port, port); + device.CreatePortMap(portmap); + } + + string IP = !string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : device.GetExternalIP().ToString(); + Util.ConsolePrint("UPnP: Port " + port + " opened on '" + IP + "' (" + protocol.ToString() + ")", 3); + } + catch (Exception ex) + { + Util.LogExceptions(ex); + Util.ConsolePrint("UPnP: Unable to open port mapping. Reason - " + ex.Message, 2); } } } @@ -42,14 +78,25 @@ namespace Novetus.Core { if (GlobalVars.UserConfiguration.UPnP) { - Mapping checker = device.GetSpecificMapping(protocol, port); - int mapPublic = checker.PublicPort; - int mapPrivate = checker.PrivatePort; - - if (mapPublic != -1 && mapPrivate != -1) + try { - Mapping portmap = new Mapping(protocol, port, port); - device.DeletePortMap(portmap); + Mapping checker = device.GetSpecificMapping(protocol, port); + int mapPublic = checker.PublicPort; + int mapPrivate = checker.PrivatePort; + + if (mapPublic != -1 && mapPrivate != -1) + { + Mapping portmap = new Mapping(protocol, port, port); + device.DeletePortMap(portmap); + } + + string IP = !string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : device.GetExternalIP().ToString(); + Util.ConsolePrint("UPnP: Port " + port + " closed on '" + IP + "' (" + protocol.ToString() + ")", 3); + } + catch (Exception ex) + { + Util.LogExceptions(ex); + Util.ConsolePrint("UPnP: Unable to close port mapping. Reason - " + ex.Message, 2); } } } diff --git a/Novetus/NovetusCore/StorageAndFunctions/NovetusFuncs.cs b/Novetus/NovetusCore/StorageAndFunctions/NovetusFuncs.cs index dd5bb2e..baec1b7 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/NovetusFuncs.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/NovetusFuncs.cs @@ -1,13 +1,10 @@ #region Usings using System; -using System.IO; using System.Text.RegularExpressions; using System.Threading.Tasks; -using System.Xml; -using System.Xml.Linq; using System.Linq; using System.Windows.Forms; -using System.Collections.Generic; +using System.Net; #endregion namespace Novetus.Core @@ -15,127 +12,69 @@ namespace Novetus.Core #region Novetus Functions public class NovetusFuncs { - public static string CopyMapToRBXAsset() + public static int GenerateRandomNumber() { - string clientcontentpath = GlobalPaths.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\temp.rbxl"; - Util.FixedFileCopy(GlobalVars.UserConfiguration.MapPath, clientcontentpath, true); - return GlobalPaths.AltBaseGameDir + "temp.rbxl"; - } + CryptoRandom random = new CryptoRandom(); + int randomID = 0; + int randIDmode = random.Next(0, 8); + int idlimit = 0; - public static string GetItemTextureLocalPath(string item, string nameprefix) - { - //don't bother, we're offline. - if (GlobalVars.ExternalIP.Equals("localhost")) - return ""; - - if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeonlineclothing%")) - return ""; - - if (item.Contains("http://") || item.Contains("https://")) + switch (randIDmode) { - string peram = "id="; - string fullname = nameprefix + "Temp.png"; - - if (item.Contains(peram)) - { - string id = item.After(peram); - fullname = id + ".png"; - } - else - { - return item; - } - - Downloader download = new Downloader(item, fullname, "", GlobalPaths.AssetCacheDirAssets); - - try - { - string path = download.GetFullDLPath(); - download.InitDownloadNoDialog(path); - return GlobalPaths.AssetCacheAssetsGameDir + download.fileName; - } -#if URI || LAUNCHER || BASICLAUNCHER - catch (Exception ex) - { - Util.LogExceptions(ex); -#else - catch (Exception) - { -#endif - } + case 0: + idlimit = 9; + break; + case 1: + idlimit = 99; + break; + case 2: + idlimit = 999; + break; + case 3: + idlimit = 9999; + break; + case 4: + idlimit = 99999; + break; + case 5: + idlimit = 999999; + break; + case 6: + idlimit = 9999999; + break; + case 7: + idlimit = 99999999; + break; + case 8: + default: + break; } - return ""; - } - - public static string GetItemTextureID(string item, string name, AssetCacheDefBasic assetCacheDef) - { - //don't bother, we're offline. - if (GlobalVars.ExternalIP.Equals("localhost")) - return ""; - - if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeonlineclothing%")) - return ""; - - if (item.Contains("http://") || item.Contains("https://")) + if (idlimit > 0) { - string peram = "id="; - if (!item.Contains(peram)) - { - return item; - } - - Downloader download = new Downloader(item, name + "Temp.rbxm", "", GlobalPaths.AssetCacheDirAssets); - - try - { - string path = download.GetFullDLPath(); - download.InitDownloadNoDialog(path); - string oldfile = File.ReadAllText(path); - string fixedfile = RobloxXML.RemoveInvalidXmlChars(RobloxXML.ReplaceHexadecimalSymbols(oldfile)).Replace(" ", "\t").Replace("#9;", "\t"); - XDocument doc = null; - XmlReaderSettings xmlReaderSettings = new XmlReaderSettings { CheckCharacters = false }; - Stream filestream = Util.GenerateStreamFromString(fixedfile); - using (XmlReader xmlReader = XmlReader.Create(filestream, xmlReaderSettings)) - { - xmlReader.MoveToContent(); - doc = XDocument.Load(xmlReader); - } - - return RobloxXML.GetURLInNodes(doc, assetCacheDef.Class, assetCacheDef.Id[0], item); - } -#if URI || LAUNCHER || BASICLAUNCHER - catch (Exception ex) - { - Util.LogExceptions(ex); -#else - catch (Exception) - { -#endif - } + randomID = random.Next(0, idlimit); + } + else + { + randomID = random.Next(); } - return ""; + //2147483647 is max id. + return randomID; } public static void GeneratePlayerID() { - int randomID = SecurityFuncs.GenerateRandomNumber(); + int randomID = GenerateRandomNumber(); //2147483647 is max id. GlobalVars.UserConfiguration.UserID = randomID; } - public static string GenerateAndReturnTripcode() - { - //Powered by https://github.com/davcs86/csharp-uhwid - return UHWIDEngine.AdvancedUid; - } - public static void PingMasterServer(bool online, string reason) { if (online) { - GlobalVars.ServerID = SecurityFuncs.RandomString(30) + SecurityFuncs.GenerateRandomNumber(); + GlobalVars.ServerID = RandomString(30) + GenerateRandomNumber(); GlobalVars.PingURL = "http://" + GlobalVars.UserConfiguration.ServerBrowserServerAddress + "/list.php?name=" + GlobalVars.UserConfiguration.ServerBrowserServerName + "&ip=" + (!string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : GlobalVars.ExternalIP) + @@ -152,45 +91,42 @@ namespace Novetus.Core } Util.ConsolePrint("Pinging master server. " + reason, 4); - Task.Factory.StartNew(() => TryPing()); - } + Task.Factory.StartNew(() => { + string response = Util.HttpGet(GlobalVars.PingURL); - private static void TryPing() - { - string response = Util.HttpGet(GlobalVars.PingURL); - - if (!string.IsNullOrWhiteSpace(response)) - { - Util.ConsolePrint(response, response.Contains("ERROR:") ? 2 : 4); - - if (response.Contains("ERROR:")) + if (!string.IsNullOrWhiteSpace(response)) { - GlobalVars.ServerID = "N/A"; + Util.ConsolePrint(response, response.Contains("ERROR:") ? 2 : 4); + + if (response.Contains("ERROR:")) + { + GlobalVars.ServerID = "N/A"; + } } - } - if (!GlobalVars.ServerID.Equals("N/A")) - { - Util.ConsolePrint("Master server ping successful. Your server's ID is " + GlobalVars.ServerID, 4); - } + if (!GlobalVars.ServerID.Equals("N/A")) + { + Util.ConsolePrint("Master server ping successful. Your server's ID is " + GlobalVars.ServerID, 4); + } - GlobalVars.PingURL = ""; + GlobalVars.PingURL = ""; + }); } public static string[] LoadServerInformation() { string[] lines1 = { - SecurityFuncs.Base64Encode(!string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : GlobalVars.ExternalIP), - SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()), - SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.SelectedClient) + SecurityFuncs.Encode(!string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : GlobalVars.ExternalIP), + SecurityFuncs.Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()), + SecurityFuncs.Encode(GlobalVars.UserConfiguration.SelectedClient) }; - string URI = "novetus://" + SecurityFuncs.Base64Encode(string.Join("|", lines1), true); + string URI = "novetus://" + SecurityFuncs.Encode(string.Join("|", lines1), true); string[] lines2 = { - SecurityFuncs.Base64Encode("localhost"), - SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()), - SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.SelectedClient) + SecurityFuncs.Encode("localhost"), + SecurityFuncs.Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()), + SecurityFuncs.Encode(GlobalVars.UserConfiguration.SelectedClient) }; - string URI2 = "novetus://" + SecurityFuncs.Base64Encode(string.Join("|", lines2), true); + string URI2 = "novetus://" + SecurityFuncs.Encode(string.Join("|", lines2), true); GameServer server = new GameServer((!string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : GlobalVars.ExternalIP), GlobalVars.UserConfiguration.RobloxPort); string[] text = { @@ -208,16 +144,6 @@ namespace Novetus.Core return text; } - public static void CreateTXT() - { - List text = new List(); - text.AddRange(LoadServerInformation()); - - string txt = GlobalPaths.BasePath + "\\" + GlobalPaths.ServerInfoFileName; - File.WriteAllLines(txt, text); - Util.ConsolePrint("Server Information sent to file " + txt, 4); - } - #if LAUNCHER || URI public static void LaunchCharacterCustomization() { @@ -293,386 +219,33 @@ namespace Novetus.Core return finalUrl; } - public static void SetupAdminPassword() + public static string RandomString(int length = 30, string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz") { CryptoRandom random = new CryptoRandom(); - string Name1 = SecurityFuncs.GenerateName(random.Next(4, 12)); - string Name2 = SecurityFuncs.GenerateName(random.Next(4, 12)); - GlobalVars.Important = Name1 + Name2; - GlobalVars.Important2 = SecurityFuncs.Encipher(GlobalVars.Important, random.Next(2, 13)); + return new string(Enumerable.Repeat(chars, length).Select(s => s[random.Next(s.Length)]).ToArray()); + } + + public static string GetExternalIPAddress() + { + string ipAddress; + + try + { + ipAddress = new WebClient().DownloadString("https://ipv4.icanhazip.com/").TrimEnd(); + } +#if URI || LAUNCHER || BASICLAUNCHER + catch (Exception ex) + { + Util.LogExceptions(ex); +#else + catch (Exception) + { +#endif + ipAddress = "localhost"; + } + + return ipAddress; } } #endregion - - #region Roblox Helpers - #region Vector3 - public class Vector3 - { - public double X; - public double Y; - public double Z; - - public Vector3(double aX, double aY, double aZ) - { - X = aX; - Y = aY; - Z = aZ; - } - } - #endregion - - #region Roblox File Types - public enum RobloxFileType - { - //RBXL and RBXM - RBXL, - RBXM, - //Items - Hat, - Head, - Face, - TShirt, - Shirt, - Pants, - Script, - HeadNoCustomMesh - } - #endregion - - #region Asset Cache Definition - public class AssetCacheDefBasic - { - public AssetCacheDefBasic(string clas, string[] id) - { - Class = clas; - Id = id; - } - - public string Class { get; set; } - public string[] Id { get; set; } - } - - public class AssetCacheDef : AssetCacheDefBasic - { - public AssetCacheDef(string clas, string[] id, string[] ext, - string[] dir, string[] gamedir) : base(clas, id) - { - Ext = ext; - Dir = dir; - GameDir = gamedir; - } - - public string[] Ext { get; set; } - public string[] Dir { get; set; } - public string[] GameDir { get; set; } - } - #endregion - - #region Roblox Type Definitions - public struct RobloxDefs - { - //item defs below - public static AssetCacheDef ItemHatFonts - { - get - { - return new AssetCacheDef("SpecialMesh", - new string[] { "MeshId", "TextureId" }, - new string[] { ".mesh", ".png" }, - new string[] { GlobalPaths.hatdirFonts, GlobalPaths.hatdirTextures }, - new string[] { GlobalPaths.hatGameDirFonts, GlobalPaths.hatGameDirTextures }); - } - } - - public static AssetCacheDef ItemHatSound - { - get - { - return new AssetCacheDef("Sound", - new string[] { "SoundId" }, - new string[] { ".wav" }, - new string[] { GlobalPaths.hatdirSounds }, - new string[] { GlobalPaths.hatGameDirSounds }); - } - } - - public static AssetCacheDef ItemHatScript - { - get - { - return new AssetCacheDef("Script", - new string[] { "LinkedSource" }, - new string[] { ".lua" }, - new string[] { GlobalPaths.hatdirScripts }, - new string[] { GlobalPaths.hatGameDirScripts }); - } - } - - public static AssetCacheDef ItemHatLocalScript - { - get - { - return new AssetCacheDef("LocalScript", - new string[] { "LinkedSource" }, - new string[] { ".lua" }, - new string[] { GlobalPaths.hatdirScripts }, - new string[] { GlobalPaths.hatGameDirScripts }); - } - } - - public static AssetCacheDef ItemHeadFonts - { - get - { - return new AssetCacheDef("SpecialMesh", - new string[] { "MeshId", "TextureId" }, - new string[] { ".mesh", ".png" }, - new string[] { GlobalPaths.headdirFonts, GlobalPaths.headdirTextures }, - new string[] { GlobalPaths.headGameDirFonts, GlobalPaths.headGameDirTextures }); - } - } - - public static AssetCacheDef ItemFaceTexture - { - get - { - return new AssetCacheDef("Decal", - new string[] { "Texture" }, - new string[] { ".png" }, - new string[] { GlobalPaths.facedirTextures }, - new string[] { GlobalPaths.faceGameDirTextures }); - } - } - - public static AssetCacheDef ItemShirtTexture - { - get - { - return new AssetCacheDef("Shirt", - new string[] { "ShirtTemplate" }, - new string[] { ".png" }, - new string[] { GlobalPaths.shirtdirTextures }, - new string[] { GlobalPaths.shirtGameDirTextures }); - } - } - - public static AssetCacheDef ItemTShirtTexture - { - get - { - return new AssetCacheDef("ShirtGraphic", - new string[] { "Graphic" }, - new string[] { ".png" }, - new string[] { GlobalPaths.tshirtdirTextures }, - new string[] { GlobalPaths.tshirtGameDirTextures }); - } - } - - public static AssetCacheDef ItemPantsTexture - { - get - { - return new AssetCacheDef("Pants", - new string[] { "PantsTemplate" }, - new string[] { ".png" }, - new string[] { GlobalPaths.pantsdirTextures }, - new string[] { GlobalPaths.pantsGameDirTextures }); - } - } - } - #endregion - - #region XML Types - public enum XMLTypes - { - Token, - Bool, - Float, - String, - Vector2Int16, - Int - } - #endregion - - #region Roblox XML Parser - public static class RobloxXML - { - public static void EditRenderSettings(XDocument doc, string setting, string value, XMLTypes type) - { - var v = from nodes in doc.Descendants("Item") - where nodes.Attribute("class").Value == "RenderSettings" - select nodes; - - foreach (var item in v) - { - var v2 = from nodes in item.Descendants((type != XMLTypes.Vector2Int16 ? type.ToString().ToLower() : "Vector2int16")) - where nodes.Attribute("name").Value == setting - select nodes; - - foreach (var item2 in v2) - { - if (type != XMLTypes.Vector2Int16) - { - item2.Value = value; - } - else - { - string[] vals = value.Split('x'); - - var v3 = from nodes in item2.Descendants("X") - select nodes; - - foreach (var item3 in v3) - { - item3.Value = vals[0]; - } - - var v4 = from nodes in item2.Descendants("Y") - select nodes; - - foreach (var item4 in v4) - { - item4.Value = vals[1]; - } - } - } - } - } - - public static bool IsRenderSettingStringValid(XDocument doc, string setting, XMLTypes type) - { - if (type != XMLTypes.String) - return false; - - var v = from nodes in doc.Descendants("Item") - where nodes.Attribute("class").Value == "RenderSettings" - select nodes; - - foreach (var item in v) - { - var v2 = from nodes in item.Descendants(type.ToString().ToLower()) - where nodes.Attribute("name").Value == setting - select nodes; - - foreach (var item2 in v2) - { - return true; - } - } - - return false; - } - - public static string GetRenderSettings(XDocument doc, string setting, XMLTypes type) - { - var v = from nodes in doc.Descendants("Item") - where nodes.Attribute("class").Value == "RenderSettings" - select nodes; - - foreach (var item in v) - { - var v2 = from nodes in item.Descendants((type != XMLTypes.Vector2Int16 ? type.ToString().ToLower() : "Vector2int16")) - where nodes.Attribute("name").Value == setting - select nodes; - - foreach (var item2 in v2) - { - if (type != XMLTypes.Vector2Int16) - { - return item2.Value; - } - else - { - string ValX = ""; - string ValY = ""; - - var v3 = from nodes in item2.Descendants("X") - select nodes; - - foreach (var item3 in v3) - { - ValX = item3.Value; - } - - var v4 = from nodes in item2.Descendants("Y") - select nodes; - - foreach (var item4 in v4) - { - ValY = item4.Value; - } - - return ValX + "x" + ValY; - } - } - } - - return ""; - } - - public static string GetURLInNodes(XDocument doc, string itemClassValue, string itemIdValue, string url) - { - var v = from nodes in doc.Descendants("Item") - where nodes.Attribute("class").Value == itemClassValue - select nodes; - - foreach (var item in v) - { - var v2 = from nodes in item.Descendants("Content") - where nodes.Attribute("name").Value == itemIdValue - select nodes; - - foreach (var item2 in v2) - { - var v3 = from nodes in item2.Descendants("url") - select nodes; - - foreach (var item3 in v3) - { - if (!item3.Value.Contains("rbxassetid")) - { - if (!item3.Value.Contains("rbxasset")) - { - string oldurl = item3.Value; - string urlFixed = NovetusFuncs.FixURLString(oldurl, url); - string peram = "id="; - - if (urlFixed.Contains(peram)) - { - return urlFixed; - } - } - } - else - { - string oldurl = item3.Value; - string rbxassetid = "rbxassetid://"; - string urlFixed = url + oldurl.After(rbxassetid); - string peram = "id="; - - if (urlFixed.Contains(peram)) - { - return urlFixed; - } - } - } - } - } - - return ""; - } - - public static string RemoveInvalidXmlChars(string content) - { - return new string(content.Where(ch => XmlConvert.IsXmlChar(ch)).ToArray()); - } - - public static string ReplaceHexadecimalSymbols(string txt) - { - string r = "[\x00-\x08\x0B\x0C\x0E-\x1F]"; - return Regex.Replace(txt, r, "", RegexOptions.Compiled); - } - } - #endregion - #endregion } diff --git a/Novetus/NovetusCore/StorageAndFunctions/Roblox Helpers/RobloxTypes.cs b/Novetus/NovetusCore/StorageAndFunctions/Roblox Helpers/RobloxTypes.cs new file mode 100644 index 0000000..30bd82b --- /dev/null +++ b/Novetus/NovetusCore/StorageAndFunctions/Roblox Helpers/RobloxTypes.cs @@ -0,0 +1,163 @@ +namespace Novetus.Core +{ + #region Roblox File Types + public enum RobloxFileType + { + //RBXL and RBXM + RBXL, + RBXM, + //Items + Hat, + Head, + Face, + TShirt, + Shirt, + Pants, + Script, + HeadNoCustomMesh + } + #endregion + + #region Asset Cache Definition + public class AssetCacheDefBasic + { + public AssetCacheDefBasic(string clas, string[] id) + { + Class = clas; + Id = id; + } + + public string Class { get; set; } + public string[] Id { get; set; } + } + + public class AssetCacheDef : AssetCacheDefBasic + { + public AssetCacheDef(string clas, string[] id, string[] ext, + string[] dir, string[] gamedir) : base(clas, id) + { + Ext = ext; + Dir = dir; + GameDir = gamedir; + } + + public string[] Ext { get; set; } + public string[] Dir { get; set; } + public string[] GameDir { get; set; } + } + #endregion + + #region Roblox Type Definitions + public struct RobloxDefs + { + //item defs below + public static AssetCacheDef ItemHatFonts + { + get + { + return new AssetCacheDef("SpecialMesh", + new string[] { "MeshId", "TextureId" }, + new string[] { ".mesh", ".png" }, + new string[] { GlobalPaths.hatdirFonts, GlobalPaths.hatdirTextures }, + new string[] { GlobalPaths.hatGameDirFonts, GlobalPaths.hatGameDirTextures }); + } + } + + public static AssetCacheDef ItemHatSound + { + get + { + return new AssetCacheDef("Sound", + new string[] { "SoundId" }, + new string[] { ".wav" }, + new string[] { GlobalPaths.hatdirSounds }, + new string[] { GlobalPaths.hatGameDirSounds }); + } + } + + public static AssetCacheDef ItemHatScript + { + get + { + return new AssetCacheDef("Script", + new string[] { "LinkedSource" }, + new string[] { ".lua" }, + new string[] { GlobalPaths.hatdirScripts }, + new string[] { GlobalPaths.hatGameDirScripts }); + } + } + + public static AssetCacheDef ItemHatLocalScript + { + get + { + return new AssetCacheDef("LocalScript", + new string[] { "LinkedSource" }, + new string[] { ".lua" }, + new string[] { GlobalPaths.hatdirScripts }, + new string[] { GlobalPaths.hatGameDirScripts }); + } + } + + public static AssetCacheDef ItemHeadFonts + { + get + { + return new AssetCacheDef("SpecialMesh", + new string[] { "MeshId", "TextureId" }, + new string[] { ".mesh", ".png" }, + new string[] { GlobalPaths.headdirFonts, GlobalPaths.headdirTextures }, + new string[] { GlobalPaths.headGameDirFonts, GlobalPaths.headGameDirTextures }); + } + } + + public static AssetCacheDef ItemFaceTexture + { + get + { + return new AssetCacheDef("Decal", + new string[] { "Texture" }, + new string[] { ".png" }, + new string[] { GlobalPaths.facedirTextures }, + new string[] { GlobalPaths.faceGameDirTextures }); + } + } + + public static AssetCacheDef ItemShirtTexture + { + get + { + return new AssetCacheDef("Shirt", + new string[] { "ShirtTemplate" }, + new string[] { ".png" }, + new string[] { GlobalPaths.shirtdirTextures }, + new string[] { GlobalPaths.shirtGameDirTextures }); + } + } + + public static AssetCacheDef ItemTShirtTexture + { + get + { + return new AssetCacheDef("ShirtGraphic", + new string[] { "Graphic" }, + new string[] { ".png" }, + new string[] { GlobalPaths.tshirtdirTextures }, + new string[] { GlobalPaths.tshirtGameDirTextures }); + } + } + + public static AssetCacheDef ItemPantsTexture + { + get + { + return new AssetCacheDef("Pants", + new string[] { "PantsTemplate" }, + new string[] { ".png" }, + new string[] { GlobalPaths.pantsdirTextures }, + new string[] { GlobalPaths.pantsGameDirTextures }); + } + } + } + #endregion +} diff --git a/Novetus/NovetusCore/StorageAndFunctions/Roblox Helpers/RobloxXML.cs b/Novetus/NovetusCore/StorageAndFunctions/Roblox Helpers/RobloxXML.cs new file mode 100644 index 0000000..06e3c6c --- /dev/null +++ b/Novetus/NovetusCore/StorageAndFunctions/Roblox Helpers/RobloxXML.cs @@ -0,0 +1,203 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Xml; +using System.Xml.Linq; + +namespace Novetus.Core +{ + #region XML Types + public enum XMLTypes + { + Token, + Bool, + Float, + String, + Vector2Int16, + Int + } + #endregion + + #region Roblox XML Parser + public static class RobloxXML + { + public static void EditRenderSettings(XDocument doc, string setting, string value, XMLTypes type) + { + var v = from nodes in doc.Descendants("Item") + where nodes.Attribute("class").Value == "RenderSettings" + select nodes; + + foreach (var item in v) + { + var v2 = from nodes in item.Descendants((type != XMLTypes.Vector2Int16 ? type.ToString().ToLower() : "Vector2int16")) + where nodes.Attribute("name").Value == setting + select nodes; + + foreach (var item2 in v2) + { + if (type != XMLTypes.Vector2Int16) + { + item2.Value = value; + } + else + { + string[] vals = value.Split('x'); + + var v3 = from nodes in item2.Descendants("X") + select nodes; + + foreach (var item3 in v3) + { + item3.Value = vals[0]; + } + + var v4 = from nodes in item2.Descendants("Y") + select nodes; + + foreach (var item4 in v4) + { + item4.Value = vals[1]; + } + } + } + } + } + + public static bool IsRenderSettingStringValid(XDocument doc, string setting, XMLTypes type) + { + if (type != XMLTypes.String) + return false; + + var v = from nodes in doc.Descendants("Item") + where nodes.Attribute("class").Value == "RenderSettings" + select nodes; + + foreach (var item in v) + { + var v2 = from nodes in item.Descendants(type.ToString().ToLower()) + where nodes.Attribute("name").Value == setting + select nodes; + + foreach (var item2 in v2) + { + return true; + } + } + + return false; + } + + public static string GetRenderSettings(XDocument doc, string setting, XMLTypes type) + { + var v = from nodes in doc.Descendants("Item") + where nodes.Attribute("class").Value == "RenderSettings" + select nodes; + + foreach (var item in v) + { + var v2 = from nodes in item.Descendants((type != XMLTypes.Vector2Int16 ? type.ToString().ToLower() : "Vector2int16")) + where nodes.Attribute("name").Value == setting + select nodes; + + foreach (var item2 in v2) + { + if (type != XMLTypes.Vector2Int16) + { + return item2.Value; + } + else + { + string ValX = ""; + string ValY = ""; + + var v3 = from nodes in item2.Descendants("X") + select nodes; + + foreach (var item3 in v3) + { + ValX = item3.Value; + } + + var v4 = from nodes in item2.Descendants("Y") + select nodes; + + foreach (var item4 in v4) + { + ValY = item4.Value; + } + + return ValX + "x" + ValY; + } + } + } + + return ""; + } + + public static string GetURLInNodes(XDocument doc, string itemClassValue, string itemIdValue, string url) + { + var v = from nodes in doc.Descendants("Item") + where nodes.Attribute("class").Value == itemClassValue + select nodes; + + foreach (var item in v) + { + var v2 = from nodes in item.Descendants("Content") + where nodes.Attribute("name").Value == itemIdValue + select nodes; + + foreach (var item2 in v2) + { + var v3 = from nodes in item2.Descendants("url") + select nodes; + + foreach (var item3 in v3) + { + if (!item3.Value.Contains("rbxassetid")) + { + if (!item3.Value.Contains("rbxasset")) + { + string oldurl = item3.Value; + string urlFixed = NovetusFuncs.FixURLString(oldurl, url); + string peram = "id="; + + if (urlFixed.Contains(peram)) + { + return urlFixed; + } + } + } + else + { + string oldurl = item3.Value; + string rbxassetid = "rbxassetid://"; + string urlFixed = url + oldurl.After(rbxassetid); + string peram = "id="; + + if (urlFixed.Contains(peram)) + { + return urlFixed; + } + } + } + } + } + + return ""; + } + + public static string RemoveInvalidXmlChars(string content) + { + return new string(content.Where(ch => XmlConvert.IsXmlChar(ch)).ToArray()); + } + + public static string ReplaceHexadecimalSymbols(string txt) + { + string r = "[\x00-\x08\x0B\x0C\x0E-\x1F]"; + return Regex.Replace(txt, r, "", RegexOptions.Compiled); + } + } + #endregion +} diff --git a/Novetus/NovetusCore/StorageAndFunctions/Roblox Helpers/Vector3.cs b/Novetus/NovetusCore/StorageAndFunctions/Roblox Helpers/Vector3.cs new file mode 100644 index 0000000..1d94c10 --- /dev/null +++ b/Novetus/NovetusCore/StorageAndFunctions/Roblox Helpers/Vector3.cs @@ -0,0 +1,18 @@ +#region Vector3 +namespace Novetus.Core +{ + public class Vector3 + { + public double X; + public double Y; + public double Z; + + public Vector3(double aX, double aY, double aZ) + { + X = aX; + Y = aY; + Z = aZ; + } + } +} +#endregion diff --git a/Novetus/NovetusCore/StorageAndFunctions/SecurityFuncs.cs b/Novetus/NovetusCore/StorageAndFunctions/SecurityFuncs.cs index 7d1772c..09794c3 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/SecurityFuncs.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/SecurityFuncs.cs @@ -21,96 +21,35 @@ namespace Novetus.Core { [DllImport("user32.dll")] static extern int SetWindowText(IntPtr hWnd, string text); + public static bool IsElevated { get { return WindowsIdentity.GetCurrent().Owner.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid); } } - public static string RandomString(int length) + public static string Decode(string EncodedData, bool useOldDecoding = false) { - CryptoRandom random = new CryptoRandom(); - const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; - return new string(Enumerable.Repeat(chars, length) - .Select(s => s[random.Next(s.Length)]).ToArray()); - } - - public static int GenerateRandomNumber() - { - CryptoRandom random = new CryptoRandom(); - int randomID = 0; - int randIDmode = random.Next(0, 8); - int idlimit = 0; - - switch (randIDmode) - { - case 0: - idlimit = 9; - break; - case 1: - idlimit = 99; - break; - case 2: - idlimit = 999; - break; - case 3: - idlimit = 9999; - break; - case 4: - idlimit = 99999; - break; - case 5: - idlimit = 999999; - break; - case 6: - idlimit = 9999999; - break; - case 7: - idlimit = 99999999; - break; - case 8: - default: - break; + if (useOldDecoding) + { + return DecodeOld(EncodedData); } - if (idlimit > 0) - { - randomID = random.Next(0, idlimit); - } - else - { - randomID = random.Next(); - } - - //2147483647 is max id. - return randomID; - } - - //these 2 methods are for the clientinfo creator. - public static string Base64DecodeNew(string base64EncodedData) - { - return base64EncodedData.Decrypt(); - } - - public static string Base64DecodeOld(string base64EncodedData) - { - var base64EncodedBytes = Convert.FromBase64String(base64EncodedData); - return System.Text.Encoding.UTF8.GetString(base64EncodedBytes); - } - - //this is for everything else - public static string Base64Decode(string base64EncodedData) - { try { - string decode = base64EncodedData.Decrypt(); + string decode = EncodedData.Decrypt(); return decode; } catch (Exception) { - var base64EncodedBytes = Convert.FromBase64String(base64EncodedData); - return System.Text.Encoding.UTF8.GetString(base64EncodedBytes); + return DecodeOld(EncodedData); } } - public static string Base64Encode(string plainText, bool oldVer = false) + private static string DecodeOld(string EncodedData) + { + var EncodedBytes = Convert.FromBase64String(EncodedData); + return System.Text.Encoding.UTF8.GetString(EncodedBytes); + } + + public static string Encode(string plainText, bool useOldEncoding = false) { - if (oldVer) + if (useOldEncoding) { var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText); return System.Convert.ToBase64String(plainTextBytes); @@ -121,98 +60,6 @@ namespace Novetus.Core } } - public static bool IsBase64String(string s) - { - s = s.Trim(); - return (s.Length % 4 == 0) && Regex.IsMatch(s, @"^[a-zA-Z0-9\+/]*={0,3}$", RegexOptions.None); - } - - public static long UnixTimeNow() - { - var timeSpan = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)); - return (long)timeSpan.TotalSeconds; - } - - public static bool checkClientMD5(string client) - { - if (!GlobalVars.AdminMode) - { - if (!GlobalVars.SelectedClientInfo.AlreadyHasSecurity) - { - string rbxexe = ""; - string BasePath = GlobalPaths.BasePath + "\\clients\\" + client; - if (GlobalVars.SelectedClientInfo.LegacyMode) - { - rbxexe = BasePath + "\\RobloxApp.exe"; - } - else if (GlobalVars.SelectedClientInfo.SeperateFolders) - { - rbxexe = BasePath + "\\client\\RobloxApp_client.exe"; - } - else if (GlobalVars.SelectedClientInfo.UsesCustomClientEXEName) - { - rbxexe = BasePath + @"\\" + GlobalVars.SelectedClientInfo.CustomClientEXEName; - } - else - { - rbxexe = BasePath + "\\RobloxApp_client.exe"; - } - return CheckMD5(GlobalVars.SelectedClientInfo.ClientMD5, rbxexe); - } - else - { - return true; - } - } - else - { - return true; - } - } - - public static bool checkScriptMD5(string client) - { - if (!GlobalVars.AdminMode) - { - if (!GlobalVars.SelectedClientInfo.AlreadyHasSecurity) - { - string rbxscript = GlobalPaths.BasePath + "\\clients\\" + client + "\\content\\scripts\\" + GlobalPaths.ScriptName + ".lua"; - return CheckMD5(GlobalVars.SelectedClientInfo.ScriptMD5, rbxscript); - } - else - { - return true; - } - } - else - { - return true; - } - } - - public static bool CheckMD5(string MD5Hash, string path) - { - if (!File.Exists(path)) - return false; - - using (var md5 = MD5.Create()) - { - using (var stream = File.OpenRead(path)) - { - byte[] hash = md5.ComputeHash(stream); - string clientMD5 = BitConverter.ToString(hash).Replace("-", ""); - if (clientMD5.Equals(MD5Hash)) - { - return true; - } - else - { - return false; - } - } - } - } - public static string GenerateMD5(string filename) { using (var md5 = MD5.Create()) @@ -224,18 +71,10 @@ namespace Novetus.Core } } - public static bool IsElevated - { - get - { - return WindowsIdentity.GetCurrent().Owner.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid); - } - } - - public static string RandomStringTitle() + private static string RandomStringTitle() { CryptoRandom random = new CryptoRandom(); - return new String(' ', random.Next(20)); + return NovetusFuncs.RandomString(random.Next(20), " "); } public static void RenameWindow(Process exe, ScriptType type, string clientname, string mapname) @@ -316,51 +155,8 @@ namespace Novetus.Core } } - public static string GetExternalIPAddress() - { - string ipAddress; - - try - { - ipAddress = new WebClient().DownloadString("https://ipv4.icanhazip.com/").TrimEnd(); - } -#if URI || LAUNCHER || BASICLAUNCHER - catch (Exception ex) - { - Util.LogExceptions(ex); -#else - catch (Exception) - { -#endif - ipAddress = "localhost"; - } - - return ipAddress; - } - - //modified from https://stackoverflow.com/questions/14687658/random-name-generator-in-c-sharp - public static string GenerateName(int len) - { - CryptoRandom r = new CryptoRandom(); - string[] consonants = { "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "l", "n", "p", "q", "r", "s", "sh", "zh", "t", "v", "w", "x" }; - string[] vowels = { "a", "e", "i", "o", "u", "ae", "y" }; - string Name = ""; - Name += consonants[r.Next(consonants.Length)].ToUpper(); - Name += vowels[r.Next(vowels.Length)]; - int b = 2; //b tells how many times a new letter has been added. It's 2 right now because the first two letters are already in the name. - while (b < len) - { - Name += consonants[r.Next(consonants.Length)]; - b++; - Name += vowels[r.Next(vowels.Length)]; - b++; - } - - return Name; - } - //https://www.c-sharpcorner.com/article/caesar-cipher-in-c-sharp/ - public static char cipher(char ch, int key) + private static char cipher(char ch, int key) { if (!char.IsLetter(ch)) { diff --git a/Novetus/NovetusCore/StorageAndFunctions/Util.cs b/Novetus/NovetusCore/StorageAndFunctions/Util.cs index 6cce83e..08cccfc 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/Util.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/Util.cs @@ -907,164 +907,6 @@ namespace Novetus.Core } #endif #endregion - -#if !BASICLAUNCHER - #region UPnP - public static void InitUPnP() - { - if (GlobalVars.UserConfiguration.UPnP) - { - try - { - NetFuncs.InitUPnP(DeviceFound, DeviceLost); - ConsolePrint("UPnP: Service initialized", 3); - } - catch (Exception ex) - { - LogExceptions(ex); - ConsolePrint("UPnP: Unable to initialize UPnP. Reason - " + ex.Message, 2); - } - } - } - - public static void StartUPnP(INatDevice device, Protocol protocol, int port) - { - if (GlobalVars.UserConfiguration.UPnP) - { - try - { - NetFuncs.StartUPnP(device, protocol, port); - string IP = !string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : device.GetExternalIP().ToString(); - ConsolePrint("UPnP: Port " + port + " opened on '" + IP + "' (" + protocol.ToString() + ")", 3); - } - catch (Exception ex) - { - LogExceptions(ex); - ConsolePrint("UPnP: Unable to open port mapping. Reason - " + ex.Message, 2); - } - } - } - - public static void StopUPnP(INatDevice device, Protocol protocol, int port) - { - if (GlobalVars.UserConfiguration.UPnP) - { - try - { - NetFuncs.StopUPnP(device, protocol, port); - string IP = !string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : device.GetExternalIP().ToString(); - ConsolePrint("UPnP: Port " + port + " closed on '" + IP + "' (" + protocol.ToString() + ")", 3); - } - catch (Exception ex) - { - LogExceptions(ex); - ConsolePrint("UPnP: Unable to close port mapping. Reason - " + ex.Message, 2); - } - } - } - - public static void DeviceFound(object sender, DeviceEventArgs args) - { - try - { - INatDevice device = args.Device; - string IP = !string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : device.GetExternalIP().ToString(); - ConsolePrint("UPnP: Device '" + IP + "' registered.", 3); - StartUPnP(device, Protocol.Udp, GlobalVars.UserConfiguration.RobloxPort); - StartUPnP(device, Protocol.Tcp, GlobalVars.UserConfiguration.RobloxPort); - } - catch (Exception ex) - { - LogExceptions(ex); - ConsolePrint("UPnP: Unable to register device. Reason - " + ex.Message, 2); - } - } - - public static void DeviceLost(object sender, DeviceEventArgs args) - { - try - { - INatDevice device = args.Device; - string IP = !string.IsNullOrWhiteSpace(GlobalVars.UserConfiguration.AlternateServerIP) ? GlobalVars.UserConfiguration.AlternateServerIP : device.GetExternalIP().ToString(); - ConsolePrint("UPnP: Device '" + IP + "' disconnected.", 3); - StopUPnP(device, Protocol.Udp, GlobalVars.UserConfiguration.RobloxPort); - StopUPnP(device, Protocol.Tcp, GlobalVars.UserConfiguration.RobloxPort); - } - catch (Exception ex) - { - LogExceptions(ex); - ConsolePrint("UPnP: Unable to disconnect device. Reason - " + ex.Message, 2); - } - } - #endregion - - #region Discord - public static void ReadyCallback() - { - ConsolePrint("Discord RPC: Ready", 3); - } - - public static void DisconnectedCallback(int errorCode, string message) - { - ConsolePrint("Discord RPC: Disconnected. Reason - " + errorCode + ": " + message, 2); - } - - public static void ErrorCallback(int errorCode, string message) - { - ConsolePrint("Discord RPC: Error. Reason - " + errorCode + ": " + message, 2); - } - - public static void JoinCallback(string secret) - { - } - - public static void SpectateCallback(string secret) - { - } - - public static void RequestCallback(DiscordRPC.JoinRequest request) - { - } - - public static void StartDiscord() - { - if (GlobalVars.UserConfiguration.DiscordPresence) - { - GlobalVars.handlers = new DiscordRPC.EventHandlers(); - GlobalVars.handlers.readyCallback = ReadyCallback; - GlobalVars.handlers.disconnectedCallback += DisconnectedCallback; - GlobalVars.handlers.errorCallback += ErrorCallback; - GlobalVars.handlers.joinCallback += JoinCallback; - GlobalVars.handlers.spectateCallback += SpectateCallback; - GlobalVars.handlers.requestCallback += RequestCallback; - DiscordRPC.Initialize(GlobalVars.appid, ref GlobalVars.handlers, true, ""); - ConsolePrint("Discord RPC: Initalized", 3); - - ClientManagement.UpdateRichPresence(ClientManagement.GetStateForType(GlobalVars.GameOpened), true); - } - } - #endregion -#endif - } - #endregion - - #region Tab Control without Header - //https://stackoverflow.com/questions/23247941/c-sharp-how-to-remove-tabcontrol-border - - public partial class TabControlWithoutHeader : TabControl - { - public TabControlWithoutHeader() - { - if (!DesignMode) Multiline = true; - } - - protected override void WndProc(ref Message m) - { - if (m.Msg == 0x1328 && !DesignMode) - m.Result = new IntPtr(1); - else - base.WndProc(ref m); - } } #endregion } \ No newline at end of file diff --git a/Novetus/NovetusLauncher/Classes/Launcher/SplashLoader.cs b/Novetus/NovetusLauncher/Classes/Launcher/SplashLoader.cs index f94c366..89e0988 100644 --- a/Novetus/NovetusLauncher/Classes/Launcher/SplashLoader.cs +++ b/Novetus/NovetusLauncher/Classes/Launcher/SplashLoader.cs @@ -157,7 +157,7 @@ public class Splash DateTime now = DateTime.Now; return text.Replace("%name%", GlobalVars.UserConfiguration.PlayerName) - .Replace("%randomtext%", SecurityFuncs.RandomString(random.Next(2, (GlobalVars.UserConfiguration.LauncherStyle == Settings.Style.Stylish ? 64 : 32)))) + .Replace("%randomtext%", NovetusFuncs.RandomString(random.Next(2, (GlobalVars.UserConfiguration.LauncherStyle == Settings.Style.Stylish ? 64 : 32)))) .Replace("%version%", GlobalVars.ProgramInformation.Version) .Replace("%year%", now.Year.ToString()) .Replace("%day%", now.Day.ToString()) diff --git a/Novetus/NovetusLauncher/Classes/TabControlWithoutHeader.cs b/Novetus/NovetusLauncher/Classes/TabControlWithoutHeader.cs new file mode 100644 index 0000000..3810a03 --- /dev/null +++ b/Novetus/NovetusLauncher/Classes/TabControlWithoutHeader.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +//https://stackoverflow.com/questions/23247941/c-sharp-how-to-remove-tabcontrol-border + +public partial class TabControlWithoutHeader : TabControl +{ + public TabControlWithoutHeader() + { + if (!DesignMode) Multiline = true; + } + + protected override void WndProc(ref Message m) + { + if (m.Msg == 0x1328 && !DesignMode) + m.Result = new IntPtr(1); + else + base.WndProc(ref m); + } +} diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs index d0093c9..854ecae 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs @@ -188,7 +188,7 @@ namespace NovetusLauncher } if (GlobalVars.UserConfiguration.DiscordPresence) { - DiscordRPC.Shutdown(); + IDiscordRPC.Shutdown(); } if (GlobalVars.UserConfiguration.WebProxyEnabled) { diff --git a/Novetus/NovetusLauncher/Forms/NovetusConsole.cs b/Novetus/NovetusLauncher/Forms/NovetusConsole.cs index 7083114..25804dd 100644 --- a/Novetus/NovetusLauncher/Forms/NovetusConsole.cs +++ b/Novetus/NovetusLauncher/Forms/NovetusConsole.cs @@ -30,11 +30,36 @@ namespace NovetusLauncher InitializeComponent(); } + //modified from https://stackoverflow.com/questions/14687658/random-name-generator-in-c-sharp + public static string GenerateName(int len) + { + CryptoRandom r = new CryptoRandom(); + string[] consonants = { "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "l", "n", "p", "q", "r", "s", "sh", "zh", "t", "v", "w", "x" }; + string[] vowels = { "a", "e", "i", "o", "u", "ae", "y" }; + string Name = ""; + Name += consonants[r.Next(consonants.Length)].ToUpper(); + Name += vowels[r.Next(vowels.Length)]; + int b = 2; //b tells how many times a new letter has been added. It's 2 right now because the first two letters are already in the name. + while (b < len) + { + Name += consonants[r.Next(consonants.Length)]; + b++; + Name += vowels[r.Next(vowels.Length)]; + b++; + } + + return Name; + } + private void NovetusConsole_Load(object sender, EventArgs e) { Util.ConsolePrint("Novetus version " + GlobalVars.ProgramInformation.Version + " loaded.", 4); Util.ConsolePrint("Novetus path: " + GlobalPaths.BasePath, 4); - NovetusFuncs.SetupAdminPassword(); + CryptoRandom random = new CryptoRandom(); + string Name1 = GenerateName(random.Next(4, 12)); + string Name2 = GenerateName(random.Next(4, 12)); + GlobalVars.Important = Name1 + Name2; + GlobalVars.Important2 = SecurityFuncs.Encipher(GlobalVars.Important, random.Next(2, 13)); if (argList.Length > 0) { diff --git a/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.cs b/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.cs index 387d3c4..8ffd2c0 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.cs @@ -108,26 +108,26 @@ public partial class ClientinfoEditor : Form { IsVersion2 = true; label9.Text = curversion + " (v" + GlobalVars.ProgramInformation.Version + ")"; - ConvertedLine = SecurityFuncs.Base64DecodeNew(file); + ConvertedLine = SecurityFuncs.Decode(file, false); } catch (Exception) { label9.Text = "v1 (v1.1)"; - ConvertedLine = SecurityFuncs.Base64DecodeOld(file); + ConvertedLine = SecurityFuncs.Decode(file, true); } string[] result = ConvertedLine.Split('|'); - usesplayername = SecurityFuncs.Base64Decode(result[0]); - usesid = SecurityFuncs.Base64Decode(result[1]); - warning = SecurityFuncs.Base64Decode(result[2]); - legacymode = SecurityFuncs.Base64Decode(result[3]); - clientmd5 = SecurityFuncs.Base64Decode(result[4]); - scriptmd5 = SecurityFuncs.Base64Decode(result[5]); - desc = SecurityFuncs.Base64Decode(result[6]); - locked = SecurityFuncs.Base64Decode(result[7]); - fix2007 = SecurityFuncs.Base64Decode(result[8]); - alreadyhassecurity = SecurityFuncs.Base64Decode(result[9]); - cmdargsorclientoptions = SecurityFuncs.Base64Decode(result[10]); + usesplayername = SecurityFuncs.Decode(result[0]); + usesid = SecurityFuncs.Decode(result[1]); + warning = SecurityFuncs.Decode(result[2]); + legacymode = SecurityFuncs.Decode(result[3]); + clientmd5 = SecurityFuncs.Decode(result[4]); + scriptmd5 = SecurityFuncs.Decode(result[5]); + desc = SecurityFuncs.Decode(result[6]); + locked = SecurityFuncs.Decode(result[7]); + fix2007 = SecurityFuncs.Decode(result[8]); + alreadyhassecurity = SecurityFuncs.Decode(result[9]); + cmdargsorclientoptions = SecurityFuncs.Decode(result[10]); folders = "False"; usescustomname = "False"; customname = ""; @@ -137,19 +137,19 @@ public partial class ClientinfoEditor : Form { if (IsVersion2) { - commandargsver2 = SecurityFuncs.Base64Decode(result[11]); + commandargsver2 = SecurityFuncs.Decode(result[11]); bool parsedValue; if (bool.TryParse(commandargsver2, out parsedValue)) { - folders = SecurityFuncs.Base64Decode(result[11]); - commandargsver2 = SecurityFuncs.Base64Decode(result[12]); + folders = SecurityFuncs.Decode(result[11]); + commandargsver2 = SecurityFuncs.Decode(result[12]); bool parsedValue2; if (bool.TryParse(commandargsver2, out parsedValue2)) { - usescustomname = SecurityFuncs.Base64Decode(result[12]); - customname = SecurityFuncs.Base64Decode(result[13]); - commandargsver2 = SecurityFuncs.Base64Decode(result[14]); + usescustomname = SecurityFuncs.Decode(result[12]); + customname = SecurityFuncs.Decode(result[13]); + commandargsver2 = SecurityFuncs.Decode(result[14]); } else { @@ -248,23 +248,23 @@ public partial class ClientinfoEditor : Form if (!string.IsNullOrWhiteSpace(SelectedClientInfoPath)) { string[] lines = { - SecurityFuncs.Base64Encode(SelectedClientInfo.UsesPlayerName.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.UsesID.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.Warning.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.LegacyMode.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.ClientMD5.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.ScriptMD5.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.Description.ToString()), - SecurityFuncs.Base64Encode(Locked.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.Fix2007.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.AlreadyHasSecurity.ToString()), - SecurityFuncs.Base64Encode(((int)SelectedClientInfo.ClientLoadOptions).ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.SeperateFolders.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.UsesCustomClientEXEName.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.CustomClientEXEName.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.CommandLineArgs.ToString()) + SecurityFuncs.Encode(SelectedClientInfo.UsesPlayerName.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.UsesID.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.Warning.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.LegacyMode.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.ClientMD5.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.ScriptMD5.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.Description.ToString()), + SecurityFuncs.Encode(Locked.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.Fix2007.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.AlreadyHasSecurity.ToString()), + SecurityFuncs.Encode(((int)SelectedClientInfo.ClientLoadOptions).ToString()), + SecurityFuncs.Encode(SelectedClientInfo.SeperateFolders.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.UsesCustomClientEXEName.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.CustomClientEXEName.ToString()), + SecurityFuncs.Encode(SelectedClientInfo.CommandLineArgs.ToString()) }; - File.WriteAllText(SelectedClientInfoPath + "\\clientinfo.nov", SecurityFuncs.Base64Encode(string.Join("|", lines))); + File.WriteAllText(SelectedClientInfoPath + "\\clientinfo.nov", SecurityFuncs.Encode(string.Join("|", lines))); label9.Text = curversion + " (v" + GlobalVars.ProgramInformation.Version + ")"; diff --git a/Novetus/NovetusLauncher/Forms/ServerBrowser.cs b/Novetus/NovetusLauncher/Forms/ServerBrowser.cs index 6e0d7eb..5b5b295 100644 --- a/Novetus/NovetusLauncher/Forms/ServerBrowser.cs +++ b/Novetus/NovetusLauncher/Forms/ServerBrowser.cs @@ -145,11 +145,11 @@ namespace NovetusLauncher try { string[] initialLine = line.Split('|'); - DecodedLine = SecurityFuncs.Base64DecodeOld(initialLine[1]); + DecodedLine = SecurityFuncs.Decode(initialLine[1], true); } catch (Exception) { - DecodedLine = SecurityFuncs.Base64DecodeOld(line); + DecodedLine = SecurityFuncs.Decode(line, true); } string[] serverInfo = DecodedLine.Split('|'); @@ -253,11 +253,11 @@ namespace NovetusLauncher { public ServerBrowserDef(string name, string ip, string port, string client, string version) { - ServerName = SecurityFuncs.Base64DecodeOld(name); - ServerIP = SecurityFuncs.Base64DecodeOld(ip); - ServerPort = Convert.ToInt32(SecurityFuncs.Base64DecodeOld(port)); - ServerClient = SecurityFuncs.Base64DecodeOld(client); - ServerVersion = SecurityFuncs.Base64DecodeOld(version); + ServerName = SecurityFuncs.Decode(name, true); + ServerIP = SecurityFuncs.Decode(ip, true); + ServerPort = Convert.ToInt32(SecurityFuncs.Decode(port, true)); + ServerClient = SecurityFuncs.Decode(client, true); + ServerVersion = SecurityFuncs.Decode(version, true); } public bool IsValid() diff --git a/Novetus/NovetusLauncher/Novetus.Launcher.csproj b/Novetus/NovetusLauncher/Novetus.Launcher.csproj index 563522b..ae4befa 100644 --- a/Novetus/NovetusLauncher/Novetus.Launcher.csproj +++ b/Novetus/NovetusLauncher/Novetus.Launcher.csproj @@ -21,6 +21,9 @@ False False OnBuildSuccess + false + + publish\ true Disk @@ -33,11 +36,8 @@ true 0 1.0.0.%2a - false false true - - x86 @@ -96,6 +96,11 @@ ..\packages\DotNetZip.1.16.0\lib\net40\DotNetZip.dll + + ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\Microsoft.Win32.Registry.5.0.0\lib\net461\Microsoft.Win32.Registry.dll @@ -109,10 +114,21 @@ + + ..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\packages\System.Console.4.3.0\lib\net46\System.Console.dll + True + True + 3.5 @@ -120,29 +136,136 @@ 3.5 + + ..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll + True + True + - + + ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + True + True + + + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + True + True + + + + ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + True + True + + + ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + True + True + + + ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + True + True + + + ..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll + True + True + + + ..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll + True + True + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll - + + ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll + True + True + + + ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll + True + True + + + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll + True + True + + + ..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll + True + True + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll + + ..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll @@ -154,6 +277,11 @@ 3.5 + + ..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + True + True + ..\packages\Titanium.Web.Proxy.3.2.0\lib\net461\Titanium.Web.Proxy.dll @@ -186,6 +314,9 @@ + + Component + Form diff --git a/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs b/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs index c2f0efb..c374807 100644 --- a/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs +++ b/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs @@ -97,8 +97,8 @@ namespace NovetusLauncher FileManagement.CreateInitialFileListIfNeededMulti(); FileManagement.CreateAssetCacheDirectories(); - Util.InitUPnP(); - Util.StartDiscord(); + NetFuncs.InitUPnP(); + DiscordRPC.StartDiscord(); } static void Run(string[] args, bool sdk = false, CMDState state = CMDState.CMDOpen) diff --git a/Novetus/NovetusLauncher/packages.config b/Novetus/NovetusLauncher/packages.config index a316aab..deefc0c 100644 --- a/Novetus/NovetusLauncher/packages.config +++ b/Novetus/NovetusLauncher/packages.config @@ -2,16 +2,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Novetus/NovetusURI/Classes/LocalFuncs.cs b/Novetus/NovetusURI/Classes/LocalFuncs.cs index eb5c888..d50b1cb 100644 --- a/Novetus/NovetusURI/Classes/LocalFuncs.cs +++ b/Novetus/NovetusURI/Classes/LocalFuncs.cs @@ -82,11 +82,11 @@ namespace NovetusURI try { string ExtractedArg = LocalVars.SharedArgs.Replace("novetus://", "").Replace("novetus", "").Replace(":", "").Replace("/", "").Replace("?", ""); - string ConvertedArg = SecurityFuncs.Base64DecodeOld(ExtractedArg); + string ConvertedArg = SecurityFuncs.Decode(ExtractedArg, true); string[] SplitArg = ConvertedArg.Split('|'); - string ip = SecurityFuncs.Base64Decode(SplitArg[0]); - string port = SecurityFuncs.Base64Decode(SplitArg[1]); - string client = SecurityFuncs.Base64Decode(SplitArg[2]); + string ip = SecurityFuncs.Decode(SplitArg[0]); + string port = SecurityFuncs.Decode(SplitArg[1]); + string client = SecurityFuncs.Decode(SplitArg[2]); GlobalVars.UserConfiguration.SelectedClient = client; GlobalVars.CurrentServer.ServerIP = ip; GlobalVars.CurrentServer.ServerPort = Convert.ToInt32(port); diff --git a/Novetus/NovetusURI/Forms/LoaderForm.cs b/Novetus/NovetusURI/Forms/LoaderForm.cs index eb21161..eaf536d 100644 --- a/Novetus/NovetusURI/Forms/LoaderForm.cs +++ b/Novetus/NovetusURI/Forms/LoaderForm.cs @@ -13,53 +13,6 @@ namespace NovetusURI #region URI Loader public partial class LoaderForm : Form { - #region Private Variables - private DiscordRPC.EventHandlers handlers; - #endregion - - #region Discord - public void ReadyCallback() - { - } - - public void DisconnectedCallback(int errorCode, string message) - { - } - - public void ErrorCallback(int errorCode, string message) - { - } - - public void JoinCallback(string secret) - { - } - - public void SpectateCallback(string secret) - { - } - - public void RequestCallback(DiscordRPC.JoinRequest request) - { - } - - void StartDiscord() - { - if (GlobalVars.UserConfiguration.DiscordPresence) - { - handlers = new DiscordRPC.EventHandlers(); - handlers.readyCallback = ReadyCallback; - handlers.disconnectedCallback += DisconnectedCallback; - handlers.errorCallback += ErrorCallback; - handlers.joinCallback += JoinCallback; - handlers.spectateCallback += SpectateCallback; - handlers.requestCallback += RequestCallback; - DiscordRPC.Initialize(GlobalVars.appid, ref handlers, true, ""); - - ClientManagement.UpdateRichPresence(GlobalVars.LauncherState.LoadingURI, true); - } - } - #endregion - #region Constructor public LoaderForm() { @@ -131,7 +84,7 @@ namespace NovetusURI if (GlobalVars.UserConfiguration.DiscordPresence) { ClientManagement.UpdateStatus(label1, "Starting Discord Rich Presence..."); - StartDiscord(); + DiscordRPC.StartDiscord(); } ClientManagement.UpdateStatus(label1, "Launching Game..."); LocalFuncs.SetupURIValues(); diff --git a/Novetus/NovetusURI/Novetus.URI.csproj b/Novetus/NovetusURI/Novetus.URI.csproj index a2e1e3c..92c8972 100644 --- a/Novetus/NovetusURI/Novetus.URI.csproj +++ b/Novetus/NovetusURI/Novetus.URI.csproj @@ -53,6 +53,11 @@ C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\BrotliSharpLib.0.3.3\lib\net451\BrotliSharpLib.dll + + ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\Microsoft.Win32.Registry.5.0.0\lib\net461\Microsoft.Win32.Registry.dll @@ -63,32 +68,151 @@ ..\packages\NLog.5.1.0\lib\net46\NLog.dll + + ..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\packages\System.Console.4.3.0\lib\net46\System.Console.dll + True + True + - + + ..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll + True + True + + + ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + True + True + + + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + True + True + + + + ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + True + True + + + ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + True + True + + + ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + True + True + + + ..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll + True + True + + + ..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll + True + True + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll + True + True + + + ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll + True + True + + + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll + True + True + + + ..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll + True + True + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll + + ..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll + True + True + C:\Users\Bitl\Documents\GitHub\Novetus\Novetus_src\Novetus\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll @@ -102,6 +226,11 @@ + + ..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + True + True + ..\packages\Titanium.Web.Proxy.3.2.0\lib\net461\Titanium.Web.Proxy.dll @@ -126,6 +255,10 @@ Forms\CharCustom\Extended\CharacterCustomizationExtended.designer.cs CharacterCustomizationExtended.cs + + Classes\TabControlWithoutHeader.cs + Component + diff --git a/Novetus/NovetusURI/packages.config b/Novetus/NovetusURI/packages.config index 530607d..b532d6a 100644 --- a/Novetus/NovetusURI/packages.config +++ b/Novetus/NovetusURI/packages.config @@ -1,16 +1,62 @@  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SECURITY.md b/SECURITY.md index f74c0af..932ad15 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,16 +4,11 @@ |Stable Versions|Supported| |-------|-------| -|1.2.4.1|:white_check_mark:| -|1.2.4.1 (lite) |:white_check_mark:| +| 1.3 |:white_check_mark:| |Snapshots|Supported| |-------|-------| -| 1.2.5 |:white_check_mark:| - -|In Development|Supported| -|-------|-------| -| 1.3 (1.2.5 Refresh)|:white_check_mark:| +| 1.3 |:white_check_mark:| ## Reporting a Vulnerability diff --git a/changelog.txt b/changelog.txt index 41a98c4..c66acf8 100644 --- a/changelog.txt +++ b/changelog.txt @@ -4,6 +4,7 @@ Enhancements: - Merged some static APIs into one extension. - Restored the Help button functionality. - All clients now work properly with the Web Proxy. +- Rearraged folder layout. ---------------------------------------------------------------------------- 1.3 Snapshot v22.8412.32591.1 Enhancements: